From 33612794c6343b95835aa66d07dd10af99a873de Mon Sep 17 00:00:00 2001 From: John Preston Date: Thu, 21 Nov 2019 17:39:27 +0300 Subject: [PATCH] Use namespaced library aliases. --- external/CMakeLists.txt | 17 +-- external/auto_updates/CMakeLists.txt | 5 +- external/auto_updates/lzma/CMakeLists.txt | 1 + external/crash_reports/CMakeLists.txt | 5 +- .../crash_reports/breakpad/CMakeLists.txt | 1 + external/gsl/CMakeLists.txt | 1 + external/lz4/CMakeLists.txt | 1 + external/openal/CMakeLists.txt | 1 + external/openssl/CMakeLists.txt | 1 + external/opus/CMakeLists.txt | 1 + external/qt/CMakeLists.txt | 1 + external/ranges/CMakeLists.txt | 1 + external/rlottie/CMakeLists.txt | 119 ++++++++++++++++++ external/rlottie/config/config.h | 25 ++++ external/variant/CMakeLists.txt | 1 + external/xxhash/CMakeLists.txt | 1 + external/zlib/CMakeLists.txt | 1 + init_target.cmake | 9 +- options.cmake | 1 + options_win.cmake | 2 +- 20 files changed, 180 insertions(+), 15 deletions(-) create mode 100644 external/rlottie/CMakeLists.txt create mode 100644 external/rlottie/config/config.h diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt index 485adb7..23c6945 100644 --- a/external/CMakeLists.txt +++ b/external/CMakeLists.txt @@ -4,15 +4,16 @@ # For license and copyright information please follow this link: # https://github.com/desktop-app/legal/blob/master/LEGAL -add_subdirectory(qt) -add_subdirectory(openssl) -add_subdirectory(variant) -add_subdirectory(ranges) +add_subdirectory(auto_updates) +add_subdirectory(crash_reports) add_subdirectory(gsl) add_subdirectory(lz4) -add_subdirectory(crash_reports) -add_subdirectory(auto_updates) -add_subdirectory(zlib) -add_subdirectory(opus) add_subdirectory(openal) +add_subdirectory(openssl) +add_subdirectory(opus) +add_subdirectory(qt) +add_subdirectory(ranges) +add_subdirectory(rlottie) +add_subdirectory(variant) add_subdirectory(xxhash) +add_subdirectory(zlib) diff --git a/external/auto_updates/CMakeLists.txt b/external/auto_updates/CMakeLists.txt index db67a92..15b5f8c 100644 --- a/external/auto_updates/CMakeLists.txt +++ b/external/auto_updates/CMakeLists.txt @@ -5,17 +5,18 @@ # https://github.com/desktop-app/legal/blob/master/LEGAL add_library(external_auto_updates INTERFACE IMPORTED GLOBAL) +add_library(desktop-app::external_auto_updates ALIAS external_auto_updates) if (WIN32) add_subdirectory(lzma) target_link_libraries(external_auto_updates INTERFACE - external_lzma + desktop-app::external_lzma ) else() add_subdirectory(xz) target_link_libraries(external_auto_updates INTERFACE - external_xz + desktop-app::external_xz ) endif() diff --git a/external/auto_updates/lzma/CMakeLists.txt b/external/auto_updates/lzma/CMakeLists.txt index cc68496..106522a 100644 --- a/external/auto_updates/lzma/CMakeLists.txt +++ b/external/auto_updates/lzma/CMakeLists.txt @@ -5,6 +5,7 @@ # https://github.com/desktop-app/legal/blob/master/LEGAL add_library(external_lzma INTERFACE IMPORTED GLOBAL) +add_library(desktop-app::external_lzma ALIAS external_lzma) target_include_directories(external_lzma SYSTEM INTERFACE diff --git a/external/crash_reports/CMakeLists.txt b/external/crash_reports/CMakeLists.txt index 18e75b5..8bd76a1 100644 --- a/external/crash_reports/CMakeLists.txt +++ b/external/crash_reports/CMakeLists.txt @@ -5,16 +5,17 @@ # https://github.com/desktop-app/legal/blob/master/LEGAL add_library(external_crash_reports INTERFACE IMPORTED GLOBAL) +add_library(desktop-app::external_crash_reports ALIAS external_crash_reports) if (WIN32) add_subdirectory(breakpad) target_link_libraries(external_crash_reports INTERFACE - external_breakpad + desktop-app::external_breakpad ) else() target_link_libraries(external_crash_reports INTERFACE - external_crashpad + desktop-app::external_crashpad ) endif() diff --git a/external/crash_reports/breakpad/CMakeLists.txt b/external/crash_reports/breakpad/CMakeLists.txt index a09c460..0cc80ee 100644 --- a/external/crash_reports/breakpad/CMakeLists.txt +++ b/external/crash_reports/breakpad/CMakeLists.txt @@ -5,6 +5,7 @@ # https://github.com/desktop-app/legal/blob/master/LEGAL add_library(external_breakpad INTERFACE IMPORTED GLOBAL) +add_library(desktop-app::external_breakpad ALIAS external_breakpad) target_include_directories(external_breakpad SYSTEM INTERFACE diff --git a/external/gsl/CMakeLists.txt b/external/gsl/CMakeLists.txt index f505c32..c7a0883 100644 --- a/external/gsl/CMakeLists.txt +++ b/external/gsl/CMakeLists.txt @@ -5,6 +5,7 @@ # https://github.com/desktop-app/legal/blob/master/LEGAL add_library(external_gsl INTERFACE IMPORTED GLOBAL) +add_library(desktop-app::external_gsl ALIAS external_gsl) target_include_directories(external_gsl SYSTEM INTERFACE diff --git a/external/lz4/CMakeLists.txt b/external/lz4/CMakeLists.txt index 38330d7..49821af 100644 --- a/external/lz4/CMakeLists.txt +++ b/external/lz4/CMakeLists.txt @@ -5,6 +5,7 @@ # https://github.com/desktop-app/legal/blob/master/LEGAL add_library(external_lz4 OBJECT) +add_library(desktop-app::external_lz4 ALIAS external_lz4) init_target(external_lz4 "(external)") set(lz4_loc ${third_party_loc}/lz4/lib) diff --git a/external/openal/CMakeLists.txt b/external/openal/CMakeLists.txt index 4cf15a6..2259b41 100644 --- a/external/openal/CMakeLists.txt +++ b/external/openal/CMakeLists.txt @@ -5,6 +5,7 @@ # https://github.com/desktop-app/legal/blob/master/LEGAL add_library(external_openal INTERFACE IMPORTED GLOBAL) +add_library(desktop-app::external_openal ALIAS external_openal) target_include_directories(external_openal SYSTEM INTERFACE diff --git a/external/openssl/CMakeLists.txt b/external/openssl/CMakeLists.txt index 182c3d1..f7d8725 100644 --- a/external/openssl/CMakeLists.txt +++ b/external/openssl/CMakeLists.txt @@ -5,6 +5,7 @@ # https://github.com/desktop-app/legal/blob/master/LEGAL add_library(external_openssl INTERFACE IMPORTED GLOBAL) +add_library(desktop-app::external_openssl ALIAS external_openssl) target_include_directories(external_openssl SYSTEM INTERFACE diff --git a/external/opus/CMakeLists.txt b/external/opus/CMakeLists.txt index e093508..6d347a0 100644 --- a/external/opus/CMakeLists.txt +++ b/external/opus/CMakeLists.txt @@ -5,6 +5,7 @@ # https://github.com/desktop-app/legal/blob/master/LEGAL add_library(external_opus INTERFACE IMPORTED GLOBAL) +add_library(desktop-app::external_opus ALIAS external_opus) target_include_directories(external_opus SYSTEM INTERFACE diff --git a/external/qt/CMakeLists.txt b/external/qt/CMakeLists.txt index 236b273..4f2cd45 100644 --- a/external/qt/CMakeLists.txt +++ b/external/qt/CMakeLists.txt @@ -5,6 +5,7 @@ # https://github.com/desktop-app/legal/blob/master/LEGAL add_library(external_qt INTERFACE IMPORTED GLOBAL) +add_library(desktop-app::external_qt ALIAS external_qt) if (LINUX) if (CMAKE_SIZEOF_VOID_P EQUAL 8) diff --git a/external/ranges/CMakeLists.txt b/external/ranges/CMakeLists.txt index 0c9d36d..4c75ecb 100644 --- a/external/ranges/CMakeLists.txt +++ b/external/ranges/CMakeLists.txt @@ -5,6 +5,7 @@ # https://github.com/desktop-app/legal/blob/master/LEGAL add_library(external_ranges INTERFACE IMPORTED GLOBAL) +add_library(desktop-app::external_ranges ALIAS external_ranges) target_include_directories(external_ranges SYSTEM INTERFACE diff --git a/external/rlottie/CMakeLists.txt b/external/rlottie/CMakeLists.txt new file mode 100644 index 0000000..038c5da --- /dev/null +++ b/external/rlottie/CMakeLists.txt @@ -0,0 +1,119 @@ +# This file is part of Desktop App Toolkit, +# a set of libraries for developing nice desktop applications. +# +# For license and copyright information please follow this link: +# https://github.com/desktop-app/legal/blob/master/LEGAL + +add_library(external_rlottie OBJECT) +add_library(desktop-app::external_rlottie ALIAS external_rlottie) +init_target(external_rlottie "(external)") + +get_filename_component(src_loc . REALPATH) +set(rlottie_loc ${third_party_loc}/rlottie) + +target_sources(external_rlottie +PRIVATE + ${src_loc}/config/config.h + + ${rlottie_loc}/inc/rlottie.h + ${rlottie_loc}/inc/rlottie_capi.h + ${rlottie_loc}/inc/rlottiecommon.h + + ${rlottie_loc}/src/lottie/lottieanimation.cpp + ${rlottie_loc}/src/lottie/lottieitem.cpp + ${rlottie_loc}/src/lottie/lottieitem.h + ${rlottie_loc}/src/lottie/lottiekeypath.cpp + ${rlottie_loc}/src/lottie/lottiekeypath.h + ${rlottie_loc}/src/lottie/lottieloader.cpp + ${rlottie_loc}/src/lottie/lottieloader.h + ${rlottie_loc}/src/lottie/lottiemodel.cpp + ${rlottie_loc}/src/lottie/lottiemodel.h + ${rlottie_loc}/src/lottie/lottieparser.cpp + ${rlottie_loc}/src/lottie/lottieparser.h + ${rlottie_loc}/src/lottie/lottieproxymodel.cpp + ${rlottie_loc}/src/lottie/lottieproxymodel.h + + ${rlottie_loc}/src/vector/freetype/v_ft_math.cpp + ${rlottie_loc}/src/vector/freetype/v_ft_math.h + ${rlottie_loc}/src/vector/freetype/v_ft_raster.cpp + ${rlottie_loc}/src/vector/freetype/v_ft_raster.h + ${rlottie_loc}/src/vector/freetype/v_ft_stroker.cpp + ${rlottie_loc}/src/vector/freetype/v_ft_stroker.h + ${rlottie_loc}/src/vector/freetype/v_ft_types.h + + # ${rlottie_loc}/src/vector/pixman/pixman-arm-neon-asm.h + # ${rlottie_loc}/src/vector/pixman/pixman-arm-neon-asm.S + ${rlottie_loc}/src/vector/pixman/vregion.cpp + ${rlottie_loc}/src/vector/pixman/vregion.h + + ${rlottie_loc}/src/vector/vbezier.cpp + ${rlottie_loc}/src/vector/vbezier.h + ${rlottie_loc}/src/vector/vbitmap.cpp + ${rlottie_loc}/src/vector/vbitmap.h + ${rlottie_loc}/src/vector/vbrush.cpp + ${rlottie_loc}/src/vector/vbrush.h + ${rlottie_loc}/src/vector/vcompositionfunctions.cpp + ${rlottie_loc}/src/vector/vcowptr.h + ${rlottie_loc}/src/vector/vdasher.cpp + ${rlottie_loc}/src/vector/vdasher.h + ${rlottie_loc}/src/vector/vdebug.cpp + ${rlottie_loc}/src/vector/vdebug.h + ${rlottie_loc}/src/vector/vdrawable.cpp + ${rlottie_loc}/src/vector/vdrawable.h + ${rlottie_loc}/src/vector/vdrawhelper.cpp + ${rlottie_loc}/src/vector/vdrawhelper.h + ${rlottie_loc}/src/vector/vdrawhelper_neon.cpp + ${rlottie_loc}/src/vector/vdrawhelper_sse2.cpp + ${rlottie_loc}/src/vector/velapsedtimer.cpp + ${rlottie_loc}/src/vector/velapsedtimer.h + ${rlottie_loc}/src/vector/vglobal.h + ${rlottie_loc}/src/vector/vimageloader.cpp + ${rlottie_loc}/src/vector/vimageloader.h + ${rlottie_loc}/src/vector/vinterpolator.cpp + ${rlottie_loc}/src/vector/vinterpolator.h + ${rlottie_loc}/src/vector/vline.h + ${rlottie_loc}/src/vector/vmatrix.cpp + ${rlottie_loc}/src/vector/vmatrix.h + ${rlottie_loc}/src/vector/vpainter.cpp + ${rlottie_loc}/src/vector/vpainter.h + ${rlottie_loc}/src/vector/vpath.cpp + ${rlottie_loc}/src/vector/vpath.h + ${rlottie_loc}/src/vector/vpathmesure.cpp + ${rlottie_loc}/src/vector/vpathmesure.h + ${rlottie_loc}/src/vector/vpoint.h + ${rlottie_loc}/src/vector/vraster.cpp + ${rlottie_loc}/src/vector/vraster.h + ${rlottie_loc}/src/vector/vrect.cpp + ${rlottie_loc}/src/vector/vrect.h + ${rlottie_loc}/src/vector/vrle.cpp + ${rlottie_loc}/src/vector/vrle.h + ${rlottie_loc}/src/vector/vstackallocator.h + ${rlottie_loc}/src/vector/vtaskqueue.h +) + +target_compile_definitions(external_rlottie +PUBLIC + LOT_BUILD +PRIVATE + _USE_MATH_DEFINES + "RAPIDJSON_ASSERT=(void)" +) + +target_include_directories(external_rlottie +PUBLIC + ${rlottie_loc}/inc +PRIVATE + ${src_loc}/config + ${rlottie_loc}/src/lottie + ${rlottie_loc}/src/vector + ${rlottie_loc}/src/vector/pixman + ${rlottie_loc}/src/vector/freetype +) + +if (WIN32) + target_compile_options(external_rlottie + PRIVATE + /w44244 # 'initializing': conversion from 'double' to 'float' + /w44251 # needs to have dll-interface to be used by clients of class + ) +endif() diff --git a/external/rlottie/config/config.h b/external/rlottie/config/config.h new file mode 100644 index 0000000..ea8e097 --- /dev/null +++ b/external/rlottie/config/config.h @@ -0,0 +1,25 @@ +// This file is part of Desktop App Toolkit, +// a set of libraries for developing nice desktop applications. +// +// For license and copyright information please follow this link: +// https://github.com/desktop-app/legal/blob/master/LEGAL +// +#ifndef CONFIG_H +#define CONFIG_H + +// enable threading +#define LOTTIE_THREAD_SUPPORT + +//enable logging +//#define LOTTIE_LOGGING_SUPPORT + +//enable module building of image loader +//#define LOTTIE_IMAGE_MODULE_SUPPORT + +//enable lottie model caching +//#define LOTTIE_CACHE_SUPPORT + +// disable image loader +#define LOTTIE_IMAGE_MODULE_DISABLED + +#endif // CONFIG_H diff --git a/external/variant/CMakeLists.txt b/external/variant/CMakeLists.txt index 524adba..5b5beef 100644 --- a/external/variant/CMakeLists.txt +++ b/external/variant/CMakeLists.txt @@ -5,6 +5,7 @@ # https://github.com/desktop-app/legal/blob/master/LEGAL add_library(external_variant INTERFACE IMPORTED GLOBAL) +add_library(desktop-app::external_variant ALIAS external_variant) target_include_directories(external_variant SYSTEM INTERFACE diff --git a/external/xxhash/CMakeLists.txt b/external/xxhash/CMakeLists.txt index bf962a6..ba98eda 100644 --- a/external/xxhash/CMakeLists.txt +++ b/external/xxhash/CMakeLists.txt @@ -5,6 +5,7 @@ # https://github.com/desktop-app/legal/blob/master/LEGAL add_library(external_xxhash INTERFACE IMPORTED GLOBAL) +add_library(desktop-app::external_xxhash ALIAS external_xxhash) target_include_directories(external_xxhash SYSTEM INTERFACE diff --git a/external/zlib/CMakeLists.txt b/external/zlib/CMakeLists.txt index 1059adc..0634cf8 100644 --- a/external/zlib/CMakeLists.txt +++ b/external/zlib/CMakeLists.txt @@ -5,6 +5,7 @@ # https://github.com/desktop-app/legal/blob/master/LEGAL add_library(external_zlib INTERFACE IMPORTED GLOBAL) +add_library(desktop-app::external_zlib ALIAS external_zlib) target_include_directories(external_zlib SYSTEM INTERFACE diff --git a/init_target.cmake b/init_target.cmake index facf7d5..f73a06b 100644 --- a/init_target.cmake +++ b/init_target.cmake @@ -13,9 +13,14 @@ endfunction() function(init_target target_name) # init_target(my_target folder_name) init_target_folder(${target_name} "${ARGV1}") if (WIN32) - set_property(TARGET ${target_name} PROPERTY + set_target_properties(${target_name} PROPERTIES MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") endif() - target_link_libraries(${target_name} PUBLIC common_options) + target_link_libraries(${target_name} PUBLIC desktop-app::common_options) + set_target_properties(${target_name} PROPERTIES + INTERPROCEDURAL_OPTIMIZATION_RELEASE True + INTERPROCEDURAL_OPTIMIZATION_RELWITHDEBINFO True + INTERPROCEDURAL_OPTIMIZATION_MINSIZEREL True + ) endfunction() diff --git a/options.cmake b/options.cmake index 4f5fdfc..63ce374 100644 --- a/options.cmake +++ b/options.cmake @@ -5,6 +5,7 @@ # https://github.com/desktop-app/legal/blob/master/LEGAL add_library(common_options INTERFACE) +add_library(desktop-app::common_options ALIAS common_options) target_compile_features(common_options INTERFACE diff --git a/options_win.cmake b/options_win.cmake index 9defb46..d07126d 100644 --- a/options_win.cmake +++ b/options_win.cmake @@ -29,7 +29,7 @@ INTERFACE target_link_options(common_options INTERFACE - /NODEFAULTLIB:LIBCMT + $<$:/NODEFAULTLIB:LIBCMT> ) target_link_libraries(common_options