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
PUBLIC
${dbusmenu_qt_loc}
"${CMAKE_CURRENT_BINARY_DIR}")
"${CMAKE_CURRENT_BINARY_DIR}"
)
target_link_libraries(external_dbusmenu_qt
PUBLIC

View file

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

View file

@ -9,10 +9,9 @@ if (DESKTOP_APP_USE_PACKAGED)
add_library(desktop-app::external_hunspell ALIAS external_hunspell)
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 ${HUNSPELL_LIBRARIES})
target_link_libraries(external_hunspell INTERFACE PkgConfig::HUNSPELL)
else()
add_library(external_hunspell OBJECT)
add_library(desktop-app::external_hunspell ALIAS external_hunspell)

View file

@ -7,7 +7,10 @@
add_library(external_iconv INTERFACE IMPORTED GLOBAL)
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
INTERFACE
/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)
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 ${LZ4_LIBRARIES})
target_link_libraries(external_lz4 INTERFACE PkgConfig::LZ4)
else()
add_library(external_lz4 OBJECT)
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)
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 ${MINIZIP_LIBRARIES})
target_link_libraries(external_minizip INTERFACE PkgConfig::MINIZIP)
elseif (NOT WIN32)
add_library(external_minizip_bundled STATIC)
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)
find_package(OpenSSL REQUIRED)
target_link_libraries(external_openssl INTERFACE OpenSSL::SSL)
target_link_libraries(external_openssl
INTERFACE
OpenSSL::SSL
OpenSSL::Crypto
)
else()
if (LINUX)
target_include_directories(external_openssl SYSTEM

View file

@ -7,12 +7,7 @@
add_library(external_opus INTERFACE IMPORTED GLOBAL)
add_library(desktop-app::external_opus ALIAS external_opus)
if (DESKTOP_APP_USE_PACKAGED)
find_package(PkgConfig REQUIRED)
pkg_check_modules(OPUS opus)
target_include_directories(external_opus INTERFACE ${OPUS_INCLUDE_DIRS})
else()
if (NOT DESKTOP_APP_USE_PACKAGED)
target_include_directories(external_opus SYSTEM
INTERFACE
${libs_loc}/opus/include
@ -20,7 +15,10 @@ else()
endif()
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)
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::Gui
Qt5::Widgets
Qt5::Network)
Qt5::Network
)
if (Qt5DBus_FOUND)
target_link_libraries(external_qt INTERFACE Qt5::DBus)
@ -30,7 +31,8 @@ if (DESKTOP_APP_USE_PACKAGED)
target_include_directories(external_qt
INTERFACE
${Qt5Core_PRIVATE_INCLUDE_DIRS}
${Qt5Gui_PRIVATE_INCLUDE_DIRS})
${Qt5Gui_PRIVATE_INCLUDE_DIRS}
)
else()
target_include_directories(external_qt SYSTEM
INTERFACE

View file

@ -9,9 +9,8 @@ if (DESKTOP_APP_USE_PACKAGED_RLOTTIE)
add_library(desktop-app::external_rlottie ALIAS external_rlottie)
find_package(PkgConfig REQUIRED)
pkg_check_modules(RLOTTIE REQUIRED rlottie)
target_include_directories(external_rlottie INTERFACE ${RLOTTIE_INCLUDE_DIRS})
target_link_libraries(external_rlottie INTERFACE ${RLOTTIE_LIBRARIES})
pkg_check_modules(RLOTTIE REQUIRED IMPORTED_TARGET rlottie)
target_link_libraries(external_rlottie INTERFACE PkgConfig::RLOTTIE)
else()
add_library(external_rlottie OBJECT)
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_GCC_INLINES_ARE_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)
set_target_properties(${target_name} PROPERTIES
INTERPROCEDURAL_OPTIMIZATION_RELEASE True

View file

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