2021-04-13 21:41:22 +00:00
|
|
|
# Aseprite
|
2024-04-10 15:00:17 +00:00
|
|
|
# Copyright (C) 2021-2024 Igara Studio S.A.
|
2018-03-26 17:08:08 +00:00
|
|
|
# Copyright (C) 2001-2018 David Capello
|
2010-08-11 00:49:32 +00:00
|
|
|
|
2010-09-30 20:04:32 +00:00
|
|
|
include_directories(.)
|
2010-08-11 00:49:32 +00:00
|
|
|
|
2010-08-25 19:18:46 +00:00
|
|
|
if(MSVC)
|
|
|
|
add_definitions(-D_CRT_SECURE_NO_WARNINGS)
|
|
|
|
endif(MSVC)
|
|
|
|
|
2010-09-30 20:04:32 +00:00
|
|
|
if(NOT USE_SHARED_JPEGLIB)
|
|
|
|
add_subdirectory(jpeg)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
if(NOT USE_SHARED_ZLIB)
|
2016-03-31 20:48:54 +00:00
|
|
|
set(SKIP_INSTALL_ALL on)
|
2016-04-01 12:50:09 +00:00
|
|
|
# Don't build zlib tests
|
2024-04-09 17:43:43 +00:00
|
|
|
set(ZLIB_BUILD_EXAMPLES OFF CACHE BOOL "Enable Zlib Examples")
|
2010-09-30 20:04:32 +00:00
|
|
|
add_subdirectory(zlib)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
if(NOT USE_SHARED_LIBPNG)
|
2016-04-01 12:17:40 +00:00
|
|
|
set(SKIP_INSTALL_ALL ON)
|
|
|
|
# We only need the static version of libpng
|
|
|
|
set(PNG_SHARED OFF CACHE BOOL "Build shared lib")
|
|
|
|
set(PNG_STATIC ON CACHE BOOL "Build static lib")
|
|
|
|
set(PNG_TESTS OFF CACHE BOOL "Build libpng tests")
|
2010-09-30 20:04:32 +00:00
|
|
|
add_subdirectory(libpng)
|
|
|
|
endif()
|
|
|
|
|
2012-03-15 03:17:49 +00:00
|
|
|
if(NOT USE_SHARED_GIFLIB)
|
2017-10-02 15:24:56 +00:00
|
|
|
set(GIFLIB_UTILS OFF CACHE BOOL "Build giflib utils")
|
2012-03-15 03:17:49 +00:00
|
|
|
add_subdirectory(giflib)
|
|
|
|
endif()
|
|
|
|
|
2022-07-20 17:11:00 +00:00
|
|
|
if(ENABLE_WEBP AND NOT LAF_BACKEND STREQUAL "skia")
|
2020-06-08 15:24:32 +00:00
|
|
|
set(WEBP_BUILD_EXTRAS OFF CACHE BOOL "Build extras.")
|
2021-11-09 14:07:18 +00:00
|
|
|
set(WEBP_BUILD_ANIM_UTILS OFF CACHE BOOL "Build animation utilities.")
|
|
|
|
set(WEBP_BUILD_CWEBP OFF CACHE BOOL "Build the cwebp command line tool.")
|
|
|
|
set(WEBP_BUILD_DWEBP OFF CACHE BOOL "Build the dwebp command line tool.")
|
|
|
|
set(WEBP_BUILD_GIF2WEBP OFF CACHE BOOL "Build the gif2webp conversion tool.")
|
|
|
|
set(WEBP_BUILD_IMG2WEBP OFF CACHE BOOL "Build the img2webp animation tool.")
|
|
|
|
set(WEBP_BUILD_VWEBP OFF CACHE BOOL "Build the vwebp viewer tool.")
|
|
|
|
set(WEBP_BUILD_WEBPINFO OFF CACHE BOOL "Build the webpinfo command line tool.")
|
|
|
|
set(WEBP_BUILD_WEBPMUX OFF CACHE BOOL "Build the webpmux command line tool.")
|
|
|
|
|
2018-03-26 17:08:08 +00:00
|
|
|
add_subdirectory(libwebp)
|
2021-10-12 23:11:47 +00:00
|
|
|
|
|
|
|
if(NOT USE_SHARED_LIBPNG)
|
|
|
|
add_dependencies(webp ${PNG_LIBRARY})
|
|
|
|
add_dependencies(webpdemux ${PNG_LIBRARY})
|
|
|
|
add_dependencies(libwebpmux ${PNG_LIBRARY})
|
|
|
|
endif()
|
2018-03-26 17:08:08 +00:00
|
|
|
endif()
|
|
|
|
|
2012-03-19 17:04:24 +00:00
|
|
|
if(NOT USE_SHARED_TINYXML)
|
2024-05-08 12:59:21 +00:00
|
|
|
set(tinyxml2_BUILD_TESTING OFF CACHE BOOL "Build tests for tinyxml2")
|
2024-04-22 21:28:03 +00:00
|
|
|
add_subdirectory(tinyxml2)
|
2012-03-19 17:04:24 +00:00
|
|
|
endif()
|
|
|
|
|
2024-10-28 21:11:09 +00:00
|
|
|
set(BUILD_SHARED_LIBS OFF CACHE BOOL "build as shared library")
|
|
|
|
set(BUILD_STATIC_LIBS ON CACHE BOOL "build as static library")
|
|
|
|
set(LINK_CRT_STATIC_LIBS OFF CACHE BOOL "link CRT static library")
|
|
|
|
set(BUILD_DEMO OFF CACHE BOOL "build demo binary")
|
|
|
|
add_subdirectory(TinyEXIF)
|
|
|
|
|
2018-08-24 21:24:05 +00:00
|
|
|
if(REQUIRE_CURL AND NOT USE_SHARED_CURL)
|
2015-03-10 16:50:12 +00:00
|
|
|
set(BUILD_RELEASE_DEBUG_DIRS ON BOOL)
|
2021-10-06 20:49:17 +00:00
|
|
|
set(BUILD_CURL_EXE OFF CACHE BOOL "Set to ON to build curl executable.")
|
2024-10-11 17:59:37 +00:00
|
|
|
set(CURL_DISABLE_TESTS ON CACHE BOOL "Disable Curl tests")
|
2021-10-25 21:07:19 +00:00
|
|
|
|
2011-07-28 00:26:22 +00:00
|
|
|
add_subdirectory(curl)
|
|
|
|
endif()
|
2012-03-15 03:17:49 +00:00
|
|
|
|
2014-10-26 01:22:58 +00:00
|
|
|
if(NOT USE_SHARED_PIXMAN)
|
|
|
|
add_subdirectory(pixman-cmake)
|
|
|
|
endif()
|
2014-10-30 04:06:27 +00:00
|
|
|
|
2021-12-01 21:14:18 +00:00
|
|
|
if(NOT USE_SHARED_FREETYPE AND NOT LAF_BACKEND STREQUAL "skia")
|
2016-03-31 20:48:54 +00:00
|
|
|
set(SKIP_INSTALL_ALL on)
|
2018-04-03 16:01:19 +00:00
|
|
|
set(WITH_BZip2 OFF CACHE BOOL "")
|
2016-03-31 20:48:54 +00:00
|
|
|
|
2015-09-22 22:27:44 +00:00
|
|
|
add_subdirectory(freetype2)
|
2016-04-04 15:24:40 +00:00
|
|
|
|
2022-05-09 18:40:34 +00:00
|
|
|
target_compile_definitions(freetype PUBLIC
|
|
|
|
FT_CONFIG_OPTION_SYSTEM_ZLIB)
|
2022-05-09 16:06:41 +00:00
|
|
|
if(UNIX)
|
|
|
|
target_include_directories(freetype BEFORE PUBLIC
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/freetype2/include)
|
|
|
|
endif()
|
|
|
|
|
2024-09-19 18:16:22 +00:00
|
|
|
if(HARFBUZZ_FOUND)
|
|
|
|
target_link_libraries(freetype PRIVATE ${HARFBUZZ_LIBRARIES})
|
|
|
|
target_include_directories(freetype PRIVATE ${HARFBUZZ_INCLUDE_DIRS})
|
|
|
|
endif()
|
|
|
|
|
2016-04-04 15:24:40 +00:00
|
|
|
if(NOT USE_SHARED_LIBPNG)
|
2018-04-03 15:43:26 +00:00
|
|
|
add_dependencies(freetype ${PNG_LIBRARIES})
|
2016-04-04 15:24:40 +00:00
|
|
|
endif()
|
2015-09-22 22:27:44 +00:00
|
|
|
endif()
|
|
|
|
|
2021-11-17 00:20:00 +00:00
|
|
|
if(NOT USE_SHARED_HARFBUZZ AND NOT LAF_BACKEND STREQUAL "skia")
|
2018-04-03 14:11:10 +00:00
|
|
|
if(NOT USE_SHARED_FREETYPE)
|
|
|
|
set(ENV{FREETYPE_DIR} ${FREETYPE_DIR})
|
|
|
|
endif()
|
2018-03-26 19:14:38 +00:00
|
|
|
set(HB_HAVE_FREETYPE ON CACHE BOOL "Enable freetype interop helpers")
|
|
|
|
set(HB_HAVE_GRAPHITE2 OFF CACHE BOOL "Enable Graphite2 complementary shaper")
|
|
|
|
set(HB_BUILTIN_UCDN ON CACHE BOOL "Use HarfBuzz provided UCDN")
|
|
|
|
set(HB_HAVE_GLIB OFF CACHE BOOL "Enable glib unicode functions")
|
|
|
|
set(HB_HAVE_ICU OFF CACHE BOOL "Enable icu unicode functions")
|
|
|
|
set(HB_HAVE_CORETEXT OFF CACHE BOOL "Enable CoreText shaper backend on macOS")
|
|
|
|
set(HB_HAVE_UNISCRIBE OFF CACHE BOOL "Enable Uniscribe shaper backend on Windows")
|
|
|
|
set(HB_HAVE_DIRECTWRITE OFF CACHE BOOL "Enable DirectWrite shaper backend on Windows")
|
|
|
|
add_subdirectory(harfbuzz)
|
2017-06-07 20:49:51 +00:00
|
|
|
endif()
|
|
|
|
|
2014-10-17 00:27:25 +00:00
|
|
|
add_subdirectory(simpleini)
|
2017-10-09 17:43:01 +00:00
|
|
|
add_subdirectory(fmt)
|
2016-12-06 19:03:51 +00:00
|
|
|
|
|
|
|
# Add cmark without tests
|
2017-01-28 11:18:41 +00:00
|
|
|
if(NOT USE_SHARED_CMARK)
|
2021-06-17 13:44:22 +00:00
|
|
|
set(CMARK_PROGRAM OFF CACHE BOOL "Build cmark executable")
|
2017-01-28 11:18:41 +00:00
|
|
|
set(CMARK_TESTS OFF CACHE BOOL "Build cmark tests and enable testing")
|
|
|
|
add_subdirectory(cmark)
|
|
|
|
endif()
|
2017-06-10 18:02:39 +00:00
|
|
|
|
|
|
|
# JSON
|
2017-06-14 22:50:44 +00:00
|
|
|
add_subdirectory(json11)
|
2017-06-12 15:38:53 +00:00
|
|
|
|
|
|
|
# libarchive
|
2024-04-09 17:43:43 +00:00
|
|
|
set(HAVE_WCSCPY 1)
|
|
|
|
set(HAVE_WCSLEN 1)
|
|
|
|
|
2019-10-24 00:10:19 +00:00
|
|
|
set(ENABLE_WERROR OFF CACHE BOOL "Treat warnings as errors - default is ON for Debug, OFF otherwise.")
|
2017-06-12 16:20:32 +00:00
|
|
|
set(ENABLE_TEST OFF CACHE BOOL "Enable unit and regression tests")
|
|
|
|
set(ENABLE_COVERAGE OFF CACHE BOOL "Enable code coverage (GCC only, automatically sets ENABLE_TEST to ON)")
|
2021-11-09 14:07:18 +00:00
|
|
|
set(ENABLE_LZ4 OFF CACHE BOOL "Enable the use of the system LZ4 library if found")
|
|
|
|
set(ENABLE_LZO OFF CACHE BOOL "Enable the use of the system LZO library if found")
|
2017-06-24 16:44:25 +00:00
|
|
|
set(ENABLE_LZMA OFF CACHE BOOL "Enable the use of the system LZMA library if found")
|
2021-11-09 14:07:18 +00:00
|
|
|
set(ENABLE_ZSTD OFF CACHE BOOL "Enable the use of the system zstd library if found")
|
2017-06-28 20:24:17 +00:00
|
|
|
set(ENABLE_CNG OFF CACHE BOOL "Enable the use of CNG(Crypto Next Generation)")
|
2018-04-03 16:01:19 +00:00
|
|
|
set(ENABLE_BZip2 OFF CACHE BOOL "Enable the use of the system BZip2 library if found")
|
2022-05-31 19:51:00 +00:00
|
|
|
set(ENABLE_EXPAT OFF CACHE BOOL "Enable the use of the system EXPAT library if found")
|
2018-04-03 16:01:32 +00:00
|
|
|
set(ENABLE_LIBXML2 OFF CACHE BOOL "Enable the use of the system libxml2 library if found")
|
2021-06-17 13:45:36 +00:00
|
|
|
set(ENABLE_CAT OFF CACHE BOOL "Enable cat building")
|
|
|
|
set(ENABLE_TAR OFF CACHE BOOL "Enable tar building")
|
|
|
|
set(ENABLE_CPIO OFF CACHE BOOL "Enable cpio building")
|
2022-04-22 11:46:57 +00:00
|
|
|
set(ENABLE_LIBB2 OFF CACHE BOOL "Enable the use of the system LIBB2 library if found")
|
2017-06-12 15:38:53 +00:00
|
|
|
add_subdirectory(libarchive)
|
|
|
|
target_include_directories(archive_static INTERFACE
|
|
|
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/libarchive/libarchive>)
|
2017-07-18 20:03:12 +00:00
|
|
|
|
|
|
|
# benchmark
|
|
|
|
if(ENABLE_BENCHMARKS)
|
2018-04-03 15:40:38 +00:00
|
|
|
set(BENCHMARK_ENABLE_TESTING OFF CACHE BOOL "Enable testing of the benchmark library.")
|
2017-07-18 20:03:12 +00:00
|
|
|
add_subdirectory(benchmark)
|
|
|
|
endif()
|
2017-08-11 20:22:28 +00:00
|
|
|
|
2018-06-28 16:33:13 +00:00
|
|
|
# tinyexpr
|
|
|
|
add_library(tinyexpr tinyexpr/tinyexpr.c)
|
|
|
|
target_include_directories(tinyexpr PUBLIC tinyexpr)
|
2018-08-20 14:25:08 +00:00
|
|
|
|
2021-04-19 18:53:04 +00:00
|
|
|
# cityhash
|
|
|
|
add_subdirectory(cityhash)
|
|
|
|
|
2018-08-20 14:25:08 +00:00
|
|
|
# lua
|
2018-08-24 20:53:08 +00:00
|
|
|
if(ENABLE_SCRIPTING)
|
|
|
|
add_library(lua
|
|
|
|
lua/lapi.c
|
|
|
|
lua/lcode.c
|
|
|
|
lua/lctype.c
|
|
|
|
lua/ldebug.c
|
|
|
|
lua/ldo.c
|
|
|
|
lua/ldump.c
|
|
|
|
lua/lfunc.c
|
|
|
|
lua/lgc.c
|
|
|
|
lua/llex.c
|
|
|
|
lua/lmem.c
|
|
|
|
lua/lobject.c
|
|
|
|
lua/lopcodes.c
|
|
|
|
lua/lparser.c
|
|
|
|
lua/lstate.c
|
|
|
|
lua/lstring.c
|
|
|
|
lua/ltable.c
|
|
|
|
lua/ltm.c
|
|
|
|
lua/lundump.c
|
|
|
|
lua/lvm.c
|
|
|
|
lua/lzio.c
|
|
|
|
lua/ltests.c)
|
|
|
|
add_library(lauxlib lua/lauxlib.c)
|
|
|
|
add_library(lualib
|
|
|
|
lua/lbaselib.c
|
|
|
|
lua/lcorolib.c
|
|
|
|
lua/ldblib.c
|
|
|
|
lua/linit.c
|
|
|
|
lua/liolib.c
|
|
|
|
lua/lmathlib.c
|
|
|
|
lua/loadlib.c
|
|
|
|
lua/loslib.c
|
|
|
|
lua/lstrlib.c
|
|
|
|
lua/ltablib.c
|
|
|
|
lua/lutf8lib.c)
|
2024-04-10 15:00:17 +00:00
|
|
|
|
|
|
|
if(WIN32)
|
2024-04-22 01:43:24 +00:00
|
|
|
# LUA_USE_WINDOWS is defined in luaconf.h when we compile with _WIN32
|
|
|
|
#target_compile_definitions(lua PUBLIC LUA_USE_WINDOWS=1)
|
2024-04-10 15:00:17 +00:00
|
|
|
elseif(APPLE)
|
|
|
|
target_compile_definitions(lua PUBLIC LUA_USE_MACOSX=1)
|
|
|
|
elseif(UNIX)
|
|
|
|
target_compile_definitions(lua PUBLIC LUA_USE_LINUX=1)
|
|
|
|
endif()
|
|
|
|
|
2024-10-11 18:05:18 +00:00
|
|
|
# Compile Lua C files as C++ to control errors with exceptions and
|
|
|
|
# have stack unwinding (i.e. calling destructors correctly).
|
|
|
|
file(GLOB all_lua_source_files lua/*.c)
|
|
|
|
set_source_files_properties(${all_lua_source_files} PROPERTIES LANGUAGE CXX)
|
2024-04-22 14:13:10 +00:00
|
|
|
|
|
|
|
target_compile_definitions(lua PUBLIC LUA_FLOORN2I=F2Ifloor)
|
2021-06-17 13:59:13 +00:00
|
|
|
target_compile_definitions(lualib PRIVATE HAVE_SYSTEM)
|
2018-08-24 20:53:08 +00:00
|
|
|
target_include_directories(lua PUBLIC lua)
|
|
|
|
target_include_directories(lauxlib PUBLIC lua)
|
|
|
|
target_include_directories(lualib PUBLIC lua)
|
|
|
|
target_link_libraries(lauxlib lua)
|
2024-04-10 15:00:17 +00:00
|
|
|
target_link_libraries(lualib lua)
|
2021-09-30 06:13:43 +00:00
|
|
|
|
2021-10-03 05:40:29 +00:00
|
|
|
# ixwebsocket
|
|
|
|
if(ENABLE_WEBSOCKET)
|
2021-10-04 21:07:28 +00:00
|
|
|
set(IXWEBSOCKET_INSTALL OFF CACHE BOOL "Install IXWebSocket")
|
2021-10-03 05:40:29 +00:00
|
|
|
add_subdirectory(IXWebSocket)
|
|
|
|
target_include_directories(ixwebsocket PUBLIC)
|
|
|
|
endif()
|
|
|
|
|
2018-08-24 20:53:08 +00:00
|
|
|
endif()
|
2023-01-04 15:06:20 +00:00
|
|
|
|
|
|
|
# qoi
|
|
|
|
add_library(qoi INTERFACE)
|
|
|
|
target_include_directories(qoi INTERFACE qoi)
|