mirror of
https://github.com/transmission/transmission.git
synced 2025-12-20 02:18:42 +00:00
Modernize CMake code (ongoing refactoring) (#4507)
* Reformat CMake code
* Bump minimum CMake version to 3.12
* Add target sources separately via `target_source()`
* Make `tr_win32_app_info()` add target sources on its own
* Don't use `include_directories()`
* Don't use `add_definitions()`
* Limit use of `add_compile_options()`
* Move VDKQueue target declaration to a subdirectory
* Add `tr_disable_source_files_compile()` helper
* Add `tr_target_glib_resources()` helper
* Add `tr_gettext_msgfmt()` helper
* Enable AUTOUIC for Qt client
* Enable AUTORCC for Qt client
* Remove AUTO{MOC,RCC,UIC} source group overrides
* Add `tr_target_idl_files()` helper
* Move source group setup to `tr_qt_add_translation()`
* Add `tr_target_xib_files()` helper
* Prefer `target_sources()` to intermediate variables
* Use explicit visibility versions of `target_*()` commands
* Prefer genexes to conditions in `target_*()` commands
* Add `tr_allow_compile_if()` helper
* Leave only top-level `project()`, remove the rest
* Minor fixups
* Fixup Mac QL plugin install
* Fixup IDE target folders and source groups
This commit is contained in:
@@ -1,17 +1,14 @@
|
||||
project(trmacql)
|
||||
add_library(${TR_NAME}-mac-ql MODULE)
|
||||
|
||||
set(${PROJECT_NAME}_SOURCES
|
||||
../NSDataAdditions.mm
|
||||
../NSStringAdditions.mm
|
||||
GeneratePreviewForURL.mm
|
||||
GenerateThumbnailForURL.mm
|
||||
main.cc
|
||||
)
|
||||
target_sources(${TR_NAME}-mac-ql
|
||||
PRIVATE
|
||||
../NSDataAdditions.mm
|
||||
../NSStringAdditions.mm
|
||||
GeneratePreviewForURL.mm
|
||||
GenerateThumbnailForURL.mm
|
||||
main.cc)
|
||||
|
||||
set(${PROJECT_NAME}_HEADERS
|
||||
)
|
||||
|
||||
set(${PROJECT_NAME}_LINGUAS
|
||||
set(LINGUAS
|
||||
da
|
||||
de
|
||||
en
|
||||
@@ -21,77 +18,83 @@ set(${PROJECT_NAME}_LINGUAS
|
||||
nl
|
||||
pt_PT
|
||||
ru
|
||||
tr
|
||||
)
|
||||
tr)
|
||||
|
||||
if(ENABLE_NLS)
|
||||
set(${PROJECT_NAME}_ENABLED_LINGUAS ${${PROJECT_NAME}_LINGUAS})
|
||||
set(ENABLED_LINGUAS ${LINGUAS})
|
||||
else()
|
||||
set(${PROJECT_NAME}_ENABLED_LINGUAS en)
|
||||
set(ENABLED_LINGUAS en)
|
||||
endif()
|
||||
|
||||
set(${PROJECT_NAME}_LANG_STRINGS_FILES
|
||||
Localizable.strings
|
||||
)
|
||||
set(LANG_STRINGS_FILES
|
||||
Localizable.strings)
|
||||
|
||||
set(${PROJECT_NAME}_RESOURCES
|
||||
style.css
|
||||
)
|
||||
source_group(Resources FILES ${${PROJECT_NAME}_RESOURCES})
|
||||
set(RESOURCES
|
||||
style.css)
|
||||
source_group(Resources
|
||||
FILES ${RESOURCES})
|
||||
|
||||
set_source_files_properties(${${PROJECT_NAME}_RESOURCES} PROPERTIES
|
||||
MACOSX_PACKAGE_LOCATION Resources)
|
||||
set_source_files_properties(
|
||||
${RESOURCES}
|
||||
PROPERTIES
|
||||
MACOSX_PACKAGE_LOCATION Resources)
|
||||
|
||||
foreach(LANG ${${PROJECT_NAME}_ENABLED_LINGUAS})
|
||||
set(${PROJECT_NAME}_${LANG}_STRINGS_FILES)
|
||||
foreach(LANG ${ENABLED_LINGUAS})
|
||||
set(${LANG}_STRINGS_FILES)
|
||||
set(STRINGS_FILES_RESOURCES_DIR Resources)
|
||||
if(NOT CMAKE_GENERATOR STREQUAL Xcode)
|
||||
string(APPEND STRINGS_FILES_RESOURCES_DIR /${LANG}.lproj)
|
||||
endif()
|
||||
foreach(F ${${PROJECT_NAME}_LANG_STRINGS_FILES})
|
||||
list(APPEND ${PROJECT_NAME}_${LANG}_STRINGS_FILES ${LANG}.lproj/${F})
|
||||
list(APPEND ${PROJECT_NAME}_RESOURCES ${${PROJECT_NAME}_${LANG}_STRINGS_FILES})
|
||||
set_source_files_properties(${${PROJECT_NAME}_${LANG}_STRINGS_FILES} PROPERTIES
|
||||
MACOSX_PACKAGE_LOCATION ${STRINGS_FILES_RESOURCES_DIR})
|
||||
foreach(F ${LANG_STRINGS_FILES})
|
||||
list(APPEND ${LANG}_STRINGS_FILES ${LANG}.lproj/${F})
|
||||
list(APPEND RESOURCES ${${LANG}_STRINGS_FILES})
|
||||
set_source_files_properties(
|
||||
${${LANG}_STRINGS_FILES}
|
||||
PROPERTIES
|
||||
MACOSX_PACKAGE_LOCATION ${STRINGS_FILES_RESOURCES_DIR})
|
||||
endforeach()
|
||||
source_group(Resources/${LANG}.lproj FILES ${${PROJECT_NAME}_${LANG}_STRINGS_FILES})
|
||||
source_group(Resources/${LANG}.lproj
|
||||
FILES ${${LANG}_STRINGS_FILES})
|
||||
endforeach()
|
||||
|
||||
add_library(${TR_NAME}-mac-ql MODULE
|
||||
${${PROJECT_NAME}_SOURCES}
|
||||
${${PROJECT_NAME}_HEADERS}
|
||||
${${PROJECT_NAME}_RESOURCES}
|
||||
)
|
||||
target_sources(${TR_NAME}-mac-ql
|
||||
PRIVATE
|
||||
${RESOURCES})
|
||||
|
||||
set(MAC_QL_BUNDLE_NAME QuickLookPlugin)
|
||||
|
||||
set_target_properties(${TR_NAME}-mac-ql PROPERTIES
|
||||
OUTPUT_NAME ${MAC_QL_BUNDLE_NAME}
|
||||
MACOSX_BUNDLE ON
|
||||
BUNDLE ON
|
||||
BUNDLE_EXTENSION qlgenerator
|
||||
MACOSX_BUNDLE_INFO_PLIST "${PROJECT_SOURCE_DIR}/Info.plist.in"
|
||||
INSTALL_RPATH "@loader_path/../../../../../MacOS;@loader_path/../../../../../Frameworks"
|
||||
)
|
||||
set_target_properties(
|
||||
${TR_NAME}-mac-ql
|
||||
PROPERTIES
|
||||
OUTPUT_NAME ${MAC_QL_BUNDLE_NAME}
|
||||
MACOSX_BUNDLE ON
|
||||
BUNDLE ON
|
||||
BUNDLE_EXTENSION qlgenerator
|
||||
MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/Info.plist.in"
|
||||
INSTALL_RPATH "@loader_path/../../../../../MacOS;@loader_path/../../../../../Frameworks")
|
||||
|
||||
target_include_directories(${TR_NAME}-mac-ql PRIVATE
|
||||
..
|
||||
)
|
||||
target_include_directories(${TR_NAME}-mac-ql
|
||||
PRIVATE
|
||||
${CMAKE_SOURCE_DIR}
|
||||
..)
|
||||
|
||||
target_link_libraries(${TR_NAME}-mac-ql
|
||||
${TR_NAME}
|
||||
"-framework Foundation"
|
||||
"-framework CoreFoundation"
|
||||
"-framework CoreServices"
|
||||
"-framework AppKit"
|
||||
"-framework QuickLook"
|
||||
)
|
||||
PRIVATE
|
||||
${TR_NAME}
|
||||
"-framework Foundation"
|
||||
"-framework CoreFoundation"
|
||||
"-framework CoreServices"
|
||||
"-framework AppKit"
|
||||
"-framework QuickLook")
|
||||
|
||||
install(TARGETS ${TR_NAME}-mac-ql DESTINATION Applications/${MAC_BUNDLE_NAME}.app/Contents/Library/QuickLook)
|
||||
install(
|
||||
TARGETS ${TR_NAME}-mac-ql
|
||||
DESTINATION Applications/${MAC_BUNDLE_NAME}.app/Contents/Library/QuickLook)
|
||||
|
||||
install(CODE "
|
||||
list(APPEND CMAKE_MODULE_PATH \"${CMAKE_SOURCE_DIR}/cmake\")
|
||||
install(CODE
|
||||
"list(APPEND CMAKE_MODULE_PATH \"${CMAKE_SOURCE_DIR}/cmake\")
|
||||
include(TrMacros)
|
||||
include(GetPrerequisites)
|
||||
tr_fixup_bundle_item(\"\$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/Applications/${MAC_BUNDLE_NAME}.app\" \"Contents/Library/QuickLook/${MAC_QL_BUNDLE_NAME}.qlgenerator/Contents/MacOS/${MAC_QL_BUNDLE_NAME}\" \"\")
|
||||
")
|
||||
tr_fixup_bundle_item(
|
||||
\"\$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/Applications/${MAC_BUNDLE_NAME}.app\"
|
||||
\"Contents/Library/QuickLook/${MAC_QL_BUNDLE_NAME}.qlgenerator/Contents/MacOS/${MAC_QL_BUNDLE_NAME}\" \"\")")
|
||||
|
||||
Reference in New Issue
Block a user