mirror of
https://github.com/keepassxreboot/keepassxc.git
synced 2025-01-06 04:58:16 -05:00
ab153a24ec
Instead of running macdeployqt once for each extra helper binary and plugin (plus the main run for the application itself), collect all the binaries that should be processed and run macdeloyqt only once after all the binaries have been installed. This also moves the main app macdeployqt call from a POST_BUILD step to an install(CODE) step, making increment rebuilds of the app faster. To ensure that macdeployqt is called after all the binaries are installed, a new post_install subdirectory is needed to circumvent CMake's limitation regarding the default order of installation. CMake first runs the current directory install() calls and then it's child subdirectory ones. Because we want macdeployqt to be the last install() call, it needs to be done inside a subdirectory that is added last. Note due to a bug in macdeployqt, the deployed app inside the .dmg file will fail to run on arm macs, due to broken code signature. See https://bugreports.qt.io/browse/QTBUG-101696 for details. For the final release, the release-tool should take care of proper resigning.
48 lines
2.0 KiB
CMake
Executable File
48 lines
2.0 KiB
CMake
Executable File
# Copyright (C) 2020 KeePassXC Team <team@keepassxc.org>
|
|
#
|
|
# This program is free software: you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation, either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
if(WITH_XC_BROWSER)
|
|
set(proxy_SOURCES
|
|
../browser/BrowserShared.cpp
|
|
keepassxc-proxy.cpp
|
|
NativeMessagingProxy.cpp)
|
|
|
|
# Alloc must be defined in a static library to prevent clashing with clang ASAN definitions
|
|
add_library(proxy_alloc STATIC ../core/Alloc.cpp)
|
|
target_link_libraries(proxy_alloc PRIVATE Qt5::Core ${BOTAN2_LIBRARIES})
|
|
|
|
add_executable(keepassxc-proxy ${proxy_SOURCES})
|
|
target_link_libraries(keepassxc-proxy proxy_alloc Qt5::Core Qt5::Network)
|
|
install(TARGETS keepassxc-proxy
|
|
BUNDLE DESTINATION . COMPONENT Runtime
|
|
RUNTIME DESTINATION ${PROXY_INSTALL_DIR} COMPONENT Runtime)
|
|
|
|
if(APPLE AND WITH_APP_BUNDLE)
|
|
set(PROXY_APP_DIR "${CMAKE_BINARY_DIR}/src/${PROXY_INSTALL_DIR}")
|
|
add_custom_command(TARGET keepassxc-proxy
|
|
POST_BUILD
|
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/keepassxc-proxy ${PROXY_APP_DIR}/keepassxc-proxy
|
|
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/src
|
|
COMMENT "Copying keepassxc-proxy into app bundle")
|
|
|
|
set_property(GLOBAL APPEND PROPERTY
|
|
_MACDEPLOYQT_EXTRA_BINARIES "${PROXY_INSTALL_DIR}/keepassxc-proxy")
|
|
endif()
|
|
|
|
if(WIN32)
|
|
target_link_libraries(keepassxc-proxy Wtsapi32.lib Ws2_32.lib)
|
|
endif()
|
|
endif()
|