summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Melcher <fltk@matthiasm.com>2018-03-02 17:36:15 +0000
committerMatthias Melcher <fltk@matthiasm.com>2018-03-02 17:36:15 +0000
commitb2da1fcbaf0b0eebfbc29f22bf47e59a7ee0168e (patch)
tree8947801af5996b6d168e211cc55d2c3c9278546a
parentca98f4b70cca757d59e36512c6db9a82287d7ac4 (diff)
Fixing Android CMake files
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12698 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
-rw-r--r--Android/HelloAndroid/app/build.gradle2
-rw-r--r--Android/HelloAndroid/app/src/main/AndroidManifest.xml4
-rw-r--r--Android/HelloAndroid/app/src/main/cpp/CMakeLists.txt166
3 files changed, 161 insertions, 11 deletions
diff --git a/Android/HelloAndroid/app/build.gradle b/Android/HelloAndroid/app/build.gradle
index 07dc4f5a8..dbe9d3dc9 100644
--- a/Android/HelloAndroid/app/build.gradle
+++ b/Android/HelloAndroid/app/build.gradle
@@ -4,7 +4,7 @@ apply plugin: 'com.android.application'
compileSdkVersion 25
defaultConfig {
- applicationId 'com.example.native_plasma'
+ applicationId 'org.fltk.android_hello'
minSdkVersion 14
targetSdkVersion 25
}
diff --git a/Android/HelloAndroid/app/src/main/AndroidManifest.xml b/Android/HelloAndroid/app/src/main/AndroidManifest.xml
index 4f59330b9..e0131f422 100644
--- a/Android/HelloAndroid/app/src/main/AndroidManifest.xml
+++ b/Android/HelloAndroid/app/src/main/AndroidManifest.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.example.native_plasma"
+ package="org.fltk.android_hello"
android:versionCode="1"
android:versionName="1.0">
<application
@@ -12,7 +12,7 @@
<activity android:name="android.app.NativeActivity"
android:label="@string/app_name">
<meta-data android:name="android.app.lib_name"
- android:value="native-plasma" />
+ android:value="android-hello" />
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
diff --git a/Android/HelloAndroid/app/src/main/cpp/CMakeLists.txt b/Android/HelloAndroid/app/src/main/cpp/CMakeLists.txt
index 6ae5fa3c2..658e59c9f 100644
--- a/Android/HelloAndroid/app/src/main/cpp/CMakeLists.txt
+++ b/Android/HelloAndroid/app/src/main/cpp/CMakeLists.txt
@@ -16,16 +16,166 @@
cmake_minimum_required(VERSION 3.4.1)
-# FIXME: add as a second argument the binary build dir
-# so that the first argument can link directly to FLTK
-# instead of the fltk symlink, which is bad for SVN
-add_subdirectory(fltk)
+# ------------------------- Begin Generic CMake Variable Logging ------------------
+
+# /* C++ comment style not allowed */
+
+
+# if you are building in-source, this is the same as CMAKE_SOURCE_DIR, otherwise
+# this is the top level directory of your build tree
+MESSAGE( STATUS "CMAKE_BINARY_DIR: " ${CMAKE_BINARY_DIR} )
+
+# if you are building in-source, this is the same as CMAKE_CURRENT_SOURCE_DIR, otherwise this
+# is the directory where the compiled or generated files from the current CMakeLists.txt will go to
+MESSAGE( STATUS "CMAKE_CURRENT_BINARY_DIR: " ${CMAKE_CURRENT_BINARY_DIR} )
+
+# this is the directory, from which cmake was started, i.e. the top level source directory
+MESSAGE( STATUS "CMAKE_SOURCE_DIR: " ${CMAKE_SOURCE_DIR} )
+
+# this is the directory where the currently processed CMakeLists.txt is located in
+MESSAGE( STATUS "CMAKE_CURRENT_SOURCE_DIR: " ${CMAKE_CURRENT_SOURCE_DIR} )
+
+# contains the full path to the top level directory of your build tree
+MESSAGE( STATUS "PROJECT_BINARY_DIR: " ${PROJECT_BINARY_DIR} )
+
+# contains the full path to the root of your project source directory,
+# i.e. to the nearest directory where CMakeLists.txt contains the PROJECT() command
+MESSAGE( STATUS "PROJECT_SOURCE_DIR: " ${PROJECT_SOURCE_DIR} )
+
+# set this variable to specify a common place where CMake should put all executable files
+# (instead of CMAKE_CURRENT_BINARY_DIR)
+MESSAGE( STATUS "EXECUTABLE_OUTPUT_PATH: " ${EXECUTABLE_OUTPUT_PATH} )
+
+# set this variable to specify a common place where CMake should put all libraries
+# (instead of CMAKE_CURRENT_BINARY_DIR)
+MESSAGE( STATUS "LIBRARY_OUTPUT_PATH: " ${LIBRARY_OUTPUT_PATH} )
+
+# tell CMake to search first in directories listed in CMAKE_MODULE_PATH
+# when you use FIND_PACKAGE() or INCLUDE()
+MESSAGE( STATUS "CMAKE_MODULE_PATH: " ${CMAKE_MODULE_PATH} )
+
+# this is the complete path of the cmake which runs currently (e.g. /usr/local/bin/cmake)
+MESSAGE( STATUS "CMAKE_COMMAND: " ${CMAKE_COMMAND} )
+
+# this is the CMake installation directory
+MESSAGE( STATUS "CMAKE_ROOT: " ${CMAKE_ROOT} )
+
+# this is the filename including the complete path of the file where this variable is used.
+MESSAGE( STATUS "CMAKE_CURRENT_LIST_FILE: " ${CMAKE_CURRENT_LIST_FILE} )
+
+# this is linenumber where the variable is used
+MESSAGE( STATUS "CMAKE_CURRENT_LIST_LINE: " ${CMAKE_CURRENT_LIST_LINE} )
+
+# this is used when searching for include files e.g. using the FIND_PATH() command.
+MESSAGE( STATUS "CMAKE_INCLUDE_PATH: " ${CMAKE_INCLUDE_PATH} )
+
+# this is used when searching for libraries e.g. using the FIND_LIBRARY() command.
+MESSAGE( STATUS "CMAKE_LIBRARY_PATH: " ${CMAKE_LIBRARY_PATH} )
+
+# the complete system name, e.g. "Linux-2.4.22", "FreeBSD-5.4-RELEASE" or "Windows 5.1"
+MESSAGE( STATUS "CMAKE_SYSTEM: " ${CMAKE_SYSTEM} )
+
+# the short system name, e.g. "Linux", "FreeBSD" or "Windows"
+MESSAGE( STATUS "CMAKE_SYSTEM_NAME: " ${CMAKE_SYSTEM_NAME} )
+
+# only the version part of CMAKE_SYSTEM
+MESSAGE( STATUS "CMAKE_SYSTEM_VERSION: " ${CMAKE_SYSTEM_VERSION} )
+
+# the processor name (e.g. "Intel(R) Pentium(R) M processor 2.00GHz")
+MESSAGE( STATUS "CMAKE_SYSTEM_PROCESSOR: " ${CMAKE_SYSTEM_PROCESSOR} )
+
+# is TRUE on all UNIX-like OS's, including Apple OS X and CygWin
+MESSAGE( STATUS "UNIX: " ${UNIX} )
+
+# is TRUE on Windows, including CygWin
+MESSAGE( STATUS "WIN32: " ${WIN32} )
+
+# is TRUE on Apple OS X
+MESSAGE( STATUS "APPLE: " ${APPLE} )
+
+# is TRUE when using the MinGW compiler in Windows
+MESSAGE( STATUS "MINGW: " ${MINGW} )
+
+# is TRUE on Windows when using the CygWin version of cmake
+MESSAGE( STATUS "CYGWIN: " ${CYGWIN} )
+
+# is TRUE on Windows when using a Borland compiler
+MESSAGE( STATUS "BORLAND: " ${BORLAND} )
+
+# Microsoft compiler
+MESSAGE( STATUS "MSVC: " ${MSVC} )
+MESSAGE( STATUS "MSVC_IDE: " ${MSVC_IDE} )
+MESSAGE( STATUS "MSVC60: " ${MSVC60} )
+MESSAGE( STATUS "MSVC70: " ${MSVC70} )
+MESSAGE( STATUS "MSVC71: " ${MSVC71} )
+MESSAGE( STATUS "MSVC80: " ${MSVC80} )
+MESSAGE( STATUS "CMAKE_COMPILER_2005: " ${CMAKE_COMPILER_2005} )
+
+
+# set this to true if you don't want to rebuild the object files if the rules have changed,
+# but not the actual source files or headers (e.g. if you changed the some compiler switches)
+MESSAGE( STATUS "CMAKE_SKIP_RULE_DEPENDENCY: " ${CMAKE_SKIP_RULE_DEPENDENCY} )
+
+# since CMake 2.1 the install rule depends on all, i.e. everything will be built before installing.
+# If you don't like this, set this one to true.
+MESSAGE( STATUS "CMAKE_SKIP_INSTALL_ALL_DEPENDENCY: " ${CMAKE_SKIP_INSTALL_ALL_DEPENDENCY} )
+
+# If set, runtime paths are not added when using shared libraries. Default it is set to OFF
+MESSAGE( STATUS "CMAKE_SKIP_RPATH: " ${CMAKE_SKIP_RPATH} )
+
+# set this to true if you are using makefiles and want to see the full compile and link
+# commands instead of only the shortened ones
+MESSAGE( STATUS "CMAKE_VERBOSE_MAKEFILE: " ${CMAKE_VERBOSE_MAKEFILE} )
+
+# this will cause CMake to not put in the rules that re-run CMake. This might be useful if
+# you want to use the generated build files on another machine.
+MESSAGE( STATUS "CMAKE_SUPPRESS_REGENERATION: " ${CMAKE_SUPPRESS_REGENERATION} )
+
+
+# A simple way to get switches to the compiler is to use ADD_DEFINITIONS().
+# But there are also two variables exactly for this purpose:
+
+# the compiler flags for compiling C sources
+MESSAGE( STATUS "CMAKE_C_FLAGS: " ${CMAKE_C_FLAGS} )
+
+# the compiler flags for compiling C++ sources
+MESSAGE( STATUS "CMAKE_CXX_FLAGS: " ${CMAKE_CXX_FLAGS} )
+
+
+# Choose the type of build. Example: SET(CMAKE_BUILD_TYPE Debug)
+MESSAGE( STATUS "CMAKE_BUILD_TYPE: " ${CMAKE_BUILD_TYPE} )
+
+# if this is set to ON, then all libraries are built as shared libraries by default.
+MESSAGE( STATUS "BUILD_SHARED_LIBS: " ${BUILD_SHARED_LIBS} )
+
+# the compiler used for C files
+MESSAGE( STATUS "CMAKE_C_COMPILER: " ${CMAKE_C_COMPILER} )
+
+# the compiler used for C++ files
+MESSAGE( STATUS "CMAKE_CXX_COMPILER: " ${CMAKE_CXX_COMPILER} )
+
+# if the compiler is a variant of gcc, this should be set to 1
+MESSAGE( STATUS "CMAKE_COMPILER_IS_GNUCC: " ${CMAKE_COMPILER_IS_GNUCC} )
+
+# if the compiler is a variant of g++, this should be set to 1
+MESSAGE( STATUS "CMAKE_COMPILER_IS_GNUCXX : " ${CMAKE_COMPILER_IS_GNUCXX} )
+
+# the tools for creating libraries
+MESSAGE( STATUS "CMAKE_AR: " ${CMAKE_AR} )
+MESSAGE( STATUS "CMAKE_RANLIB: " ${CMAKE_RANLIB} )
+
+#
+#MESSAGE( STATUS ": " ${} )
+
+# ------------------------- End of Generic CMake Variable Logging ------------------
+
+add_subdirectory(fltk, fltk.build)
# now build app's shared lib
-add_library(native-plasma SHARED
- plasma.cxx)
+add_library(android-hello SHARED
+ HelloAndroid.cxx)
-target_include_directories(native-plasma PRIVATE
+target_include_directories(android-hello PRIVATE
/Users/matt/dev/fltk-1.4.svn
/Users/matt/dev/fltk-1.4.svn/Android)
@@ -35,7 +185,7 @@ set(CMAKE_SHARED_LINKER_FLAGS
"${CMAKE_SHARED_LINKER_FLAGS} -u ANativeActivity_onCreate")
# add lib dependencies
-target_link_libraries(native-plasma
+target_link_libraries(android-hello
fltk
android
log