Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
CoMISo
CoMISo
Commits
4577e486
Commit
4577e486
authored
Aug 13, 2019
by
Martin Heistermann
Browse files
Introduce ACG_COMMON_DO_NOT_COPY_POST_BUILD
parent
7fe90a54
Changes
1
Hide whitespace changes
Inline
Side-by-side
cmake/ACGCommon.cmake
View file @
4577e486
...
...
@@ -741,22 +741,24 @@ function (acg_add_executable _target)
# set common target properties defined in common.cmake
acg_set_target_props
(
${
_target
}
)
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
add_custom_command
(
TARGET
${
_target
}
POST_BUILD
COMMAND
${
CMAKE_COMMAND
}
-E
copy_if_different
${
CMAKE_CURRENT_BINARY_DIR
}
/
${
CMAKE_CFG_INTDIR
}
/
${
_target
}
.exe
${
CMAKE_BINARY_DIR
}
/Build/
${
ACG_PROJECT_BINDIR
}
/
${
_target
}
.exe
)
elseif
(
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_COMMON_DO_NOT_COPY_POST_BUILD
)
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
add_custom_command
(
TARGET
${
_target
}
POST_BUILD
COMMAND
${
CMAKE_COMMAND
}
-E
copy_if_different
${
CMAKE_CURRENT_BINARY_DIR
}
/
${
CMAKE_CFG_INTDIR
}
/
${
_target
}
.exe
${
CMAKE_BINARY_DIR
}
/Build/
${
ACG_PROJECT_BINDIR
}
/
${
_target
}
.exe
)
elseif
(
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
()
endif
()
if
(
NOT ACG_PROJECT_MACOS_BUNDLE OR NOT APPLE
)
install
(
TARGETS
${
_target
}
DESTINATION
${
ACG_PROJECT_BINDIR
}
)
endif
()
...
...
@@ -798,77 +800,79 @@ function (acg_add_library _target _libtype)
set
(
postfix $<IF:$<CONFIG:Debug>,
${
CMAKE_DEBUG_POSTFIX
}
,
""
>
)
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
)
add_custom_command
(
TARGET
${
_target
}
POST_BUILD
COMMAND
${
CMAKE_COMMAND
}
-E
copy_if_different
${
CMAKE_CURRENT_BINARY_DIR
}
/
${
CMAKE_CFG_INTDIR
}
/
${
fullname
}
.dll
${
CMAKE_BINARY_DIR
}
/Build/
${
ACG_PROJECT_BINDIR
}
/
${
fullname
}
.dll
)
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
}
/
${
fullname
}
.dll
${
CMAKE_BINARY_DIR
}
/Build/
${
ACG_PROJECT_PLUGINDIR
}
/
${
fullname
}
.dll
)
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
)
add_custom_command
(
TARGET
${
_target
}
POST_BUILD
COMMAND
${
CMAKE_COMMAND
}
-E
copy_if_different
${
CMAKE_CURRENT_BINARY_DIR
}
/
${
CMAKE_CFG_INTDIR
}
/lib
${
fullname
}
.a
${
CMAKE_BINARY_DIR
}
/Build/
${
ACG_PROJECT_LIBDIR
}
/lib
${
fullname
}
.a
)
endif
()
if
(
_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
()
if
(
NOT ACG_COMMON_DO_NOT_COPY_POST_BUILD
)
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
)
add_custom_command
(
TARGET
${
_target
}
POST_BUILD
COMMAND
${
CMAKE_COMMAND
}
-E
copy_if_different
${
CMAKE_CURRENT_BINARY_DIR
}
/
${
CMAKE_CFG_INTDIR
}
/
${
fullname
}
.dll
${
CMAKE_BINARY_DIR
}
/Build/
${
ACG_PROJECT_BINDIR
}
/
${
fullname
}
.dll
)
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
}
/
${
fullname
}
.dll
${
CMAKE_BINARY_DIR
}
/Build/
${
ACG_PROJECT_PLUGINDIR
}
/
${
fullname
}
.dll
)
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
)
add_custom_command
(
TARGET
${
_target
}
POST_BUILD
COMMAND
${
CMAKE_COMMAND
}
-E
copy_if_different
${
CMAKE_CURRENT_BINARY_DIR
}
/
${
CMAKE_CFG_INTDIR
}
/lib
${
fullname
}
.a
${
CMAKE_BINARY_DIR
}
/Build/
${
ACG_PROJECT_LIBDIR
}
/lib
${
fullname
}
.a
)
endif
()
if
(
_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
()
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
)
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
()
endif
()
# Block installation of libraries by setting ACG_NO_LIBRARY_INSTALL
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment