summaryrefslogtreecommitdiff
path: root/CMake
diff options
context:
space:
mode:
authorMatthias Melcher <git@matthiasm.com>2019-01-14 23:27:12 +0100
committerMatthias Melcher <git@matthiasm.com>2019-01-14 23:27:12 +0100
commit16181a3afb550b5e8d43c3f2103c0c2841f01052 (patch)
treee381c35ca3a47914085486a9b000c537799987a5 /CMake
parent6ff11dd8d0c811d1ddb5c9f753ace8f73bbfede1 (diff)
Android: modifying CMake to also create AndroidStudio IDE
Diffstat (limited to 'CMake')
-rw-r--r--CMake/android.cmake156
1 files changed, 156 insertions, 0 deletions
diff --git a/CMake/android.cmake b/CMake/android.cmake
new file mode 100644
index 000000000..23f20695b
--- /dev/null
+++ b/CMake/android.cmake
@@ -0,0 +1,156 @@
+#
+# "$Id$"
+#
+# CMakeLists.txt to build the FLTK project using CMake (www.cmake.org)
+# Written by Michael Surette
+#
+# Copyright 1998-2018 by Bill Spitzak and others.
+#
+# This library is free software. Distribution and use rights are outlined in
+# the file "COPYING" which should have been included with this file. If this
+# file is missing or damaged, see the license at:
+#
+# http://www.fltk.org/COPYING.php
+#
+# Please report all bugs and problems on the following page:
+#
+# http://www.fltk.org/str.php
+#
+
+#######################################################################
+# basic setup
+#######################################################################
+
+# The FLTK version
+set(FLTK_VERSION_MAJOR "1")
+set(FLTK_VERSION_MINOR "4")
+set(FLTK_VERSION_PATCH "0")
+set(FLTK_VERSION "${FLTK_VERSION_MAJOR}.${FLTK_VERSION_MINOR}")
+set(FLTK_VERSION_FULL "${FLTK_VERSION}.${FLTK_VERSION_PATCH}")
+
+set(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/bin)
+set(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/lib)
+set(ARCHIVE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/lib)
+
+# Search for modules in the FLTK source dir first
+set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMake")
+
+set(FLTK_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
+include_directories(${FLTK_INCLUDE_DIRS})
+
+# Remember root of FLTK source directory in case we're in a subdirectory.
+# Used for instance to find the source directory for doxygen docs
+set(FLTK_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
+
+# Setup install locations
+if(CMAKE_VERSION VERSION_GREATER 2.8.4)
+ # Use GNUInstallDirs if available.
+ include(GNUInstallDirs)
+else()
+ # Else set reasonable defaults.
+ set(CMAKE_INSTALL_BINDIR bin)
+ set(CMAKE_INSTALL_LIBDIR lib)
+ set(CMAKE_INSTALL_INCLUDEDIR include)
+ set(CMAKE_INSTALL_DATADIR share)
+ set(CMAKE_INSTALL_MANDIR share/man)
+endif(CMAKE_VERSION VERSION_GREATER 2.8.4)
+
+set(FLTK_BINDIR ${CMAKE_INSTALL_BINDIR} CACHE PATH
+ "Binary install path relative to CMAKE_INSTALL_PREFIX unless set to an absolute path.")
+set(FLTK_LIBDIR ${CMAKE_INSTALL_LIBDIR} CACHE PATH
+ "Library install path relative to CMAKE_INSTALL_PREFIX unless set to an absolute path.")
+set(FLTK_INCLUDEDIR ${CMAKE_INSTALL_INCLUDEDIR} CACHE PATH
+ "Public header install path relative to CMAKE_INSTALL_PREFIX unless set to an absolute path.")
+set(FLTK_DATADIR ${CMAKE_INSTALL_DATADIR} CACHE PATH
+ "Non-arch data install path relative to CMAKE_INSTALL_PREFIX unless set to an absolute path.")
+set(FLTK_MANDIR ${CMAKE_INSTALL_MANDIR} CACHE PATH
+ "Manual install path relative to CMAKE_INSTALL_PREFIX unless set to an absolute path.")
+set(FLTK_DOCDIR ${CMAKE_INSTALL_DATADIR}/doc CACHE PATH
+ "Non-arch doc install path relative to CMAKE_INSTALL_PREFIX unless set to an absolute path.")
+
+
+#######################################################################
+# platform dependent information
+#######################################################################
+
+# set where config files go
+if(WIN32 AND NOT CYGWIN)
+ set(FLTK_CONFIG_PATH CMake)
+elseif(APPLE AND NOT OPTION_APPLE_X11)
+ set(FLTK_CONFIG_PATH FLTK/.framework/Resources/CMake)
+else()
+ set(FLTK_CONFIG_PATH ${FLTK_DATADIR}/fltk)
+endif(WIN32 AND NOT CYGWIN)
+
+include(TestBigEndian)
+TEST_BIG_ENDIAN(WORDS_BIGENDIAN)
+
+if(APPLE)
+ set(HAVE_STRCASECMP 1)
+ set(HAVE_DIRENT_H 1)
+ set(HAVE_SNPRINTF 1)
+ set(HAVE_VSNPRINTF 1)
+ set(HAVE_SCANDIR 1)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated")
+ if(OPTION_APPLE_X11)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -U__APPLE__")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -U__APPLE__")
+ if(${CMAKE_SYSTEM_VERSION} VERSION_GREATER 16.9.0)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mmacosx-version-min=10.8")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mmacosx-version-min=10.8")
+ endif(${CMAKE_SYSTEM_VERSION} VERSION_GREATER 16.9.0)
+ elseif(OPTION_APPLE_SDL)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SDL2_INCLUDE_DIRS} -U__APPLE__")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${SDL2_INCLUDE_DIRS} -U__APPLE__")
+ else()
+ set(__APPLE_QUARTZ__ 1)
+ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework Cocoa")
+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -framework Cocoa")
+ endif(OPTION_APPLE_X11)
+endif(APPLE)
+
+if(WIN32)
+ # we do no longer define WIN32 or _WIN32 (since FLTK 1.4.0)
+ # ... but if we did, we'd define _WIN32 (since FLTK 1.4.0)
+ # add_definitions(-D_WIN32)
+ if(MSVC)
+ add_definitions(-DWIN32_LEAN_AND_MEAN)
+ add_definitions(-D_CRT_SECURE_NO_WARNINGS)
+ set(BORDER_WIDTH 2)
+ endif(MSVC)
+ if(CMAKE_C_COMPILER_ID STREQUAL GNU)
+ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-subsystem,windows")
+ endif(CMAKE_C_COMPILER_ID STREQUAL GNU)
+ if(MINGW AND EXISTS /mingw)
+ list(APPEND CMAKE_PREFIX_PATH /mingw)
+ endif(MINGW AND EXISTS /mingw)
+endif(WIN32)
+
+#######################################################################
+# size of ints
+include(CheckTypeSize)
+
+CHECK_TYPE_SIZE(short SIZEOF_SHORT)
+CHECK_TYPE_SIZE(int SIZEOF_INT)
+CHECK_TYPE_SIZE(long SIZEOF_LONG)
+CHECK_TYPE_SIZE("long long" HAVE_LONG_LONG)
+
+if(${SIZEOF_SHORT} MATCHES "^2$")
+ set(U16 "unsigned short")
+endif(${SIZEOF_SHORT} MATCHES "^2$")
+
+if(${SIZEOF_INT} MATCHES "^4$")
+ set(U32 "unsigned")
+else()
+ if(${SIZEOF_LONG} MATCHES "^4$")
+ set(U32 "unsigned long")
+ endif(${SIZEOF_LONG} MATCHES "^4$")
+endif(${SIZEOF_INT} MATCHES "^4$")
+
+if(${SIZEOF_INT} MATCHES "^8$")
+ set(U64 "unsigned")
+else()
+ if(${SIZEOF_LONG} MATCHES "^8$")
+ set(U64 "unsigned long")
+ endif(${SIZEOF_LONG} MATCHES "^8$")
+endif(${SIZEOF_INT} MATCHES "^8$")