2013-12-03 22:31:36 +00:00
|
|
|
# Aseprite
|
2020-03-02 02:42:08 +00:00
|
|
|
# Copyright (C) 2019-2020 Igara Studio S.A.
|
2018-03-09 12:15:45 +00:00
|
|
|
# Copyright (C) 2001-2018 David Capello
|
2010-08-11 00:49:32 +00:00
|
|
|
|
2014-08-14 03:40:01 +00:00
|
|
|
######################################################################
|
|
|
|
# Compiler-specific flags
|
|
|
|
|
2018-03-13 12:56:23 +00:00
|
|
|
if(UNIX)
|
|
|
|
# All warnings except for switch cases with missing enum items
|
|
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-switch")
|
|
|
|
endif()
|
|
|
|
|
2010-08-25 20:11:28 +00:00
|
|
|
if(MSVC)
|
2015-10-06 00:19:11 +00:00
|
|
|
# As Skia is compiled with /GL flag (whole program optimization),
|
|
|
|
# the linker prefer a /LTCG parameter to improve link times.
|
2018-08-09 20:51:00 +00:00
|
|
|
if(LAF_OS_BACKEND STREQUAL "skia")
|
2015-10-06 00:19:11 +00:00
|
|
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /LTCG")
|
|
|
|
endif()
|
|
|
|
|
2015-03-05 17:37:16 +00:00
|
|
|
add_definitions(-D_SCL_SECURE_NO_WARNINGS)
|
2019-04-19 01:34:56 +00:00
|
|
|
add_definitions(-wd4267) # disable warnings about signed/unsigned comparison
|
|
|
|
else()
|
|
|
|
# disable warnings about signed/unsigned comparison
|
|
|
|
add_definitions(-Wno-sign-compare)
|
|
|
|
endif()
|
2010-08-25 20:11:28 +00:00
|
|
|
|
2018-08-24 21:24:05 +00:00
|
|
|
if(ENABLE_NEWS)
|
|
|
|
add_definitions(-DENABLE_NEWS)
|
|
|
|
endif()
|
|
|
|
|
2015-06-12 21:43:10 +00:00
|
|
|
if(ENABLE_UPDATER)
|
|
|
|
add_definitions(-DENABLE_UPDATER)
|
|
|
|
endif()
|
|
|
|
|
2016-11-01 15:47:48 +00:00
|
|
|
if(WIN32)
|
|
|
|
# Needed to include icons in win32 .rc file
|
|
|
|
include_directories(..)
|
|
|
|
endif()
|
2012-03-15 03:17:49 +00:00
|
|
|
|
2015-07-13 15:16:55 +00:00
|
|
|
######################################################################
|
|
|
|
# Custom Aseprite website (for testing server-side)
|
|
|
|
|
2014-06-03 00:31:44 +00:00
|
|
|
if(NOT "${CUSTOM_WEBSITE_URL}" STREQUAL "")
|
|
|
|
add_definitions(-DCUSTOM_WEBSITE_URL="${CUSTOM_WEBSITE_URL}")
|
|
|
|
endif()
|
|
|
|
|
2015-07-13 15:16:55 +00:00
|
|
|
######################################################################
|
2018-05-07 03:11:50 +00:00
|
|
|
# With static libcurl
|
2013-03-31 03:36:00 +00:00
|
|
|
|
2018-08-24 21:24:05 +00:00
|
|
|
if(REQUIRE_CURL AND NOT USE_SHARED_CURL AND CURL_STATICLIB)
|
2015-07-13 15:16:55 +00:00
|
|
|
add_definitions(-DCURL_STATICLIB)
|
2013-03-31 03:36:00 +00:00
|
|
|
endif()
|
|
|
|
|
2015-07-13 15:16:55 +00:00
|
|
|
######################################################################
|
2018-05-07 03:11:50 +00:00
|
|
|
# Special versions (full/trial, devmode, UI/CLI, etc.)
|
2015-07-13 15:16:55 +00:00
|
|
|
|
2014-04-10 03:33:28 +00:00
|
|
|
if(NOT ENABLE_TRIAL_MODE)
|
2018-05-07 03:11:50 +00:00
|
|
|
add_definitions(-DENABLE_SAVE)
|
2014-04-10 03:33:28 +00:00
|
|
|
else()
|
|
|
|
add_definitions(-DENABLE_TRIAL_MODE)
|
|
|
|
endif()
|
|
|
|
|
2018-03-13 12:50:53 +00:00
|
|
|
if(ENABLE_DEVMODE)
|
|
|
|
add_definitions(-DENABLE_DEVMODE)
|
|
|
|
endif()
|
|
|
|
|
2018-05-07 03:11:50 +00:00
|
|
|
if(ENABLE_UI)
|
|
|
|
add_definitions(-DENABLE_UI)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
if(ENABLE_UI AND NOT ENABLE_TRIAL_MODE)
|
|
|
|
set(ENABLE_DATA_RECOVERY on)
|
|
|
|
add_definitions(-DENABLE_DATA_RECOVERY)
|
|
|
|
else()
|
|
|
|
set(ENABLE_DATA_RECOVERY off)
|
|
|
|
endif()
|
|
|
|
|
2018-09-02 23:19:52 +00:00
|
|
|
if(ENABLE_SCRIPTING)
|
|
|
|
# Needed for "app" and "main"
|
|
|
|
add_definitions(-DENABLE_SCRIPTING)
|
|
|
|
endif()
|
|
|
|
|
2014-08-14 03:40:01 +00:00
|
|
|
######################################################################
|
2013-11-09 22:59:05 +00:00
|
|
|
# Aseprite Libraries (in preferred order to be built)
|
2010-09-23 23:28:16 +00:00
|
|
|
|
2016-06-28 20:22:23 +00:00
|
|
|
# Disable observable tests
|
|
|
|
set(OBSERVABLE_TESTS OFF CACHE BOOL "Compile observable tests")
|
|
|
|
add_subdirectory(observable)
|
|
|
|
include_directories(observable)
|
|
|
|
|
2018-05-28 17:14:34 +00:00
|
|
|
# Disable clip examples and tests
|
2016-08-01 13:20:26 +00:00
|
|
|
set(CLIP_EXAMPLES OFF CACHE BOOL "Compile clip examples")
|
2018-05-28 17:14:34 +00:00
|
|
|
set(CLIP_TESTS OFF CACHE BOOL "Compile clip tests")
|
2018-05-23 20:20:52 +00:00
|
|
|
set(CLIP_X11_PNG_LIBRARY "${PNG_LIBRARY}")
|
2016-08-01 13:20:26 +00:00
|
|
|
add_subdirectory(clip)
|
|
|
|
|
|
|
|
# Disable undo tests
|
|
|
|
set(UNDO_TESTS OFF CACHE BOOL "Compile undo tests")
|
|
|
|
add_subdirectory(undo)
|
|
|
|
|
2016-04-29 12:04:56 +00:00
|
|
|
add_subdirectory(cfg)
|
2014-03-12 22:25:09 +00:00
|
|
|
add_subdirectory(doc)
|
2011-06-12 13:50:30 +00:00
|
|
|
add_subdirectory(filters)
|
2014-09-21 14:51:24 +00:00
|
|
|
add_subdirectory(fixmath)
|
2016-02-29 11:32:10 +00:00
|
|
|
add_subdirectory(flic)
|
|
|
|
add_subdirectory(render)
|
2017-09-22 18:57:38 +00:00
|
|
|
add_subdirectory(dio)
|
2012-06-18 01:49:58 +00:00
|
|
|
add_subdirectory(ui)
|
2010-09-23 23:28:16 +00:00
|
|
|
|
2018-08-24 21:24:05 +00:00
|
|
|
if(REQUIRE_CURL)
|
|
|
|
add_subdirectory(net)
|
|
|
|
endif()
|
|
|
|
|
2018-08-24 21:06:22 +00:00
|
|
|
if(GEN_EXE)
|
|
|
|
add_executable(gen IMPORTED)
|
|
|
|
set_target_properties(gen PROPERTIES IMPORTED_LOCATION ${GEN_EXE})
|
|
|
|
set(GEN_DEP)
|
|
|
|
else()
|
|
|
|
add_subdirectory(gen)
|
|
|
|
set(GEN_EXE ${CMAKE_BINARY_DIR}/bin/gen)
|
|
|
|
set(GEN_DEP gen)
|
|
|
|
endif()
|
|
|
|
|
2015-02-12 13:55:58 +00:00
|
|
|
if(ENABLE_UPDATER)
|
|
|
|
add_subdirectory(updater)
|
|
|
|
endif()
|
|
|
|
|
2016-02-24 16:21:37 +00:00
|
|
|
if(ENABLE_STEAM)
|
|
|
|
add_subdirectory(steam)
|
|
|
|
endif()
|
|
|
|
|
2018-01-02 20:03:46 +00:00
|
|
|
if(WITH_DESKTOP_INTEGRATION)
|
|
|
|
add_subdirectory(desktop)
|
|
|
|
endif()
|
|
|
|
|
2013-11-09 22:59:05 +00:00
|
|
|
add_subdirectory(app)
|
|
|
|
|
2010-08-25 20:11:28 +00:00
|
|
|
######################################################################
|
2014-12-02 14:15:06 +00:00
|
|
|
# Copy data/ directory target
|
|
|
|
|
|
|
|
file(GLOB_RECURSE src_data_files
|
2018-08-24 21:20:08 +00:00
|
|
|
RELATIVE ${SOURCE_DATA_DIR}/ "${SOURCE_DATA_DIR}/*.*")
|
2014-12-02 14:15:06 +00:00
|
|
|
foreach(fn ${src_data_files})
|
|
|
|
add_custom_command(
|
|
|
|
OUTPUT ${CMAKE_BINARY_DIR}/bin/data/${fn}
|
2018-08-24 21:20:08 +00:00
|
|
|
COMMAND ${CMAKE_COMMAND} -E copy ${SOURCE_DATA_DIR}/${fn} ${CMAKE_BINARY_DIR}/bin/data/${fn}
|
|
|
|
MAIN_DEPENDENCY ${SOURCE_DATA_DIR}/${fn})
|
2014-12-02 14:15:06 +00:00
|
|
|
list(APPEND out_data_files ${CMAKE_BINARY_DIR}/bin/data/${fn})
|
|
|
|
endforeach()
|
|
|
|
|
2016-12-06 19:03:51 +00:00
|
|
|
add_custom_command(
|
2016-12-07 04:12:54 +00:00
|
|
|
OUTPUT ${CMAKE_BINARY_DIR}/bin/data/README.md
|
2018-08-24 21:20:08 +00:00
|
|
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/../README.md ${CMAKE_BINARY_DIR}/bin/data/README.md
|
|
|
|
MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/../README.md)
|
2016-12-07 04:12:54 +00:00
|
|
|
list(APPEND out_data_files ${CMAKE_BINARY_DIR}/bin/data/README.md)
|
|
|
|
|
|
|
|
add_custom_command(
|
|
|
|
OUTPUT ${CMAKE_BINARY_DIR}/bin/data/EULA.txt
|
2018-08-24 21:20:08 +00:00
|
|
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/../EULA.txt ${CMAKE_BINARY_DIR}/bin/data/EULA.txt
|
|
|
|
MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/../EULA.txt)
|
2016-12-07 04:12:54 +00:00
|
|
|
list(APPEND out_data_files ${CMAKE_BINARY_DIR}/bin/data/EULA.txt)
|
2016-12-06 19:03:51 +00:00
|
|
|
|
|
|
|
add_custom_command(
|
|
|
|
OUTPUT ${CMAKE_BINARY_DIR}/bin/data/docs/LICENSES.md
|
2018-08-24 21:20:08 +00:00
|
|
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/../docs/LICENSES.md ${CMAKE_BINARY_DIR}/bin/data/docs/LICENSES.md
|
|
|
|
MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/../docs/LICENSES.md)
|
2016-12-06 19:03:51 +00:00
|
|
|
list(APPEND out_data_files ${CMAKE_BINARY_DIR}/bin/data/docs/LICENSES.md)
|
|
|
|
|
2014-12-02 14:15:06 +00:00
|
|
|
add_custom_target(copy_data DEPENDS ${out_data_files})
|
|
|
|
|
|
|
|
######################################################################
|
|
|
|
# Aseprite application
|
2010-08-25 20:11:28 +00:00
|
|
|
|
2018-08-27 14:48:33 +00:00
|
|
|
if(ENABLE_ASEPRITE_EXE)
|
|
|
|
if(WIN32)
|
|
|
|
set(win32_resources
|
|
|
|
main/resources_win32.rc
|
|
|
|
main/settings.manifest)
|
|
|
|
endif()
|
2010-10-01 03:23:13 +00:00
|
|
|
|
2018-08-27 14:48:33 +00:00
|
|
|
add_executable(aseprite main/main.cpp ${win32_resources})
|
|
|
|
if(WIN32 AND ENABLE_UI)
|
|
|
|
set_target_properties(aseprite PROPERTIES WIN32_EXECUTABLE true)
|
|
|
|
endif()
|
2020-03-02 02:42:08 +00:00
|
|
|
set_target_properties(aseprite PROPERTIES LINK_FLAGS "${LAF_BACKEND_LINK_FLAGS}")
|
2018-08-27 14:48:33 +00:00
|
|
|
target_link_libraries(aseprite app-lib)
|
|
|
|
add_dependencies(aseprite copy_data)
|
2010-08-11 00:49:32 +00:00
|
|
|
|
2018-08-27 14:48:33 +00:00
|
|
|
if(LAF_OS_BACKEND_LINK_FLAGS)
|
|
|
|
set_target_properties(aseprite PROPERTIES LINK_FLAGS
|
|
|
|
${LAF_OS_BACKEND_LINK_FLAGS})
|
|
|
|
endif()
|
2016-07-06 18:19:14 +00:00
|
|
|
|
2018-08-27 14:48:33 +00:00
|
|
|
install(TARGETS aseprite
|
|
|
|
RUNTIME DESTINATION bin)
|
2010-10-13 00:19:19 +00:00
|
|
|
|
2018-08-27 14:48:33 +00:00
|
|
|
install(DIRECTORY ../data
|
|
|
|
DESTINATION share/aseprite)
|
|
|
|
endif()
|
2010-10-13 00:19:19 +00:00
|
|
|
|
2010-08-25 20:11:52 +00:00
|
|
|
######################################################################
|
2014-06-28 13:49:38 +00:00
|
|
|
# Tests
|
2010-08-25 20:11:52 +00:00
|
|
|
|
2016-03-29 10:06:59 +00:00
|
|
|
if(ENABLE_TESTS)
|
2016-03-29 22:02:18 +00:00
|
|
|
include(FindTests)
|
2016-03-29 10:06:59 +00:00
|
|
|
find_tests(doc doc-lib)
|
2019-06-04 15:26:03 +00:00
|
|
|
find_tests(doc/algorithm doc-lib)
|
2016-03-29 10:06:59 +00:00
|
|
|
find_tests(render render-lib)
|
|
|
|
find_tests(ui ui-lib)
|
2016-05-30 22:03:28 +00:00
|
|
|
find_tests(app/cli app-lib)
|
2016-03-29 10:06:59 +00:00
|
|
|
find_tests(app/file app-lib)
|
|
|
|
find_tests(app app-lib)
|
|
|
|
find_tests(. app-lib)
|
|
|
|
endif()
|
2017-07-18 20:03:12 +00:00
|
|
|
|
|
|
|
if(ENABLE_BENCHMARKS)
|
|
|
|
include(FindBenchmarks)
|
|
|
|
find_benchmarks(doc doc-lib)
|
2019-08-21 23:21:57 +00:00
|
|
|
find_benchmarks(doc/algorithm doc-lib)
|
2019-03-07 16:39:54 +00:00
|
|
|
find_benchmarks(render render-lib)
|
2017-07-18 20:03:12 +00:00
|
|
|
endif()
|