Files
transmission/macosx/QuickLookExtension/CMakeLists.txt
Dzmitry Neviadomski 9b496350a9 feat: Data-based QuickLook extension for macOS 12+ (#7213)
* feat: Prepate Xcode project skeleton for QuickLookExtension

Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>

* feat: Add initial implementation of QuickLookExtension

Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>

* feat: Add working Data-based QuickLook Preview

Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>

* feat: Add new style.css

Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>

* feat: Copy Localization.strings as is from legacy QuickLook plugin

Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>

* fixup: Fix compilation missing NSStringAdditions

Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>

* fixup: Apply clang-format, update style.css, fix file name reference

Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>

* feat: Adopt CMake build from legacy QuickLook Plugin

Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>

* fixup: Remove counter for debug

Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>

* fixup: Make header row for file span across all table

Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>

* feat: Improve style.css

- Use CSS Vars
- Add missing paddings
- Add sticky headers for tables

Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>

* Use UTType for Image generation more directly.

Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>

* Fixup for Xcode project checks in PR

Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>

* Fix Copyright and remove Xcode generated comments

Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>

* Remove unneeded fields from targets Info.plist template.

Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>

* Move tx localization to new QuickLook Extension

Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>

* Apply code review suggestions

Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>

---------

Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
2025-10-31 11:30:55 -05:00

118 lines
2.7 KiB
CMake

set(MAC_QL_BUNDLE_NAME QuickLookExtension)
add_library(${TR_NAME}-mac-qlappex MODULE)
target_sources(${TR_NAME}-mac-qlappex
PRIVATE
../NSStringAdditions.mm
PreviewProvider.mm)
set(LINGUAS
da
de
en
es
eu
fr
he
hu
it
ja
nl
pl
pt-BR
pt-PT
ru
sv
tr
uk
zh-CN
zh-TW)
if(ENABLE_NLS)
set(ENABLED_LINGUAS ${LINGUAS})
else()
set(ENABLED_LINGUAS en)
endif()
set(LANG_STRINGS_FILES
Localizable.strings)
set(RESOURCES
style.css)
source_group(Resources
FILES ${RESOURCES})
set_source_files_properties(
${RESOURCES}
PROPERTIES
MACOSX_PACKAGE_LOCATION Resources)
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 ${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 ${${LANG}_STRINGS_FILES})
endforeach()
target_sources(${TR_NAME}-mac-qlappex
PRIVATE
${RESOURCES})
set_target_properties(
${TR_NAME}-mac-qlappex
PROPERTIES
BUNDLE ON
BUNDLE_EXTENSION appex
INSTALL_RPATH "@loader_path/../../../../MacOS;@loader_path/../../../../Frameworks"
XCODE_ATTRIBUTE_MACOSX_DEPLOYMENT_TARGET "12.0"
MACOSX_BUNDLE ON
MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/Info.plist.in"
OUTPUT_NAME ${MAC_QL_BUNDLE_NAME})
target_compile_options(
${TR_NAME}-mac-qlappex
PUBLIC
"-mmacosx-version-min=12.0")
target_link_options(
${TR_NAME}-mac-qlappex
PUBLIC
"-mmacosx-version-min=12.0")
target_include_directories(${TR_NAME}-mac-qlappex
PRIVATE
..)
target_link_libraries(${TR_NAME}-mac-qlappex
PRIVATE
${TR_NAME}
"-framework Foundation"
"-framework CoreFoundation"
"-framework CoreServices"
"-framework Quartz"
"-framework QuickLook")
install(
TARGETS ${TR_NAME}-mac-qlappex
DESTINATION Applications/${MAC_BUNDLE_NAME}.app/Contents/PlugIns)
install(CODE
"list(APPEND CMAKE_MODULE_PATH \"${PROJECT_SOURCE_DIR}/cmake\")
include(TrMacros)
include(GetPrerequisites)
tr_fixup_bundle_item(
\"\$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/Applications/${MAC_BUNDLE_NAME}.app\"
\"Contents/PlugIns/${MAC_QL_BUNDLE_NAME}.appex/Contents/MacOS/${MAC_QL_BUNDLE_NAME}\" \"\")")