build: use CMAKE_INSTALL_BINDIR when installing runtime artifacts
On windows override this to be . On macOS set it to the MacOS folder in the bundle
This commit is contained in:
committed by
Chris Rizzitello
parent
57d36b51af
commit
1556908ef6
@ -162,12 +162,14 @@ configure_libs()
|
||||
# setup install paths
|
||||
include(GNUInstallDirs)
|
||||
if (WIN32)
|
||||
set(CMAKE_INSTALL_BINDIR .)
|
||||
set(CMAKE_INSTALL_LICENSE_DIR .)
|
||||
set(CMAKE_INSTALL_I18N_DIR translations)
|
||||
elseif(UNIX AND NOT APPLE)
|
||||
set(CMAKE_INSTALL_LICENSE_DIR ${CMAKE_INSTALL_DATADIR}/licenses/${CMAKE_PROJECT_NAME})
|
||||
set(CMAKE_INSTALL_I18N_DIR ${CMAKE_INSTALL_DATADIR}/${CMAKE_PROJECT_NAME}/translations)
|
||||
else()
|
||||
set(CMAKE_INSTALL_BINDIR $<TARGET_BUNDLE_CONTENT_DIR:${CMAKE_PROJECT_PROPER_NAME}>/MacOS)
|
||||
set(CMAKE_INSTALL_LICENSE_DIR $<TARGET_BUNDLE_CONTENT_DIR:${CMAKE_PROJECT_PROPER_NAME}>/Resources)
|
||||
set(CMAKE_INSTALL_I18N_DIR $<TARGET_BUNDLE_CONTENT_DIR:${CMAKE_PROJECT_PROPER_NAME}>/MacOS/translations)
|
||||
endif()
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
set(MY_DIR ${CMAKE_CURRENT_LIST_DIR})
|
||||
|
||||
set(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP TRUE)
|
||||
set(CMAKE_INSTALL_SYSTEM_RUNTIME_DESTINATION .)
|
||||
set(CMAKE_INSTALL_SYSTEM_RUNTIME_DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
include(InstallRequiredSystemLibraries)
|
||||
|
||||
configure_file(${MY_DIR}/pre-cpack.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/pre-cpack.cmake @ONLY)
|
||||
|
||||
@ -38,21 +38,19 @@ target_link_libraries(
|
||||
app
|
||||
${libs})
|
||||
|
||||
install(
|
||||
TARGETS ${target}
|
||||
RUNTIME_DEPENDENCY_SET coreDeps
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
)
|
||||
|
||||
if(APPLE)
|
||||
set_target_properties(${target} PROPERTIES
|
||||
BUILD_WITH_INSTALL_RPATH TRUE
|
||||
INSTALL_RPATH "@loader_path/../Libraries;@loader_path/../Frameworks"
|
||||
RUNTIME_OUTPUT_DIRECTORY $<TARGET_BUNDLE_CONTENT_DIR:${CMAKE_PROJECT_PROPER_NAME}>/MacOS
|
||||
)
|
||||
elseif(UNIX)
|
||||
install(TARGETS ${target} DESTINATION bin)
|
||||
generate_app_man(${target} "${CMAKE_PROJECT_DESCRIPTION}")
|
||||
elseif(WIN32)
|
||||
install(
|
||||
TARGETS ${target}
|
||||
RUNTIME_DEPENDENCY_SET coreDeps
|
||||
DESTINATION .
|
||||
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_INSTALL_BINDIR}
|
||||
)
|
||||
elseif (WIN32)
|
||||
install(RUNTIME_DEPENDENCY_SET coreDeps
|
||||
PRE_EXCLUDE_REGEXES
|
||||
"api-ms-win-.*"
|
||||
@ -60,6 +58,8 @@ elseif(WIN32)
|
||||
"^hvsifiletrust\\.dll$"
|
||||
POST_EXCLUDE_REGEXES
|
||||
".*system32.*"
|
||||
RUNTIME DESTINATION .
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
)
|
||||
else()
|
||||
generate_app_man(${target} "${CMAKE_PROJECT_DESCRIPTION}")
|
||||
endif()
|
||||
|
||||
@ -30,7 +30,7 @@ if(WIN32)
|
||||
install(
|
||||
TARGETS ${target}
|
||||
RUNTIME_DEPENDENCY_SET deamonDeps
|
||||
DESTINATION .
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
)
|
||||
install(RUNTIME_DEPENDENCY_SET daemonDeps
|
||||
PRE_EXCLUDE_REGEXES
|
||||
@ -39,6 +39,6 @@ if(WIN32)
|
||||
"^hvsifiletrust\\.dll$"
|
||||
POST_EXCLUDE_REGEXES
|
||||
".*system32.*"
|
||||
RUNTIME DESTINATION .
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
)
|
||||
endif()
|
||||
|
||||
@ -49,13 +49,16 @@ target_link_libraries(
|
||||
Qt6::Widgets
|
||||
Qt6::Network)
|
||||
|
||||
install(
|
||||
TARGETS ${target}
|
||||
RUNTIME_DEPENDENCY_SET guiDeps
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
BUNDLE DESTINATION .
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
set_target_properties(${target} PROPERTIES LINK_FLAGS "/NODEFAULTLIB:LIBCMT")
|
||||
install(
|
||||
TARGETS ${target}
|
||||
RUNTIME_DEPENDENCY_SET guiDeps
|
||||
DESTINATION .
|
||||
)
|
||||
|
||||
install(RUNTIME_DEPENDENCY_SET guiDeps
|
||||
PRE_EXCLUDE_REGEXES
|
||||
"api-ms-win-.*"
|
||||
@ -63,7 +66,7 @@ if(WIN32)
|
||||
"^hvsifiletrust\\.dll$"
|
||||
POST_EXCLUDE_REGEXES
|
||||
".*system32.*"
|
||||
RUNTIME DESTINATION .
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
)
|
||||
|
||||
set(QT_DEPENDS_DIR ${CMAKE_BINARY_DIR}/qt-depends)
|
||||
@ -85,7 +88,7 @@ if(WIN32)
|
||||
|
||||
install(
|
||||
DIRECTORY ${QT_DEPENDS_DIR}/
|
||||
DESTINATION .
|
||||
DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
PATTERN "dx*.dll" EXCLUDE
|
||||
)
|
||||
|
||||
@ -94,7 +97,6 @@ elseif(APPLE)
|
||||
INSTALL_RPATH "@loader_path/../Libraries;@loader_path/../Frameworks"
|
||||
MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_BINARY_DIR}/deskflow.plist"
|
||||
)
|
||||
install(TARGETS ${target} BUNDLE DESTINATION .)
|
||||
|
||||
# Warning: Do not use for CI/production, as the `entitlements-dev.plist` file adds special
|
||||
# entitlements that are only appropriate for local development.
|
||||
@ -123,6 +125,5 @@ elseif(APPLE)
|
||||
)
|
||||
endif()
|
||||
else()
|
||||
install(TARGETS ${target} DESTINATION bin)
|
||||
generate_app_man(${target} "${CMAKE_PROJECT_DESCRIPTION} \\(GUI\\)")
|
||||
endif()
|
||||
|
||||
Reference in New Issue
Block a user