mirror of
https://github.com/keepassxreboot/keepassxc.git
synced 2024-12-11 00:34:30 -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.
83 lines
2.4 KiB
CMake
83 lines
2.4 KiB
CMake
# Copyright (C) 2019 KeePassXC Team
|
|
#
|
|
# 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 2 or (at your option)
|
|
# version 3 of the License.
|
|
#
|
|
# 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/>.
|
|
|
|
set(cli_SOURCES
|
|
Add.cpp
|
|
AddGroup.cpp
|
|
Analyze.cpp
|
|
AttachmentExport.cpp
|
|
AttachmentImport.cpp
|
|
AttachmentRemove.cpp
|
|
Clip.cpp
|
|
Close.cpp
|
|
Create.cpp
|
|
Command.cpp
|
|
DatabaseCommand.cpp
|
|
Diceware.cpp
|
|
Edit.cpp
|
|
Estimate.cpp
|
|
Exit.cpp
|
|
Export.cpp
|
|
Generate.cpp
|
|
Help.cpp
|
|
Import.cpp
|
|
Info.cpp
|
|
List.cpp
|
|
Merge.cpp
|
|
Move.cpp
|
|
Open.cpp
|
|
Remove.cpp
|
|
RemoveGroup.cpp
|
|
Search.cpp
|
|
Show.cpp)
|
|
|
|
add_library(cli STATIC ${cli_SOURCES})
|
|
target_link_libraries(cli Qt5::Core)
|
|
|
|
find_package(Readline)
|
|
|
|
if (READLINE_FOUND)
|
|
target_compile_definitions(cli PUBLIC USE_READLINE)
|
|
target_link_libraries(cli ${Readline_LIBRARY})
|
|
endif()
|
|
|
|
add_executable(keepassxc-cli keepassxc-cli.cpp)
|
|
target_link_libraries(keepassxc-cli
|
|
${GPGERROR_LIBRARIES}
|
|
cli
|
|
keepassx_core)
|
|
|
|
install(TARGETS keepassxc-cli
|
|
BUNDLE DESTINATION . COMPONENT Runtime
|
|
RUNTIME DESTINATION ${CLI_INSTALL_DIR} COMPONENT Runtime)
|
|
|
|
if(WIN32)
|
|
# install(CODE "include(BundleUtilities)
|
|
# fixup_bundle(\"\${CMAKE_INSTALL_PREFIX}/keepassxc-cli.exe\" \"\" \"\")"
|
|
# COMPONENT Runtime)
|
|
endif()
|
|
|
|
if(APPLE AND WITH_APP_BUNDLE)
|
|
set(CLI_APP_DIR "${CMAKE_BINARY_DIR}/src/${CLI_INSTALL_DIR}")
|
|
|
|
add_custom_command(TARGET keepassxc-cli
|
|
POST_BUILD
|
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/keepassxc-cli ${CLI_APP_DIR}/keepassxc-cli
|
|
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/src
|
|
COMMENT "Copying keepassxc-cli into app bundle")
|
|
set_property(GLOBAL APPEND PROPERTY
|
|
_MACDEPLOYQT_EXTRA_BINARIES "${CLI_INSTALL_DIR}/keepassxc-cli")
|
|
endif()
|