Clean up and improve "COPY_IF_DIFFERENT" CMake macro

This commit is contained in:
Ryan Pavlik
2018-06-15 11:32:48 -05:00
committed by wmayer
parent de282ad5ce
commit 11d89c7608

View File

@@ -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)