Clean up and improve "COPY_IF_DIFFERENT" CMake macro
This commit is contained in:
@@ -14,7 +14,7 @@ MACRO(COPY_IF_DIFFERENT FROM_DIR TO_DIR FILES TARGETS TAGS)
|
||||
# TAGS - Since only the file name is used
|
||||
# to generate rules, pre-pend a user
|
||||
# supplied tag to prevent duplicate rule errors.
|
||||
SET(AddTargets "")
|
||||
SET(AddTargets)
|
||||
FOREACH(SRC ${FILES})
|
||||
GET_FILENAME_COMPONENT(SRCFILE ${SRC} NAME)
|
||||
# Command to copy the files to ${STEP1}/src, if changed.
|
||||
@@ -31,11 +31,11 @@ FOREACH(SRC ${FILES})
|
||||
ENDIF("${TO_DIR}" STREQUAL "")
|
||||
ADD_CUSTOM_COMMAND(
|
||||
OUTPUT ${TARGET}
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
ARGS -E copy_if_different ${FROM} ${TO}
|
||||
COMMAND "${CMAKE_COMMAND}"
|
||||
ARGS -E copy_if_different "${FROM}" "${TO}"
|
||||
COMMENT "Copying ${SRCFILE} ${TO_DIR}"
|
||||
)
|
||||
SET(AddTargets ${AddTargets} ${TARGET})
|
||||
list(APPEND AddTargets ${TARGET})
|
||||
ENDFOREACH(SRC ${FILES})
|
||||
SET(${TARGETS} ${AddTargets})
|
||||
ENDMACRO(COPY_IF_DIFFERENT FROM_DIR TO_DIR FILES TARGETS TAGS)
|
||||
@@ -236,15 +236,15 @@ MACRO(SET_BIN_DIR ProjectName OutputName)
|
||||
if(WIN32)
|
||||
set_target_properties(${ProjectName} PROPERTIES DEBUG_OUTPUT_NAME ${OutputName}_d)
|
||||
else(WIN32)
|
||||
# FreeCADBase, SMDS, Driver, MEFISTO2 and area-native libs don't depend on parts from CMAKE_INSTALL_LIBDIR
|
||||
if(NOT ${ProjectName} MATCHES "^(FreeCADBase|SMDS|Driver|MEFISTO2|area-native)$")
|
||||
if(${ARGC} STREQUAL 4)
|
||||
set_property(TARGET ${ProjectName} APPEND PROPERTY INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}${ARGV3})
|
||||
else(${ARGC} STREQUAL 4)
|
||||
set_property(TARGET ${ProjectName} APPEND PROPERTY INSTALL_RPATH ${CMAKE_INSTALL_LIBDIR})
|
||||
endif()
|
||||
endif()
|
||||
endif(WIN32)
|
||||
# FreeCADBase, SMDS, Driver, MEFISTO2 and area-native libs don't depend on parts from CMAKE_INSTALL_LIBDIR
|
||||
if(NOT ${ProjectName} MATCHES "^(FreeCADBase|SMDS|Driver|MEFISTO2|area-native)$")
|
||||
if(${ARGC} STREQUAL 4)
|
||||
set_property(TARGET ${ProjectName} APPEND PROPERTY INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}${ARGV3})
|
||||
else(${ARGC} STREQUAL 4)
|
||||
set_property(TARGET ${ProjectName} APPEND PROPERTY INSTALL_RPATH ${CMAKE_INSTALL_LIBDIR})
|
||||
endif()
|
||||
endif()
|
||||
endif(WIN32)
|
||||
ENDMACRO(SET_BIN_DIR)
|
||||
|
||||
# Set python prefix & suffix together
|
||||
@@ -255,8 +255,8 @@ MACRO(SET_PYTHON_PREFIX_SUFFIX ProjectName)
|
||||
|
||||
if(WIN32)
|
||||
set_target_properties(${ProjectName} PROPERTIES SUFFIX ".pyd")
|
||||
# 0000661: cmake build on Mac OS: dealing with dylib versus so
|
||||
elseif(APPLE)
|
||||
# 0000661: cmake build on Mac OS: dealing with dylib versus so
|
||||
elseif(APPLE)
|
||||
set_target_properties(${ProjectName} PROPERTIES SUFFIX ".so")
|
||||
endif(WIN32)
|
||||
ENDMACRO(SET_PYTHON_PREFIX_SUFFIX)
|
||||
ENDMACRO(SET_PYTHON_PREFIX_SUFFIX)
|
||||
|
||||
Reference in New Issue
Block a user