diff --git a/FileCopyTargets.cmake b/FileCopyTargets.cmake index 7c11f8a..fe0251f 100644 --- a/FileCopyTargets.cmake +++ b/FileCopyTargets.cmake @@ -47,29 +47,36 @@ function(add_file_copy_target _target _dest) endif() set(ALLFILES) + set(SOURCES) foreach(fn ${ARGN}) + # Produce an absolute path to the input file if(IS_ABSOLUTE "${fn}") - set(fullpath "${fn}") + get_filename_component(fullpath "${fn}" ABSOLUTE) get_filename_component(fn "${fn}" NAME) else() get_filename_component(fullpath "${CMAKE_CURRENT_SOURCE_DIR}/${fn}" ABSOLUTE) endif() - add_custom_command(OUTPUT "${_dest}/${fn}" - COMMAND - ${CMAKE_COMMAND} - ARGS -E make_directory "${_dest}" - COMMAND - ${CMAKE_COMMAND} - ARGS -E copy "${fullpath}" "${_dest}" - WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" - DEPENDS "${fullpath}" - COMMENT "Copying ${fullpath} to ${_dest}/${fn}") - list(APPEND ALLFILES "${_dest}/${fn}") + + # Clean up output file name + get_filename_component(absout "${_dest}/${fn}" ABSOLUTE) + + add_custom_command(OUTPUT "${absout}" + COMMAND + ${CMAKE_COMMAND} + ARGS -E make_directory "${_dest}" + COMMAND + ${CMAKE_COMMAND} + ARGS -E copy "${fullpath}" "${_dest}" + MAIN_DEPENDENCY "${fn}" + VERBATIM + COMMENT "Copying ${fn} to ${absout}") + list(APPEND SOURCES "${fullpath}") + list(APPEND ALLFILES "${absout}") endforeach() # Custom target depending on all the file copy commands add_custom_target(${_target} - SOURCES ${ARGN} + SOURCES ${SOURCES} DEPENDS ${ALLFILES}) set_property(TARGET ${_target} PROPERTY FILE_COPY_TARGET YES) diff --git a/LuaTargets.cmake b/LuaTargets.cmake index 4e8a1c2..5abbc46 100644 --- a/LuaTargets.cmake +++ b/LuaTargets.cmake @@ -39,7 +39,6 @@ function(add_lua_target _target _dest) if(NOT LUA_TARGET_LUAC_EXECUTABLE) if(TARGET luac) - message(STATUS "luac target found, using that in add_lua_target") set(LUA_TARGET_LUAC_EXECUTABLE luac) else() find_executable(LUA_TARGET_LUAC_EXECUTABLE @@ -53,32 +52,39 @@ function(add_lua_target _target _dest) endif() set(ALLFILES) + set(SOURCES) foreach(fn ${ARGN}) + # Produce an absolute path to the input file if(IS_ABSOLUTE "${fn}") - set(fullpath "${fn}") + get_filename_component(fullpath "${fn}" ABSOLUTE) get_filename_component(fn "${fn}" NAME) else() get_filename_component(fullpath "${CMAKE_CURRENT_SOURCE_DIR}/${fn}" ABSOLUTE) endif() - add_custom_command(OUTPUT "${_dest}/${fn}" - COMMAND - ${CMAKE_COMMAND} - ARGS -E make_directory "${_dest}" - COMMAND - ${CMAKE_COMMAND} - ARGS -E copy "${fullpath}" "${_dest}" - COMMAND - "${LUA_TARGET_LUAC_EXECUTABLE}" - ARGS -p "${fullpath}" - WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" - DEPENDS "${fullpath}" - COMMENT "Copying ${fullpath} to ${_dest}/${fn} and parsing...") - list(APPEND ALLFILES "${_dest}/${fn}") + + # Clean up output file name + get_filename_component(absout "${_dest}/${fn}" ABSOLUTE) + + add_custom_command(OUTPUT "${absout}" + COMMAND + ${CMAKE_COMMAND} + ARGS -E make_directory "${_dest}" + COMMAND + ${CMAKE_COMMAND} + ARGS -E copy "${fullpath}" "${_dest}" + COMMAND + "${LUA_TARGET_LUAC_EXECUTABLE}" + ARGS -p "${fullpath}" + MAIN_DEPENDENCY "${fn}" + VERBATIM + COMMENT "Copying ${fn} to ${absout} and parsing...") + list(APPEND SOURCES "${fullpath}") + list(APPEND ALLFILES "${absout}") endforeach() # Custom target depending on all the file copy commands add_custom_target(${_target} - SOURCES ${ARGN} + SOURCES ${SOURCES} DEPENDS ${ALLFILES}) if(TARGET "${LUA_TARGET_LUAC_EXECUTABLE}") get_property(_luac_imported TARGET "${LUA_TARGET_LUAC_EXECUTABLE}" PROPERTY IMPORTED) diff --git a/SearchProgramFilesForOpenSceneGraph.cmake b/SearchProgramFilesForOpenSceneGraph.cmake index d7cf2df..aa7165e 100644 --- a/SearchProgramFilesForOpenSceneGraph.cmake +++ b/SearchProgramFilesForOpenSceneGraph.cmake @@ -33,8 +33,10 @@ if(WIN32) elseif(MSVC90) list_filter_out(_osgpaths "[vV][cC]8" ${_osgpaths}) endif() - list(SORT _osgpaths) - list(REVERSE _osgpaths) + if(_osgpaths) + list(SORT _osgpaths) + list(REVERSE _osgpaths) + endif() endif() else() prefix_list_glob(_osgpaths "/OpenSceneGraph*" /usr /usr/local /opt)