| 
									
										
										
										
											2014-07-14 00:24:57 +08:00
										 |  |  | # Aseprite
 | 
					
						
							| 
									
										
										
										
											2016-02-17 05:52:15 +08:00
										 |  |  | # Copyright (C) 2001-2016  David Capello
 | 
					
						
							| 
									
										
										
										
											2012-01-06 06:45:03 +08:00
										 |  |  | #
 | 
					
						
							| 
									
										
										
										
											2010-10-17 04:02:12 +08:00
										 |  |  | # Parts of this file come from the Allegro 4.4 CMakeLists.txt
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # CMake setup
 | 
					
						
							|  |  |  | cmake_minimum_required(VERSION 2.6 FATAL_ERROR)
 | 
					
						
							| 
									
										
										
										
											2015-09-22 03:45:25 +08:00
										 |  |  | enable_testing()
 | 
					
						
							| 
									
										
										
										
											2010-10-17 04:02:12 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-07-14 00:24:57 +08:00
										 |  |  | if(COMMAND cmake_policy)
 | 
					
						
							|  |  |  |   # CMP0003: Libraries linked via full path no longer produce linker search paths.
 | 
					
						
							|  |  |  |   #cmake_policy(SET CMP0003 NEW)
 | 
					
						
							| 
									
										
										
										
											2014-09-14 17:00:05 +08:00
										 |  |  |   if(CMAKE_MAJOR_VERSION GREATER 2)
 | 
					
						
							|  |  |  |     # CMP0046: Old behavior to silently ignore non-existent dependencies.
 | 
					
						
							|  |  |  |     cmake_policy(SET CMP0046 OLD)
 | 
					
						
							| 
									
										
										
										
											2016-04-01 04:48:54 +08:00
										 |  |  |   endif()
 | 
					
						
							| 
									
										
										
										
											2014-07-14 00:24:57 +08:00
										 |  |  | endif(COMMAND cmake_policy)
 | 
					
						
							| 
									
										
										
										
											2010-10-17 04:02:12 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | if(NOT CMAKE_BUILD_TYPE)
 | 
					
						
							|  |  |  |   set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING | 
					
						
							|  |  |  |       "Choose the type of build, options are:
 | 
					
						
							|  |  |  |         None Debug Release RelWithDebInfo Profile."
 | 
					
						
							|  |  |  |       FORCE)
 | 
					
						
							|  |  |  | endif()
 | 
					
						
							| 
									
										
										
										
											2010-08-11 08:49:32 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-10-17 04:02:12 +08:00
										 |  |  | # Restrict configuration types to the selected build type.
 | 
					
						
							|  |  |  | # Note: This needs to be done before the project command
 | 
					
						
							|  |  |  | set(CMAKE_CONFIGURATION_TYPES "${CMAKE_BUILD_TYPE}" CACHE INTERNAL "internal")
 | 
					
						
							| 
									
										
										
										
											2010-08-26 03:20:30 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-02 12:38:38 +08:00
										 |  |  | # Aseprite project
 | 
					
						
							| 
									
										
										
										
											2010-10-17 04:02:12 +08:00
										 |  |  | project(aseprite C CXX)
 | 
					
						
							| 
									
										
										
										
											2010-08-11 08:49:32 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-08-26 03:20:30 +08:00
										 |  |  | ######################################################################
 | 
					
						
							| 
									
										
										
										
											2011-07-28 08:26:22 +08:00
										 |  |  | # Options (these can be specified in cmake command line or modifying
 | 
					
						
							|  |  |  | # CMakeCache.txt)
 | 
					
						
							| 
									
										
										
										
											2010-08-26 03:20:30 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-09-08 01:43:31 +08:00
										 |  |  | option(WITH_WEBP_SUPPORT  "Enable support to load/save .webp files" off)
 | 
					
						
							| 
									
										
										
										
											2016-03-05 04:22:44 +08:00
										 |  |  | option(WITH_GTK_FILE_DIALOG_SUPPORT "Enable support for the experimental native GTK File Dialog" off)
 | 
					
						
							|  |  |  | option(WITH_DEPRECATED_GLIB_SUPPORT "Enable support for older glib versions" off)
 | 
					
						
							| 
									
										
										
										
											2015-09-08 01:43:31 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-01 22:05:15 +08:00
										 |  |  | option(WITH_DESKTOP_INTEGRATION "Enable desktop integration modules" on)
 | 
					
						
							|  |  |  | option(WITH_QT_THUMBNAILER "Enable kde5/qt5 thumnailer" off)
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-10-01 04:04:32 +08:00
										 |  |  | option(USE_STATIC_LIBC    "Use static version of C and C++ runtimes" off)
 | 
					
						
							| 
									
										
										
										
											2012-03-15 11:17:49 +08:00
										 |  |  | option(USE_SHARED_CURL    "Use your installed copy of curl" off)
 | 
					
						
							|  |  |  | option(USE_SHARED_GIFLIB  "Use your installed copy of giflib" off)
 | 
					
						
							| 
									
										
										
										
											2010-10-01 04:04:32 +08:00
										 |  |  | option(USE_SHARED_JPEGLIB "Use your installed copy of jpeglib" off)
 | 
					
						
							|  |  |  | option(USE_SHARED_ZLIB    "Use your installed copy of zlib" off)
 | 
					
						
							|  |  |  | option(USE_SHARED_LIBPNG  "Use your installed copy of libpng" off)
 | 
					
						
							| 
									
										
										
										
											2012-07-09 08:21:01 +08:00
										 |  |  | option(USE_SHARED_LIBLOADPNG "Use your installed copy of libloadpng" off)
 | 
					
						
							| 
									
										
										
										
											2015-09-01 19:04:11 +08:00
										 |  |  | option(USE_SHARED_LIBWEBP "Use your installed copy of libwebp" off)
 | 
					
						
							| 
									
										
										
										
											2012-03-20 01:04:24 +08:00
										 |  |  | option(USE_SHARED_TINYXML "Use your installed copy of tinyxml" off)
 | 
					
						
							| 
									
										
										
										
											2014-10-26 09:22:58 +08:00
										 |  |  | option(USE_SHARED_PIXMAN  "Use your installed copy of pixman" off)
 | 
					
						
							| 
									
										
										
										
											2015-09-23 06:27:44 +08:00
										 |  |  | option(USE_SHARED_FREETYPE "Use shared FreeType library" off)
 | 
					
						
							| 
									
										
										
										
											2012-03-20 00:24:15 +08:00
										 |  |  | option(USE_SHARED_ALLEGRO4 "Use shared Allegro 4 library (without resize support)" off)
 | 
					
						
							| 
									
										
										
										
											2015-03-17 02:05:13 +08:00
										 |  |  | option(USE_ALLEG4_BACKEND "Use Allegro 4 backend" on)
 | 
					
						
							|  |  |  | option(USE_SKIA_BACKEND   "Use Skia backend" off)
 | 
					
						
							| 
									
										
										
										
											2010-10-11 03:47:01 +08:00
										 |  |  | option(ENABLE_MEMLEAK     "Enable memory-leaks detector (only for developers)" off)
 | 
					
						
							| 
									
										
										
										
											2011-08-10 07:13:22 +08:00
										 |  |  | option(ENABLE_UPDATER     "Enable automatic check for updates" on)
 | 
					
						
							| 
									
										
										
										
											2013-03-31 11:36:00 +08:00
										 |  |  | option(ENABLE_WEBSERVER   "Enable support to run a webserver (for HTML5 gamedev)" off)
 | 
					
						
							| 
									
										
										
										
											2016-03-30 06:06:41 +08:00
										 |  |  | option(ENABLE_TESTS       "Enable the unit tests" off)
 | 
					
						
							| 
									
										
										
										
											2014-04-10 11:33:28 +08:00
										 |  |  | option(ENABLE_TRIAL_MODE  "Compile the trial version" off)
 | 
					
						
							| 
									
										
										
										
											2016-02-25 00:21:37 +08:00
										 |  |  | option(ENABLE_STEAM       "Compile with Steam library" off)
 | 
					
						
							| 
									
										
										
										
											2011-08-10 07:27:12 +08:00
										 |  |  | option(FULLSCREEN_PLATFORM "Enable fullscreen by default" off)
 | 
					
						
							| 
									
										
										
										
											2014-06-03 08:31:44 +08:00
										 |  |  | set(CUSTOM_WEBSITE_URL "" CACHE STRING "Enable custom local webserver to check updates")
 | 
					
						
							| 
									
										
										
										
											2010-08-26 03:20:30 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | ######################################################################
 | 
					
						
							| 
									
										
										
										
											2010-10-17 04:02:12 +08:00
										 |  |  | # Profile build type
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | list(APPEND CMAKE_BUILD_TYPES Profile)
 | 
					
						
							|  |  |  | mark_as_advanced( | 
					
						
							|  |  |  |     CMAKE_C_FLAGS_PROFILE
 | 
					
						
							|  |  |  |     CMAKE_CXX_FLAGS_PROFILE
 | 
					
						
							| 
									
										
										
										
											2015-03-17 02:05:13 +08:00
										 |  |  |     CMAKE_EXE_LINKER_FLAGS_PROFILE)
 | 
					
						
							| 
									
										
										
										
											2010-10-17 04:02:12 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-11-29 10:04:14 +08:00
										 |  |  | if(CMAKE_COMPILER_IS_GNUCC)
 | 
					
						
							| 
									
										
										
										
											2010-10-17 04:02:12 +08:00
										 |  |  |     set(CMAKE_C_FLAGS_PROFILE "-pg" | 
					
						
							| 
									
										
										
										
											2014-11-29 10:04:14 +08:00
										 |  |  |         CACHE STRING "Profiling C flags")
 | 
					
						
							| 
									
										
										
										
											2010-10-17 04:02:12 +08:00
										 |  |  |     set(CMAKE_CXX_FLAGS_PROFILE "${CMAKE_C_FLAGS_PROFILE}" | 
					
						
							| 
									
										
										
										
											2014-11-29 10:04:14 +08:00
										 |  |  |         CACHE STRING "Profiling C++ flags")
 | 
					
						
							| 
									
										
										
										
											2010-10-17 04:02:12 +08:00
										 |  |  |     set(CMAKE_EXE_LINKER_FLAGS_PROFILE "-pg" | 
					
						
							| 
									
										
										
										
											2014-11-29 10:04:14 +08:00
										 |  |  |         CACHE STRING "Profiling linker flags")
 | 
					
						
							|  |  |  | endif()
 | 
					
						
							| 
									
										
										
										
											2010-10-17 04:02:12 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-11-29 10:04:14 +08:00
										 |  |  | if(MSVC)
 | 
					
						
							| 
									
										
										
										
											2015-12-04 23:38:57 +08:00
										 |  |  |     set(CMAKE_C_FLAGS_PROFILE "/MD /Zi /Ox /Gd" | 
					
						
							| 
									
										
										
										
											2014-11-29 10:04:14 +08:00
										 |  |  |         CACHE STRING "Profiling C flags")
 | 
					
						
							| 
									
										
										
										
											2010-10-17 04:02:12 +08:00
										 |  |  |     set(CMAKE_CXX_FLAGS_PROFILE "${CMAKE_C_FLAGS_PROFILE}" | 
					
						
							| 
									
										
										
										
											2014-11-29 10:04:14 +08:00
										 |  |  |         CACHE STRING "Profiling C++ flags")
 | 
					
						
							|  |  |  |     set(CMAKE_EXE_LINKER_FLAGS_PROFILE "/PROFILE /DEBUG" | 
					
						
							|  |  |  |         CACHE STRING "Profiling linker flags")
 | 
					
						
							|  |  |  | endif()
 | 
					
						
							| 
									
										
										
										
											2010-10-17 04:02:12 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | ######################################################################
 | 
					
						
							|  |  |  | # Directories
 | 
					
						
							| 
									
										
										
										
											2010-08-26 03:20:30 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-02 12:30:01 +08:00
										 |  |  | set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib")
 | 
					
						
							|  |  |  | set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib")
 | 
					
						
							|  |  |  | set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin")
 | 
					
						
							|  |  |  | # We need to specify the output for each configuration to make it work
 | 
					
						
							|  |  |  | # on Visual Studio solutions.
 | 
					
						
							|  |  |  | set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG "${CMAKE_BINARY_DIR}/lib")
 | 
					
						
							|  |  |  | set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG "${CMAKE_BINARY_DIR}/lib")
 | 
					
						
							|  |  |  | set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_BINARY_DIR}/bin")
 | 
					
						
							|  |  |  | set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_BINARY_DIR}/lib")
 | 
					
						
							|  |  |  | set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_BINARY_DIR}/lib")
 | 
					
						
							|  |  |  | set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_BINARY_DIR}/bin")
 | 
					
						
							|  |  |  | set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${CMAKE_BINARY_DIR}/lib")
 | 
					
						
							|  |  |  | set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE "${CMAKE_BINARY_DIR}/lib")
 | 
					
						
							|  |  |  | set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_BINARY_DIR}/bin")
 | 
					
						
							|  |  |  | set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_PROFILE "${CMAKE_BINARY_DIR}/lib")
 | 
					
						
							|  |  |  | set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_PROFILE "${CMAKE_BINARY_DIR}/lib")
 | 
					
						
							|  |  |  | set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_PROFILE "${CMAKE_BINARY_DIR}/bin")
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-01-06 06:45:03 +08:00
										 |  |  | set(CURL_DIR            ${CMAKE_SOURCE_DIR}/third_party/curl)
 | 
					
						
							|  |  |  | set(GIFLIB_DIR          ${CMAKE_SOURCE_DIR}/third_party/giflib)
 | 
					
						
							|  |  |  | set(LIBJPEG_DIR         ${CMAKE_SOURCE_DIR}/third_party/jpeg)
 | 
					
						
							|  |  |  | set(LIBPNG_DIR          ${CMAKE_SOURCE_DIR}/third_party/libpng)
 | 
					
						
							|  |  |  | set(LOADPNG_DIR         ${CMAKE_SOURCE_DIR}/third_party/loadpng)
 | 
					
						
							| 
									
										
										
										
											2015-09-01 19:04:11 +08:00
										 |  |  | set(LIBWEBP_DIR         ${CMAKE_SOURCE_DIR}/third_party/libwebp)
 | 
					
						
							| 
									
										
										
										
											2014-10-26 09:22:58 +08:00
										 |  |  | set(PIXMAN_DIR          ${CMAKE_SOURCE_DIR}/third_party/pixman)
 | 
					
						
							| 
									
										
										
										
											2015-09-23 06:27:44 +08:00
										 |  |  | set(FREETYPE_DIR        ${CMAKE_SOURCE_DIR}/third_party/freetype2)
 | 
					
						
							| 
									
										
										
										
											2014-10-17 08:27:25 +08:00
										 |  |  | set(SIMPLEINI_DIR       ${CMAKE_SOURCE_DIR}/third_party/simpleini)
 | 
					
						
							| 
									
										
										
										
											2012-01-06 06:45:03 +08:00
										 |  |  | set(TINYXML_DIR         ${CMAKE_SOURCE_DIR}/third_party/tinyxml)
 | 
					
						
							|  |  |  | set(ZLIB_DIR            ${CMAKE_SOURCE_DIR}/third_party/zlib)
 | 
					
						
							| 
									
										
										
										
											2015-06-20 00:06:47 +08:00
										 |  |  | set(DUKTAPE_DIR         ${CMAKE_SOURCE_DIR}/third_party/duktape)
 | 
					
						
							| 
									
										
										
										
											2015-12-22 00:44:02 +08:00
										 |  |  | set(MODP_B64_DIR        ${CMAKE_SOURCE_DIR}/third_party/modp_b64)
 | 
					
						
							| 
									
										
										
										
											2010-08-11 08:49:32 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-10-17 04:02:12 +08:00
										 |  |  | # Search in the "cmake" directory for additional CMake modules.
 | 
					
						
							|  |  |  | list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Put libraries into "lib".
 | 
					
						
							|  |  |  | set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib)
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-08-26 03:20:30 +08:00
										 |  |  | ######################################################################
 | 
					
						
							| 
									
										
										
										
											2015-06-09 21:20:56 +08:00
										 |  |  | # Common definitions to compile all sources (app code and third party)
 | 
					
						
							| 
									
										
										
										
											2010-08-26 03:20:30 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | # Debug C/C++ flags
 | 
					
						
							|  |  |  | if(CMAKE_BUILD_TYPE STREQUAL Debug)
 | 
					
						
							|  |  |  |   add_definitions(-DDEBUGMODE -D_DEBUG)
 | 
					
						
							|  |  |  | else()
 | 
					
						
							|  |  |  |   add_definitions(-DNDEBUG)
 | 
					
						
							|  |  |  | endif()
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-10-31 08:08:33 +08:00
										 |  |  | # Fix to compile gtest with VC11 (2012)
 | 
					
						
							| 
									
										
										
										
											2015-06-09 23:47:27 +08:00
										 |  |  | if(MSVC_VERSION EQUAL 1700)
 | 
					
						
							| 
									
										
										
										
											2015-06-09 21:54:04 +08:00
										 |  |  |   add_definitions(-D_VARIADIC_MAX=10)
 | 
					
						
							| 
									
										
										
										
											2012-10-31 08:08:33 +08:00
										 |  |  | endif()
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-09 23:47:27 +08:00
										 |  |  | if(NOT WIN32 AND NOT APPLE AND CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
 | 
					
						
							|  |  |  |   set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu89")
 | 
					
						
							|  |  |  | endif()
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-12-18 04:43:13 +08:00
										 |  |  | if(APPLE AND USE_SKIA_BACKEND)
 | 
					
						
							|  |  |  |   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -stdlib=libc++")
 | 
					
						
							|  |  |  | endif()
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-04-27 23:23:54 +08:00
										 |  |  | if(NOT USE_SHARED_CURL)
 | 
					
						
							|  |  |  |   set(CURL_STATICLIB ON BOOL)
 | 
					
						
							|  |  |  | endif()
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-13 23:16:55 +08:00
										 |  |  | # zlib
 | 
					
						
							|  |  |  | if(USE_SHARED_ZLIB)
 | 
					
						
							| 
									
										
										
										
											2016-03-26 17:26:22 +08:00
										 |  |  |   find_package(ZLIB REQUIRED)
 | 
					
						
							| 
									
										
										
										
											2015-07-13 23:16:55 +08:00
										 |  |  | else()
 | 
					
						
							| 
									
										
										
										
											2016-04-01 04:48:54 +08:00
										 |  |  |   set(ZLIB_LIBRARIES zlibstatic)
 | 
					
						
							|  |  |  |   set(ZLIB_INCLUDE_DIRS | 
					
						
							|  |  |  |     ${ZLIB_DIR}
 | 
					
						
							|  |  |  |     ${CMAKE_BINARY_DIR}/third_party/zlib) # Zlib generated zconf.h file
 | 
					
						
							| 
									
										
										
										
											2015-06-09 21:20:56 +08:00
										 |  |  | endif()
 | 
					
						
							| 
									
										
										
										
											2016-03-26 17:40:16 +08:00
										 |  |  | include_directories(${ZLIB_INCLUDE_DIRS})
 | 
					
						
							| 
									
										
										
										
											2016-04-01 04:48:54 +08:00
										 |  |  | message(${ZLIB_INCLUDE_DIRS})
 | 
					
						
							| 
									
										
										
										
											2015-06-09 21:20:56 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-13 23:16:55 +08:00
										 |  |  | # libpng
 | 
					
						
							| 
									
										
										
										
											2015-06-09 21:20:56 +08:00
										 |  |  | if(USE_SHARED_LIBPNG)
 | 
					
						
							| 
									
										
										
										
											2016-03-26 17:26:22 +08:00
										 |  |  |   find_package(PNG REQUIRED)
 | 
					
						
							| 
									
										
										
										
											2015-06-09 21:20:56 +08:00
										 |  |  |   add_definitions(${PNG_DEFINITIONS})
 | 
					
						
							|  |  |  | else()
 | 
					
						
							| 
									
										
										
										
											2016-04-01 04:48:54 +08:00
										 |  |  |   set(PNG_LIBRARIES png_static)
 | 
					
						
							|  |  |  |   set(PNG_INCLUDE_DIRS | 
					
						
							|  |  |  |     ${LIBPNG_DIR}
 | 
					
						
							|  |  |  |     ${CMAKE_CURRENT_BINARY_DIR}/third_party/libpng) # Libpng generated pnglibconf.h file
 | 
					
						
							| 
									
										
										
										
											2015-06-09 21:20:56 +08:00
										 |  |  | endif()
 | 
					
						
							| 
									
										
										
										
											2016-03-26 17:40:16 +08:00
										 |  |  | include_directories(${PNG_INCLUDE_DIRS})
 | 
					
						
							| 
									
										
										
										
											2015-07-13 23:16:55 +08:00
										 |  |  | add_definitions(-DPNG_NO_MMX_CODE) # Do not use MMX optimizations in PNG code
 | 
					
						
							| 
									
										
										
										
											2015-06-09 21:20:56 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-09-01 19:04:11 +08:00
										 |  |  | # libwebp
 | 
					
						
							| 
									
										
										
										
											2015-09-08 01:43:31 +08:00
										 |  |  | if(WITH_WEBP_SUPPORT)
 | 
					
						
							|  |  |  |   if(USE_SHARED_LIBWEBP)
 | 
					
						
							|  |  |  |     find_package(PkgConfig)
 | 
					
						
							|  |  |  |     pkg_check_modules(WEBP libwebp)
 | 
					
						
							|  |  |  |     if(NOT WEBP_FOUND)
 | 
					
						
							|  |  |  |       message(FATAL_ERROR "libwebp not found")
 | 
					
						
							|  |  |  |     endif()
 | 
					
						
							|  |  |  |   else()
 | 
					
						
							|  |  |  |     set(WEBP_LIBRARIES webp)
 | 
					
						
							|  |  |  |     set(WEBP_INCLUDE_DIR ${LIBWEBP_DIR}/src)
 | 
					
						
							| 
									
										
										
										
											2015-09-01 19:04:11 +08:00
										 |  |  |   endif()
 | 
					
						
							| 
									
										
										
										
											2015-09-08 01:43:31 +08:00
										 |  |  |   include_directories(${WEBP_INCLUDE_DIR})
 | 
					
						
							| 
									
										
										
										
											2015-09-01 19:04:11 +08:00
										 |  |  | endif()
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-13 23:16:55 +08:00
										 |  |  | # tinyxml
 | 
					
						
							|  |  |  | if(USE_SHARED_TINYXML)
 | 
					
						
							|  |  |  |   find_library(TINYXML_LIBRARY NAMES tinyxml)
 | 
					
						
							|  |  |  |   find_path(TINYXML_INCLUDE_DIR NAMES tinyxml.h)
 | 
					
						
							|  |  |  | else()
 | 
					
						
							|  |  |  |   set(TINYXML_LIBRARY tinyxml)
 | 
					
						
							|  |  |  |   set(TINYXML_INCLUDE_DIR ${TINYXML_DIR})
 | 
					
						
							|  |  |  | endif()
 | 
					
						
							|  |  |  | include_directories(${TINYXML_INCLUDE_DIR})
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # pixman
 | 
					
						
							|  |  |  | if(USE_SHARED_PIXMAN)
 | 
					
						
							|  |  |  |   find_library(PIXMAN_LIBRARY NAMES pixman pixman-1)
 | 
					
						
							|  |  |  |   find_path(PIXMAN_INCLUDE_DIR NAMES pixman.h PATH_SUFFIXES pixman-1)
 | 
					
						
							|  |  |  | else()
 | 
					
						
							|  |  |  |   set(PIXMAN_LIBRARY pixman)
 | 
					
						
							| 
									
										
										
										
											2016-04-01 04:48:54 +08:00
										 |  |  |   set(PIXMAN_INCLUDE_DIR | 
					
						
							|  |  |  |     ${PIXMAN_DIR}/pixman
 | 
					
						
							|  |  |  |     ${CMAKE_BINARY_DIR}) # For pixman-version.h
 | 
					
						
							| 
									
										
										
										
											2015-07-13 23:16:55 +08:00
										 |  |  | endif()
 | 
					
						
							|  |  |  | include_directories(${PIXMAN_INCLUDE_DIR})
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-09-23 06:27:44 +08:00
										 |  |  | # freetype
 | 
					
						
							|  |  |  | if(USE_SHARED_FREETYPE)
 | 
					
						
							| 
									
										
										
										
											2016-03-26 17:26:22 +08:00
										 |  |  |   find_package(Freetype REQUIRED)
 | 
					
						
							| 
									
										
										
										
											2015-09-23 06:27:44 +08:00
										 |  |  | else()
 | 
					
						
							| 
									
										
										
										
											2016-03-26 17:40:16 +08:00
										 |  |  |   set(FREETYPE_LIBRARIES freetype)
 | 
					
						
							|  |  |  |   set(FREETYPE_INCLUDE_DIRS ${FREETYPE_DIR}/include)
 | 
					
						
							| 
									
										
										
										
											2015-09-23 06:27:44 +08:00
										 |  |  | endif()
 | 
					
						
							| 
									
										
										
										
											2016-03-26 17:40:16 +08:00
										 |  |  | include_directories(${FREETYPE_INCLUDE_DIRS})
 | 
					
						
							| 
									
										
										
										
											2015-09-23 06:27:44 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-13 23:16:55 +08:00
										 |  |  | if(USE_SHARED_GIFLIB)
 | 
					
						
							|  |  |  |   find_package(GIF REQUIRED)
 | 
					
						
							|  |  |  | else()
 | 
					
						
							|  |  |  |   set(GIF_LIBRARIES giflib)
 | 
					
						
							| 
									
										
										
										
											2016-03-26 17:40:16 +08:00
										 |  |  |   set(GIF_INCLUDE_DIRS ${GIFLIB_DIR}/lib)
 | 
					
						
							| 
									
										
										
										
											2015-07-13 23:16:55 +08:00
										 |  |  | endif()
 | 
					
						
							| 
									
										
										
										
											2016-03-26 17:40:16 +08:00
										 |  |  | include_directories(${GIF_INCLUDE_DIRS})
 | 
					
						
							| 
									
										
										
										
											2015-07-13 23:16:55 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | if(USE_SHARED_JPEGLIB)
 | 
					
						
							| 
									
										
										
										
											2016-03-26 17:26:22 +08:00
										 |  |  |   find_package(JPEG REQUIRED)
 | 
					
						
							| 
									
										
										
										
											2015-07-13 23:16:55 +08:00
										 |  |  | else()
 | 
					
						
							|  |  |  |   set(JPEG_LIBRARIES jpeg)
 | 
					
						
							| 
									
										
										
										
											2016-03-26 21:39:07 +08:00
										 |  |  |   set(JPEG_INCLUDE_DIRS ${LIBJPEG_DIR})
 | 
					
						
							| 
									
										
										
										
											2015-07-13 23:16:55 +08:00
										 |  |  | endif()
 | 
					
						
							| 
									
										
										
										
											2016-03-26 17:40:16 +08:00
										 |  |  | include_directories(${JPEG_INCLUDE_DIRS})
 | 
					
						
							| 
									
										
										
										
											2015-07-13 23:16:55 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | if(USE_ALLEG4_BACKEND)
 | 
					
						
							|  |  |  |   if(USE_SHARED_LIBLOADPNG)
 | 
					
						
							|  |  |  |     find_library(LOADPNG_LIBRARY NAMES loadpng)
 | 
					
						
							|  |  |  |     find_path(LOADPNG_INCLUDE_DIR NAMES loadpng.h)
 | 
					
						
							|  |  |  |   else()
 | 
					
						
							|  |  |  |     set(LOADPNG_LIBRARY loadpng)
 | 
					
						
							|  |  |  |     set(LOADPNG_INCLUDE_DIR ${LOADPNG_DIR})
 | 
					
						
							|  |  |  |   endif()
 | 
					
						
							|  |  |  |   include_directories(${LOADPNG_INCLUDE_DIR})
 | 
					
						
							|  |  |  | endif()
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if(USE_SHARED_CURL)
 | 
					
						
							| 
									
										
										
										
											2016-03-26 17:26:22 +08:00
										 |  |  |   find_package(CURL REQUIRED)
 | 
					
						
							| 
									
										
										
										
											2015-07-13 23:16:55 +08:00
										 |  |  | else()
 | 
					
						
							| 
									
										
										
										
											2016-03-26 19:01:45 +08:00
										 |  |  |   set(CURL_LIBRARIES libcurl)
 | 
					
						
							|  |  |  |   set(CURL_INCLUDE_DIRS ${CURL_DIR}/include)
 | 
					
						
							| 
									
										
										
										
											2015-07-13 23:16:55 +08:00
										 |  |  | endif()
 | 
					
						
							| 
									
										
										
										
											2016-03-26 19:01:45 +08:00
										 |  |  | include_directories(${CURL_INCLUDE_DIRS})
 | 
					
						
							| 
									
										
										
										
											2015-07-13 23:16:55 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | # simpleini
 | 
					
						
							|  |  |  | include_directories(${SIMPLEINI_DIR})
 | 
					
						
							| 
									
										
										
										
											2015-06-09 21:20:56 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-03-17 02:05:13 +08:00
										 |  |  | ######################################################################
 | 
					
						
							| 
									
										
										
										
											2015-07-14 00:02:34 +08:00
										 |  |  | # Platform specific stuff
 | 
					
						
							| 
									
										
										
										
											2015-03-17 02:05:13 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-14 00:02:34 +08:00
										 |  |  | set(PLATFORM_LIBS)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Allegro 4 backend
 | 
					
						
							| 
									
										
										
										
											2015-03-17 02:05:13 +08:00
										 |  |  | if(USE_ALLEG4_BACKEND)
 | 
					
						
							| 
									
										
										
										
											2015-10-15 00:30:45 +08:00
										 |  |  |   add_definitions(-DUSE_ALLEG4_BACKEND)
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-03-17 02:05:13 +08:00
										 |  |  |   if(USE_SHARED_ALLEGRO4)
 | 
					
						
							|  |  |  |     # Find the shared Allegro 4 library
 | 
					
						
							|  |  |  |     find_library(LIBALLEGRO4_LIBRARY alleg)
 | 
					
						
							|  |  |  |     find_path(LIBALLEGRO4_INCLUDE_DIR allegro.h)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if(NOT LIBALLEGRO4_LIBRARY)
 | 
					
						
							|  |  |  |       message(FATAL_ERROR "Allegro 4 not found")
 | 
					
						
							|  |  |  |     endif()
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # Get flags to link programs using allegro-config program
 | 
					
						
							|  |  |  |     execute_process(COMMAND allegro-config --libs --shared | 
					
						
							|  |  |  |       OUTPUT_VARIABLE LIBALLEGRO4_LINK_FLAGS
 | 
					
						
							|  |  |  |       OUTPUT_STRIP_TRAILING_WHITESPACE)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     set(LIBALLEGRO4_LINK_FLAGS ${LIBALLEGRO4_LINK_FLAGS} ${PLATFORM_LIBS})
 | 
					
						
							|  |  |  |     include_directories(${LIBALLEGRO4_INCLUDE_DIR})
 | 
					
						
							|  |  |  |   else()
 | 
					
						
							|  |  |  |     include_directories(${CMAKE_SOURCE_DIR}/src/allegro/include)
 | 
					
						
							|  |  |  |     include_directories(${CMAKE_BINARY_DIR}/include)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     add_definitions(-DALLEGRO4_WITH_RESIZE_PATCH)
 | 
					
						
							|  |  |  |     add_definitions(-DALLEGRO4_WITH_EXTRA_CURSORS)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # Static Allegro (the code of Allegro library is embedded).
 | 
					
						
							|  |  |  |     add_definitions(-DALLEGRO_STATICLINK)
 | 
					
						
							| 
									
										
										
										
											2015-07-13 23:16:55 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     set(LIBALLEGRO4_LINK_FLAGS allegro)
 | 
					
						
							| 
									
										
										
										
											2015-03-17 02:05:13 +08:00
										 |  |  |   endif()
 | 
					
						
							|  |  |  | endif()
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-15 00:30:45 +08:00
										 |  |  | # Skia backend
 | 
					
						
							|  |  |  | if(USE_SKIA_BACKEND)
 | 
					
						
							|  |  |  |   add_definitions(-DUSE_SKIA_BACKEND)
 | 
					
						
							|  |  |  | endif()
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-10-17 04:02:12 +08:00
										 |  |  | # -- Unix --
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if(UNIX AND NOT APPLE AND NOT BEOS)
 | 
					
						
							|  |  |  |   # Pthreads
 | 
					
						
							| 
									
										
										
										
											2016-03-26 17:26:22 +08:00
										 |  |  |   find_package(Threads REQUIRED)
 | 
					
						
							| 
									
										
										
										
											2010-10-17 04:02:12 +08:00
										 |  |  |   list(APPEND PLATFORM_LIBS m ${CMAKE_THREAD_LIBS_INIT})
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   # X11
 | 
					
						
							| 
									
										
										
										
											2016-03-26 17:26:22 +08:00
										 |  |  |   find_package(X11 REQUIRED)
 | 
					
						
							| 
									
										
										
										
											2010-10-17 04:02:12 +08:00
										 |  |  |   include_directories(SYSTEM ${X11_INCLUDE_DIR})
 | 
					
						
							|  |  |  |   list(APPEND PLATFORM_LIBS ${X11_LIBRARIES})
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   if(X11_XShm_FOUND)
 | 
					
						
							|  |  |  |     list(APPEND PLATFORM_LIBS ${X11_Xext_LIB})
 | 
					
						
							|  |  |  |   endif()
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   if(X11_Xcursor_FOUND)
 | 
					
						
							|  |  |  |     list(APPEND PLATFORM_LIBS ${X11_Xcursor_LIB})
 | 
					
						
							|  |  |  |   endif()
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   if(X11_Xpm_FOUND)
 | 
					
						
							|  |  |  |     list(APPEND PLATFORM_LIBS ${X11_Xpm_LIB})
 | 
					
						
							|  |  |  |   endif()
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   find_library(X11_Xxf86vm_LIB Xxf86vm ${X11_LIB_SEARCH_PATH})
 | 
					
						
							|  |  |  |   mark_as_advanced(X11_Xxf86vm_LIB)
 | 
					
						
							|  |  |  |   if(X11_xf86vmode_FOUND)
 | 
					
						
							|  |  |  |     list(APPEND PLATFORM_LIBS ${X11_Xxf86vm_LIB})
 | 
					
						
							|  |  |  |   endif()
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   check_library_exists(X11 XOpenIM "${X11_LIB_SEARCH_PATH}" XIM_FOUND)
 | 
					
						
							|  |  |  |   check_library_exists(Xxf86dga XDGAQueryExtension | 
					
						
							|  |  |  |     "${X11_LIB_SEARCH_PATH}" XDGA_FOUND)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   if(XDGA_FOUND)
 | 
					
						
							| 
									
										
										
										
											2011-03-07 03:20:11 +08:00
										 |  |  |     list(APPEND PLATFORM_LIBS Xxf86dga ${X11_LIBRARIES})
 | 
					
						
							| 
									
										
										
										
											2010-10-17 04:02:12 +08:00
										 |  |  |   endif()
 | 
					
						
							| 
									
										
										
										
											2016-03-05 04:22:44 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |   if(WITH_GTK_FILE_DIALOG_SUPPORT)
 | 
					
						
							|  |  |  |     find_package(PkgConfig REQUIRED)
 | 
					
						
							|  |  |  |     pkg_check_modules(GTKMM gtkmm-3.0)
 | 
					
						
							|  |  |  |     include_directories(${GTKMM_INCLUDE_DIRS})
 | 
					
						
							|  |  |  |     link_directories(${GTKMM_LIBRARY_DIRS})
 | 
					
						
							|  |  |  |   endif()
 | 
					
						
							| 
									
										
										
										
											2010-10-17 04:02:12 +08:00
										 |  |  | endif()
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # -- Windows --
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if(WIN32)
 | 
					
						
							|  |  |  |   list(APPEND PLATFORM_LIBS | 
					
						
							| 
									
										
										
										
											2015-03-17 02:05:13 +08:00
										 |  |  |     kernel32 user32 gdi32 comdlg32 ole32 winmm
 | 
					
						
							| 
									
										
										
										
											2015-07-13 23:16:55 +08:00
										 |  |  |     shlwapi psapi wininet comctl32 dbghelp)
 | 
					
						
							| 
									
										
										
										
											2010-10-17 04:02:12 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-03-17 09:22:56 +08:00
										 |  |  |   # Windows XP is the minimum supported platform.
 | 
					
						
							|  |  |  |   add_definitions(-D_WIN32_WINNT=0x0501 -DWINVER=0x0501)
 | 
					
						
							| 
									
										
										
										
											2011-01-21 04:28:21 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-15 06:58:11 +08:00
										 |  |  |   # We need Unicode support
 | 
					
						
							|  |  |  |   add_definitions(-DUNICODE -D_UNICODE)
 | 
					
						
							| 
									
										
										
										
											2010-10-17 04:02:12 +08:00
										 |  |  | endif(WIN32)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # -- Mac OS X --
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if(APPLE)
 | 
					
						
							|  |  |  |   find_library(COCOA_LIBRARY Cocoa)
 | 
					
						
							|  |  |  |   find_library(CARBON_LIBRARY Carbon)
 | 
					
						
							|  |  |  |   find_library(IOKIT_LIBRARY IOKit)
 | 
					
						
							|  |  |  |   mark_as_advanced(COCOA_LIBRARY CARBON_LIBRARY IOKIT_LIBRARY)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   list(APPEND PLATFORM_LIBS | 
					
						
							|  |  |  |     ${COCOA_LIBRARY}
 | 
					
						
							|  |  |  |     ${CARBON_LIBRARY}
 | 
					
						
							| 
									
										
										
										
											2015-06-02 01:39:30 +08:00
										 |  |  |     ${IOKIT_LIBRARY})
 | 
					
						
							| 
									
										
										
										
											2010-10-31 22:54:23 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     # Hack to deal with Mac OS X 10.6.  NSQuickDrawView is not defined by
 | 
					
						
							|  |  |  |     # NSQuickDrawView.h when compiling in 64-bit mode, and 64-bit mode is the
 | 
					
						
							|  |  |  |     # default when compiling on Snow Leopard.
 | 
					
						
							|  |  |  |     if(${CMAKE_SYSTEM_PROCESSOR} STREQUAL i386)
 | 
					
						
							| 
									
										
										
										
											2012-01-06 06:45:03 +08:00
										 |  |  |         set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -arch i386")
 | 
					
						
							|  |  |  |         set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -arch i386")
 | 
					
						
							| 
									
										
										
										
											2010-10-31 22:54:23 +08:00
										 |  |  |     endif()
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # The Mac port simply uses too many deprecated things.
 | 
					
						
							|  |  |  |     if(COMPILER_GCC)
 | 
					
						
							|  |  |  |         set(WFLAGS "${WFLAGS} -Wno-deprecated-declarations")
 | 
					
						
							|  |  |  |     endif(COMPILER_GCC)
 | 
					
						
							| 
									
										
										
										
											2010-10-17 04:02:12 +08:00
										 |  |  | endif(APPLE)
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-01 22:05:15 +08:00
										 |  |  | if(WITH_DESKTOP_INTEGRATION)
 | 
					
						
							|  |  |  |   add_subdirectory(desk)
 | 
					
						
							|  |  |  | endif()
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-08-26 03:20:30 +08:00
										 |  |  | ######################################################################
 | 
					
						
							|  |  |  | # Main ASE targets
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-08-11 08:49:32 +08:00
										 |  |  | add_subdirectory(src)
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-08-26 03:20:30 +08:00
										 |  |  | ######################################################################
 | 
					
						
							| 
									
										
										
										
											2010-08-11 08:49:32 +08:00
										 |  |  | # Third party libraries
 | 
					
						
							| 
									
										
										
										
											2010-08-26 03:20:30 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-08-11 08:49:32 +08:00
										 |  |  | add_subdirectory(third_party)
 |