1
0
Fork 0

Adapt DESKTOP_APP_USE_PACKAGED for macOS and proper usage of pkg-config

This commit is contained in:
Ilya Fedin 2020-04-01 03:33:12 +04:00 committed by John Preston
parent 4a8061d2b0
commit d5153dfd92
12 changed files with 51 additions and 48 deletions

View file

@ -51,7 +51,8 @@ else()
target_include_directories(external_dbusmenu_qt target_include_directories(external_dbusmenu_qt
PUBLIC PUBLIC
${dbusmenu_qt_loc} ${dbusmenu_qt_loc}
"${CMAKE_CURRENT_BINARY_DIR}") "${CMAKE_CURRENT_BINARY_DIR}"
)
target_link_libraries(external_dbusmenu_qt target_link_libraries(external_dbusmenu_qt
PUBLIC PUBLIC

View file

@ -10,27 +10,20 @@ add_library(desktop-app::external_ffmpeg ALIAS external_ffmpeg)
if (DESKTOP_APP_USE_PACKAGED) if (DESKTOP_APP_USE_PACKAGED)
find_package(PkgConfig REQUIRED) find_package(PkgConfig REQUIRED)
pkg_check_modules(AVCODEC REQUIRED libavcodec) pkg_check_modules(AVCODEC REQUIRED IMPORTED_TARGET libavcodec)
pkg_check_modules(AVFORMAT REQUIRED libavformat) pkg_check_modules(AVFORMAT REQUIRED IMPORTED_TARGET libavformat)
pkg_check_modules(AVUTIL REQUIRED libavutil) pkg_check_modules(AVUTIL REQUIRED IMPORTED_TARGET libavutil)
pkg_check_modules(SWSCALE REQUIRED libswscale) pkg_check_modules(SWSCALE REQUIRED IMPORTED_TARGET libswscale)
pkg_check_modules(SWRESAMPLE REQUIRED libswresample) pkg_check_modules(SWRESAMPLE REQUIRED IMPORTED_TARGET libswresample)
target_include_directories(external_ffmpeg
INTERFACE
${AVCODEC_INCLUDE_DIRS}
${AVFORMAT_INCLUDE_DIRS}
${AVUTIL_INCLUDE_DIRS}
${SWSCALE_INCLUDE_DIRS}
${SWRESAMPLE_INCLUDE_DIRS})
target_link_libraries(external_ffmpeg target_link_libraries(external_ffmpeg
INTERFACE INTERFACE
${AVCODEC_LIBRARIES} PkgConfig::AVCODEC
${AVFORMAT_LIBRARIES} PkgConfig::AVFORMAT
${AVUTIL_LIBRARIES} PkgConfig::AVUTIL
${SWSCALE_LIBRARIES} PkgConfig::SWSCALE
${SWRESAMPLE_LIBRARIES}) PkgConfig::SWRESAMPLE
)
else() else()
target_include_directories(external_ffmpeg SYSTEM target_include_directories(external_ffmpeg SYSTEM
INTERFACE INTERFACE

View file

@ -9,10 +9,9 @@ if (DESKTOP_APP_USE_PACKAGED)
add_library(desktop-app::external_hunspell ALIAS external_hunspell) add_library(desktop-app::external_hunspell ALIAS external_hunspell)
find_package(PkgConfig REQUIRED) find_package(PkgConfig REQUIRED)
pkg_check_modules(HUNSPELL REQUIRED hunspell) pkg_check_modules(HUNSPELL REQUIRED IMPORTED_TARGET hunspell)
target_include_directories(external_hunspell INTERFACE ${HUNSPELL_INCLUDE_DIRS}) target_link_libraries(external_hunspell INTERFACE PkgConfig::HUNSPELL)
target_link_libraries(external_hunspell INTERFACE ${HUNSPELL_LIBRARIES})
else() else()
add_library(external_hunspell OBJECT) add_library(external_hunspell OBJECT)
add_library(desktop-app::external_hunspell ALIAS external_hunspell) add_library(desktop-app::external_hunspell ALIAS external_hunspell)

View file

@ -7,7 +7,10 @@
add_library(external_iconv INTERFACE IMPORTED GLOBAL) add_library(external_iconv INTERFACE IMPORTED GLOBAL)
add_library(desktop-app::external_iconv ALIAS external_iconv) add_library(desktop-app::external_iconv ALIAS external_iconv)
if (APPLE AND NOT build_osx) if (APPLE AND DESKTOP_APP_USE_PACKAGED)
find_package(Iconv REQUIRED)
target_link_libraries(external_iconv INTERFACE Iconv::Iconv)
elseif (APPLE AND NOT build_osx)
target_link_libraries(external_iconv target_link_libraries(external_iconv
INTERFACE INTERFACE
/usr/local/macos/lib/libiconv.a /usr/local/macos/lib/libiconv.a

View file

@ -9,10 +9,9 @@ if (DESKTOP_APP_USE_PACKAGED)
add_library(desktop-app::external_lz4 ALIAS external_lz4) add_library(desktop-app::external_lz4 ALIAS external_lz4)
find_package(PkgConfig REQUIRED) find_package(PkgConfig REQUIRED)
pkg_check_modules(LZ4 liblz4) pkg_check_modules(LZ4 IMPORTED_TARGET liblz4)
target_include_directories(external_lz4 INTERFACE ${LZ4_INCLUDE_DIRS}) target_link_libraries(external_lz4 INTERFACE PkgConfig::LZ4)
target_link_libraries(external_lz4 INTERFACE ${LZ4_LIBRARIES})
else() else()
add_library(external_lz4 OBJECT) add_library(external_lz4 OBJECT)
add_library(desktop-app::external_lz4 ALIAS external_lz4) add_library(desktop-app::external_lz4 ALIAS external_lz4)

View file

@ -9,10 +9,9 @@ add_library(desktop-app::external_minizip ALIAS external_minizip)
if (DESKTOP_APP_USE_PACKAGED) if (DESKTOP_APP_USE_PACKAGED)
find_package(PkgConfig REQUIRED) find_package(PkgConfig REQUIRED)
pkg_check_modules(MINIZIP REQUIRED minizip) pkg_check_modules(MINIZIP REQUIRED IMPORTED_TARGET minizip)
target_include_directories(external_minizip INTERFACE ${MINIZIP_INCLUDE_DIRS}) target_link_libraries(external_minizip INTERFACE PkgConfig::MINIZIP)
target_link_libraries(external_minizip INTERFACE ${MINIZIP_LIBRARIES})
elseif (NOT WIN32) elseif (NOT WIN32)
add_library(external_minizip_bundled STATIC) add_library(external_minizip_bundled STATIC)
init_target(external_minizip_bundled "(external)") init_target(external_minizip_bundled "(external)")

View file

@ -9,7 +9,11 @@ add_library(desktop-app::external_openssl ALIAS external_openssl)
if (DESKTOP_APP_USE_PACKAGED) if (DESKTOP_APP_USE_PACKAGED)
find_package(OpenSSL REQUIRED) find_package(OpenSSL REQUIRED)
target_link_libraries(external_openssl INTERFACE OpenSSL::SSL) target_link_libraries(external_openssl
INTERFACE
OpenSSL::SSL
OpenSSL::Crypto
)
else() else()
if (LINUX) if (LINUX)
target_include_directories(external_openssl SYSTEM target_include_directories(external_openssl SYSTEM

View file

@ -7,12 +7,7 @@
add_library(external_opus INTERFACE IMPORTED GLOBAL) add_library(external_opus INTERFACE IMPORTED GLOBAL)
add_library(desktop-app::external_opus ALIAS external_opus) add_library(desktop-app::external_opus ALIAS external_opus)
if (DESKTOP_APP_USE_PACKAGED) if (NOT DESKTOP_APP_USE_PACKAGED)
find_package(PkgConfig REQUIRED)
pkg_check_modules(OPUS opus)
target_include_directories(external_opus INTERFACE ${OPUS_INCLUDE_DIRS})
else()
target_include_directories(external_opus SYSTEM target_include_directories(external_opus SYSTEM
INTERFACE INTERFACE
${libs_loc}/opus/include ${libs_loc}/opus/include
@ -20,7 +15,10 @@ else()
endif() endif()
if (DESKTOP_APP_USE_PACKAGED) if (DESKTOP_APP_USE_PACKAGED)
target_link_libraries(external_opus INTERFACE ${OPUS_LIBRARIES}) find_package(PkgConfig REQUIRED)
pkg_check_modules(OPUS IMPORTED_TARGET opus)
target_link_libraries(external_opus INTERFACE PkgConfig::OPUS)
elseif (WIN32) elseif (WIN32)
set(opus_lib_loc ${libs_loc}/opus/win32/VS2015/Win32/$<IF:$<CONFIG:Debug>,Debug,Release>) set(opus_lib_loc ${libs_loc}/opus/win32/VS2015/Win32/$<IF:$<CONFIG:Debug>,Debug,Release>)

View file

@ -21,7 +21,8 @@ if (DESKTOP_APP_USE_PACKAGED)
Qt5::Core Qt5::Core
Qt5::Gui Qt5::Gui
Qt5::Widgets Qt5::Widgets
Qt5::Network) Qt5::Network
)
if (Qt5DBus_FOUND) if (Qt5DBus_FOUND)
target_link_libraries(external_qt INTERFACE Qt5::DBus) target_link_libraries(external_qt INTERFACE Qt5::DBus)
@ -30,7 +31,8 @@ if (DESKTOP_APP_USE_PACKAGED)
target_include_directories(external_qt target_include_directories(external_qt
INTERFACE INTERFACE
${Qt5Core_PRIVATE_INCLUDE_DIRS} ${Qt5Core_PRIVATE_INCLUDE_DIRS}
${Qt5Gui_PRIVATE_INCLUDE_DIRS}) ${Qt5Gui_PRIVATE_INCLUDE_DIRS}
)
else() else()
target_include_directories(external_qt SYSTEM target_include_directories(external_qt SYSTEM
INTERFACE INTERFACE

View file

@ -9,9 +9,8 @@ if (DESKTOP_APP_USE_PACKAGED_RLOTTIE)
add_library(desktop-app::external_rlottie ALIAS external_rlottie) add_library(desktop-app::external_rlottie ALIAS external_rlottie)
find_package(PkgConfig REQUIRED) find_package(PkgConfig REQUIRED)
pkg_check_modules(RLOTTIE REQUIRED rlottie) pkg_check_modules(RLOTTIE REQUIRED IMPORTED_TARGET rlottie)
target_include_directories(external_rlottie INTERFACE ${RLOTTIE_INCLUDE_DIRS}) target_link_libraries(external_rlottie INTERFACE PkgConfig::RLOTTIE)
target_link_libraries(external_rlottie INTERFACE ${RLOTTIE_LIBRARIES})
else() else()
add_library(external_rlottie OBJECT) add_library(external_rlottie OBJECT)
add_library(desktop-app::external_rlottie ALIAS external_rlottie) add_library(desktop-app::external_rlottie ALIAS external_rlottie)

View file

@ -38,9 +38,13 @@ function(init_target target_name) # init_target(my_target folder_name)
XCODE_ATTRIBUTE_CLANG_ENABLE_OBJC_WEAK YES XCODE_ATTRIBUTE_CLANG_ENABLE_OBJC_WEAK YES
XCODE_ATTRIBUTE_GCC_INLINES_ARE_PRIVATE_EXTERN YES XCODE_ATTRIBUTE_GCC_INLINES_ARE_PRIVATE_EXTERN YES
XCODE_ATTRIBUTE_GCC_SYMBOLS_PRIVATE_EXTERN YES XCODE_ATTRIBUTE_GCC_SYMBOLS_PRIVATE_EXTERN YES
XCODE_ATTRIBUTE_GCC_OPTIMIZATION_LEVEL $<IF:$<CONFIG:Debug>,0,fast>
XCODE_ATTRIBUTE_LLVM_LTO $<IF:$<CONFIG:Debug>,NO,YES>
) )
if (NOT DESKTOP_APP_USE_PACKAGED)
set_target_properties(${target_name} PROPERTIES
XCODE_ATTRIBUTE_GCC_OPTIMIZATION_LEVEL $<IF:$<CONFIG:Debug>,0,fast>
XCODE_ATTRIBUTE_LLVM_LTO $<IF:$<CONFIG:Debug>,NO,YES>
)
endif()
if (WIN32 OR DESKTOP_APP_ENABLE_IPO_OPTIMIZATIONS) if (WIN32 OR DESKTOP_APP_ENABLE_IPO_OPTIMIZATIONS)
set_target_properties(${target_name} PROPERTIES set_target_properties(${target_name} PROPERTIES
INTERPROCEDURAL_OPTIMIZATION_RELEASE True INTERPROCEDURAL_OPTIMIZATION_RELEASE True

View file

@ -14,10 +14,12 @@ else()
MAC_USE_BREAKPAD MAC_USE_BREAKPAD
) )
endif() endif()
target_include_directories(common_options if (NOT DESKTOP_APP_USE_PACKAGED)
INTERFACE target_include_directories(common_options
/usr/local/macos/include INTERFACE
) /usr/local/macos/include
)
endif()
endif() endif()
target_compile_options(common_options target_compile_options(common_options