diff --git a/CMakeLists.txt b/CMakeLists.txt index 72502615e..f17893477 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -82,13 +82,18 @@ else() set(REQUIRE_CURL OFF) endif() -# Select libcurl's TLS backend according to target platform -if(REQUIRE_CURL AND ENABLE_DRM) - if(APPLE) - option(CMAKE_USE_SECTRANSP "enable Apple OS native SSL/TLS" ON) - endif() +# SSL/TLS support +if(REQUIRE_CURL AND NOT USE_SHARED_CURL) + # Disable OpenSSL (use native libraries only) + set(CMAKE_USE_OPENSSL OFF CACHE BOOL "Use OpenSSL code. Experimental") + set(CMAKE_USE_LIBSSH2 OFF CACHE BOOL "Use libSSH2") + if(WIN32) - set(CMAKE_USE_SCHANNEL "enable Windows native SSL/TLS" ON) + set(CMAKE_USE_SCHANNEL ON CACHE BOOL "enable Windows native SSL/TLS") + elseif(APPLE) + set(CMAKE_USE_SECTRANSP ON CACHE BOOL "enable Apple OS native SSL/TLS") + else() + # TODO Linux? endif() endif() diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 3b44e9e55..253a95961 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -28,14 +28,6 @@ else() add_definitions(-Wno-sign-compare) endif() -if(ENABLE_NEWS) - add_definitions(-DENABLE_NEWS) -endif() - -if(ENABLE_UPDATER) - add_definitions(-DENABLE_UPDATER) -endif() - if(WIN32) # Needed to include icons in win32 .rc file include_directories(..) @@ -48,45 +40,6 @@ if(REQUIRE_CURL AND NOT USE_SHARED_CURL AND CURL_STATICLIB) add_definitions(-DCURL_STATICLIB) endif() -###################################################################### -# Special versions (full/trial, devmode, UI/CLI, etc.) - -if(NOT ENABLE_TRIAL_MODE) - add_definitions(-DENABLE_SAVE) -else() - add_definitions(-DENABLE_TRIAL_MODE) -endif() - -if(ENABLE_DRM) - add_definitions(-DENABLE_DRM) - add_definitions(-DENABLE_SAVE) -endif() - -if(ENABLE_DEVMODE) - add_definitions(-DENABLE_DEVMODE) -endif() - -if(ENABLE_UI) - add_definitions(-DENABLE_UI) -endif() - -if(ENABLE_UI AND (NOT ENABLE_TRIAL_MODE OR ENABLE_DRM)) - set(ENABLE_DATA_RECOVERY on) - add_definitions(-DENABLE_DATA_RECOVERY) -else() - set(ENABLE_DATA_RECOVERY off) -endif() - -if(ENABLE_SCRIPTING) - # Needed for "app" and "main" - add_definitions(-DENABLE_SCRIPTING) -endif() - -if(ENABLE_WEBSOCKET) - # Needed for "app" and "main" - add_definitions(-DENABLE_WEBSOCKET) -endif() - ###################################################################### # Aseprite Libraries (in preferred order to be built) diff --git a/src/app/CMakeLists.txt b/src/app/CMakeLists.txt index 63b60a9ae..de7f9bf27 100644 --- a/src/app/CMakeLists.txt +++ b/src/app/CMakeLists.txt @@ -87,14 +87,6 @@ add_custom_command( DEPENDS ${GEN_DEP} ${widget_files} ${string_files} "${SOURCE_DATA_DIR}/gui.xml") list(APPEND generated_files ${output_fn}) -if(ENABLE_WEBP) - add_definitions(-DENABLE_WEBP) -endif() - -if(ENABLE_PSD) - add_definitions(-DENABLE_PSD) -endif() - # libarchive definitions add_definitions(-DLIBARCHIVE_STATIC) @@ -113,7 +105,21 @@ else() target_sources(app-lib PRIVATE font_path_unix.cpp) endif() +# Trial-version vs Full version (enable save command) +if(ENABLE_TRIAL_MODE) + target_compile_definitions(app-lib PUBLIC -DENABLE_TRIAL_MODE) +else() + target_compile_definitions(app-lib PUBLIC -DENABLE_SAVE) +endif() + +# Data recovery +if(ENABLE_UI AND (NOT ENABLE_TRIAL_MODE OR ENABLE_DRM)) + set(ENABLE_DATA_RECOVERY on) +else() + set(ENABLE_DATA_RECOVERY off) +endif() if(ENABLE_DATA_RECOVERY) + target_compile_definitions(app-lib PUBLIC -DENABLE_DATA_RECOVERY) target_sources(app-lib PRIVATE crash/backup_observer.cpp crash/data_recovery.cpp @@ -123,6 +129,7 @@ if(ENABLE_DATA_RECOVERY) ui/data_recovery_view.cpp) endif() +# File formats target_sources(app-lib PRIVATE file/ase_format.cpp file/bmp_format.cpp @@ -137,15 +144,32 @@ target_sources(app-lib PRIVATE file/svg_format.cpp file/tga_format.cpp) if(ENABLE_WEBP) + target_compile_definitions(app-lib PUBLIC -DENABLE_WEBP) target_sources(app-lib PRIVATE file/webp_format.cpp) endif() if(ENABLE_PSD) + target_link_libraries(app-lib psd) + target_compile_definitions(app-lib PUBLIC -DENABLE_PSD) target_sources(app-lib PRIVATE file/psd_format.cpp) endif() +# Extras +if(ENABLE_DEVMODE) + target_compile_definitions(app-lib PUBLIC -DENABLE_DEVMODE) +endif() + +# Enable "Check for updates" info +if(ENABLE_UPDATER) + target_compile_definitions(app-lib PUBLIC -DENABLE_UPDATER) +endif() + +# Scripting if(ENABLE_SCRIPTING) + target_link_libraries(app-lib lua lauxlib lualib) + target_compile_definitions(app-lib PUBLIC -DENABLE_SCRIPTING) + if(ENABLE_UI) target_sources(app-lib PRIVATE commands/cmd_developer_console.cpp @@ -153,10 +177,14 @@ if(ENABLE_SCRIPTING) commands/debugger.cpp ui/devconsole_view.cpp) endif() + if(ENABLE_WEBSOCKET) + target_link_libraries(app-lib ixwebsocket) + target_compile_definitions(app-lib PUBLIC -DENABLE_WEBSOCKET) target_sources(app-lib PRIVATE script/websocket_class.cpp) endif() + target_sources(app-lib PRIVATE commands/cmd_run_script.cpp script/app_command_object.cpp @@ -220,7 +248,9 @@ if(ENABLE_SCRIPTING) shell.cpp) endif() +# UI-only files if(ENABLE_UI) + target_compile_definitions(app-lib PUBLIC -DENABLE_UI) target_sources(app-lib PRIVATE app_brushes.cpp app_menus.cpp @@ -431,23 +461,23 @@ if(ENABLE_UI) ui_context.cpp widget_loader.cpp) if(ENABLE_NEWS) + target_compile_definitions(app-lib PUBLIC -DENABLE_NEWS) target_sources(app-lib PRIVATE res/http_loader.cpp ui/news_listbox.cpp) endif() if(ENABLE_DRM) + target_link_libraries(app-lib drm-lib) + target_compile_definitions(app-lib PUBLIC + -DENABLE_DRM + -DENABLE_SAVE) target_sources(app-lib PRIVATE ui/enter_license.cpp ui/aseprite_update.cpp) endif() endif() -if(ENABLE_SENTRY) - target_sources(app-lib PRIVATE sentry_wrapper.cpp) -else() - target_sources(app-lib PRIVATE send_crash.cpp) -endif() - +# Main app sources target_sources(app-lib PRIVATE active_site_handler.cpp app.cpp @@ -734,14 +764,6 @@ target_link_libraries(app-lib tinyexpr qoi) -if(ENABLE_PSD) - target_link_libraries(app-lib psd) -endif() - -if(ENABLE_DRM) - target_link_libraries(app-lib drm-lib) -endif() - # Directory where generated files by "gen" utility will stay. target_include_directories(app-lib PUBLIC ${CMAKE_CURRENT_BINARY_DIR}) @@ -749,14 +771,7 @@ if(REQUIRE_CURL) target_link_libraries(app-lib net-lib) endif() -if(ENABLE_SCRIPTING) - target_link_libraries(app-lib lua lauxlib lualib) - - if(ENABLE_WEBSOCKET) - target_link_libraries(app-lib ixwebsocket) - endif() -endif() - +# Enable loading Steam API if(ENABLE_STEAM) # We need the ENABLE_STEAM flag in main module too so AppOptions are # equal in both modules, app-lib and main (that's why this flag is @@ -765,6 +780,7 @@ if(ENABLE_STEAM) target_link_libraries(app-lib steam-lib) endif() +# Report crashes using Sentry if(ENABLE_SENTRY) target_compile_definitions(app-lib PUBLIC -DENABLE_SENTRY @@ -773,4 +789,7 @@ if(ENABLE_SENTRY) -DSENTRY_ENV="${SENTRY_ENV}") add_subdirectory(${SENTRY_DIR} sentry) target_link_libraries(app-lib sentry) + target_sources(app-lib PRIVATE sentry_wrapper.cpp) +else() + target_sources(app-lib PRIVATE send_crash.cpp) endif() diff --git a/src/dio/CMakeLists.txt b/src/dio/CMakeLists.txt index fab02fbaa..55cb24de5 100644 --- a/src/dio/CMakeLists.txt +++ b/src/dio/CMakeLists.txt @@ -1,5 +1,5 @@ # Aseprite Document IO Library -# Copyright (c) 2022-2023 Igara Studio S.A. +# Copyright (c) 2022-2024 Igara Studio S.A. # Copyright (c) 2016-2018 David Capello add_library(dio-lib @@ -10,6 +10,10 @@ add_library(dio-lib detect_format.cpp stdio.cpp) +if(ENABLE_DEVMODE) + target_compile_definitions(dio-lib PUBLIC -DENABLE_DEVMODE) +endif() + target_link_libraries(dio-lib ${ZLIB_LIBRARIES} fmt diff --git a/third_party/CMakeLists.txt b/third_party/CMakeLists.txt index 01030d2ee..67d132445 100644 --- a/third_party/CMakeLists.txt +++ b/third_party/CMakeLists.txt @@ -62,17 +62,6 @@ if(REQUIRE_CURL AND NOT USE_SHARED_CURL) set(BUILD_RELEASE_DEBUG_DIRS ON BOOL) set(BUILD_CURL_EXE OFF CACHE BOOL "Set to ON to build curl executable.") - # SSL/TLS support (use native libraries only) - set(CMAKE_USE_OPENSSL OFF CACHE BOOL "Use OpenSSL code. Experimental") - set(CMAKE_USE_LIBSSH2 OFF CACHE BOOL "Use libSSH2") - if(WIN32) - set(CMAKE_USE_SCHANNEL ON CACHE BOOL "enable Windows native SSL/TLS") - elseif(APPLE) - set(CMAKE_USE_SECTRANSP ON CACHE BOOL "enable Apple OS native SSL/TLS") - else() - # TODO Linux? - endif() - add_subdirectory(curl) endif()