- use cmake generator targetnames for copying files
refs #1801 git-svn-id: http://www.openmesh.org/svnrepo/OpenMesh/trunk@980 fdac6126-5c0c-442c-9429-916003d36597
This commit is contained in:
@@ -384,22 +384,14 @@ function (acg_add_executable _target)
|
|||||||
# set common target properties defined in common.cmake
|
# set common target properties defined in common.cmake
|
||||||
acg_set_target_props (${_target})
|
acg_set_target_props (${_target})
|
||||||
|
|
||||||
if (WIN32)
|
if (WIN32 OR (APPLE AND NOT ACG_PROJECT_MACOS_BUNDLE))
|
||||||
# copy exe file to "Build" directory
|
|
||||||
# Visual studio will create this file in a subdirectory so we can't use
|
|
||||||
# RUNTIME_OUTPUT_DIRECTORY directly here
|
|
||||||
add_custom_command (TARGET ${_target} POST_BUILD
|
add_custom_command (TARGET ${_target} POST_BUILD
|
||||||
COMMAND ${CMAKE_COMMAND} -E
|
COMMAND ${CMAKE_COMMAND} -E
|
||||||
copy_if_different
|
copy_if_different
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${_target}.exe
|
$<TARGET_FILE:${_target}>
|
||||||
${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_BINDIR}/${_target}.exe)
|
${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_BINDIR}/$<TARGET_FILE_NAME:${_target}>)
|
||||||
elseif (APPLE AND NOT ACG_PROJECT_MACOS_BUNDLE)
|
endif (WIN32 OR (APPLE AND NOT ACG_PROJECT_MACOS_BUNDLE))
|
||||||
add_custom_command (TARGET ${_target} POST_BUILD
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E
|
|
||||||
copy_if_different
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${_target}
|
|
||||||
${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_BINDIR}/${_target})
|
|
||||||
endif ()
|
|
||||||
if (NOT ACG_PROJECT_MACOS_BUNDLE OR NOT APPLE)
|
if (NOT ACG_PROJECT_MACOS_BUNDLE OR NOT APPLE)
|
||||||
install (TARGETS ${_target} DESTINATION ${ACG_PROJECT_BINDIR})
|
install (TARGETS ${_target} DESTINATION ${ACG_PROJECT_BINDIR})
|
||||||
endif ()
|
endif ()
|
||||||
@@ -438,25 +430,18 @@ function (acg_add_library _target _libtype)
|
|||||||
endif ()
|
endif ()
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
if( ${CMAKE_BUILD_TYPE} STREQUAL Debug )
|
if (WIN32 OR (APPLE AND NOT ACG_PROJECT_MACOS_BUNDLE))
|
||||||
set ( postfix ${CMAKE_DEBUG_POSTFIX} )
|
|
||||||
else ()
|
|
||||||
set ( postfix "" )
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
set( fullname ${_target}${postfix} )
|
|
||||||
|
|
||||||
|
|
||||||
if (WIN32)
|
|
||||||
# copy exe file to "Build" directory
|
|
||||||
# Visual studio will create this file in a subdirectory so we can't use
|
|
||||||
# RUNTIME_OUTPUT_DIRECTORY directly here
|
|
||||||
if (${_type} STREQUAL SHARED)
|
if (${_type} STREQUAL SHARED)
|
||||||
add_custom_command (TARGET ${_target} POST_BUILD
|
add_custom_command (TARGET ${_target} POST_BUILD
|
||||||
COMMAND ${CMAKE_COMMAND} -E
|
COMMAND ${CMAKE_COMMAND} -E
|
||||||
copy_if_different
|
copy_if_different
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${fullname}.dll
|
$<TARGET_FILE:${_target}>
|
||||||
${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_BINDIR}/${fullname}.dll)
|
${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_LIBDIR}/$<TARGET_FILE_NAME:${_target}>)
|
||||||
|
add_custom_command (TARGET ${_target} POST_BUILD
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E
|
||||||
|
copy_if_different
|
||||||
|
$<TARGET_LINKER_FILE:${_target}>
|
||||||
|
${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_LIBDIR}/$<TARGET_LINKER_FILE_NAME:${_target}>)
|
||||||
elseif (${_type} STREQUAL MODULE)
|
elseif (${_type} STREQUAL MODULE)
|
||||||
if (NOT EXISTS ${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_PLUGINDIR})
|
if (NOT EXISTS ${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_PLUGINDIR})
|
||||||
file (MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_PLUGINDIR})
|
file (MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_PLUGINDIR})
|
||||||
@@ -464,58 +449,34 @@ function (acg_add_library _target _libtype)
|
|||||||
add_custom_command (TARGET ${_target} POST_BUILD
|
add_custom_command (TARGET ${_target} POST_BUILD
|
||||||
COMMAND ${CMAKE_COMMAND} -E
|
COMMAND ${CMAKE_COMMAND} -E
|
||||||
copy_if_different
|
copy_if_different
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${fullname}.dll
|
$<TARGET_FILE:${_target}>
|
||||||
${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_PLUGINDIR}/${fullname}.dll)
|
${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_PLUGINDIR}/$<TARGET_FILE_NAME:${_target}>)
|
||||||
endif ()
|
|
||||||
if (${_type} STREQUAL SHARED OR ${_type} STREQUAL STATIC)
|
|
||||||
if("${CMAKE_GENERATOR}" MATCHES "MinGW Makefiles")
|
|
||||||
SET(OUTPUTNAME "lib${fullname}.a")
|
|
||||||
else()
|
|
||||||
SET(OUTPUTNAME "${fullname}.lib")
|
|
||||||
endif()
|
|
||||||
add_custom_command (TARGET ${_target} POST_BUILD
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E
|
|
||||||
copy_if_different
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${OUTPUTNAME}
|
|
||||||
${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_LIBDIR}/${OUTPUTNAME})
|
|
||||||
endif ()
|
|
||||||
elseif (APPLE AND NOT ACG_PROJECT_MACOS_BUNDLE)
|
|
||||||
if (${_type} STREQUAL SHARED)
|
|
||||||
add_custom_command (TARGET ${_target} POST_BUILD
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E
|
|
||||||
copy_if_different
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${fullname}.dylib
|
|
||||||
${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_LIBDIR}/lib${fullname}.dylib)
|
|
||||||
elseif (${_type} STREQUAL MODULE)
|
|
||||||
if (NOT EXISTS ${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_PLUGINDIR})
|
|
||||||
file (MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_PLUGINDIR})
|
|
||||||
endif ()
|
|
||||||
add_custom_command (TARGET ${_target} POST_BUILD
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E
|
|
||||||
copy_if_different
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${fullname}.so
|
|
||||||
${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_PLUGINDIR}/lib${fullname}.so)
|
|
||||||
elseif (${_type} STREQUAL STATIC)
|
elseif (${_type} STREQUAL STATIC)
|
||||||
add_custom_command (TARGET ${_target} POST_BUILD
|
add_custom_command (TARGET ${_target} POST_BUILD
|
||||||
COMMAND ${CMAKE_COMMAND} -E
|
COMMAND ${CMAKE_COMMAND} -E
|
||||||
copy_if_different
|
copy_if_different
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${fullname}.a
|
$<TARGET_FILE:${_target}>
|
||||||
${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_LIBDIR}/lib${fullname}.a)
|
${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_LIBDIR}/$<TARGET_FILE_NAME:${_target}>)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
|
# make an extra copy for windows into the binary directory
|
||||||
|
if (${_type} STREQUAL SHARED AND WIN32)
|
||||||
|
add_custom_command (TARGET ${_target} POST_BUILD
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E
|
||||||
|
copy_if_different
|
||||||
|
$<TARGET_FILE:${_target}>
|
||||||
|
${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_BINDIR}/$<TARGET_FILE_NAME:${_target}>)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
endif(WIN32 OR (APPLE AND NOT ACG_PROJECT_MACOS_BUNDLE))
|
||||||
|
|
||||||
if (_and_static)
|
if (_and_static)
|
||||||
add_custom_command (TARGET ${_target}Static POST_BUILD
|
add_custom_command (TARGET ${_target}Static POST_BUILD
|
||||||
COMMAND ${CMAKE_COMMAND} -E
|
COMMAND ${CMAKE_COMMAND} -E
|
||||||
copy_if_different
|
copy_if_different
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${_target}Static${postfix}.a
|
$<TARGET_FILE:${_target}Static>
|
||||||
${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_LIBDIR}/lib${fullname}.a)
|
${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_LIBDIR}/$<TARGET_FILE_NAME:${_target}Static>)
|
||||||
endif ()
|
|
||||||
|
|
||||||
elseif (NOT APPLE AND _and_static)
|
|
||||||
add_custom_command (TARGET ${_target}Static POST_BUILD
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E
|
|
||||||
copy_if_different
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${_target}Static${postfix}.a
|
|
||||||
${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_LIBDIR}/lib${fullname}.a)
|
|
||||||
|
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user