diff options
| author | Matthias Melcher <git@matthiasm.com> | 2019-01-17 00:49:44 +0100 |
|---|---|---|
| committer | Matthias Melcher <git@matthiasm.com> | 2019-01-17 00:49:44 +0100 |
| commit | 111985665d8ae08437d3c9d61c7975ad69c6d099 (patch) | |
| tree | fa4e90f68b371d3a00b6330b50fd86fd8c33a064 /CMake | |
| parent | 563baced13e4961500dccd35b19e9b063c93dc9c (diff) | |
Andoird CMake: trying to autocreate Fluid files
Diffstat (limited to 'CMake')
| -rw-r--r-- | CMake/Android/CMakeList.txt.in | 10 | ||||
| -rw-r--r-- | CMake/android.cmake | 32 |
2 files changed, 39 insertions, 3 deletions
diff --git a/CMake/Android/CMakeList.txt.in b/CMake/Android/CMakeList.txt.in index 48f8b07f0..aaa992d95 100644 --- a/CMake/Android/CMakeList.txt.in +++ b/CMake/Android/CMakeList.txt.in @@ -26,17 +26,23 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") # instead of the fltk symlink, which is bad for SVN add_subdirectory(${FLTK_DIR}/ "${CMAKE_CURRENT_BINARY_DIR}/lib" EXCLUDE_FROM_ALL) +# run FLuid commands if any +@ANDROID_FLUID_COMMANDS@ + +# copy source files +@ANDROID_APP_COPY_SOURCES@ + # now build app's shared lib add_library( test_@ANDROID_APP_NAME@ SHARED - HelloAndroid.cxx) +@ANDROID_APP_SOURCES@) target_include_directories( test_@ANDROID_APP_NAME@ PRIVATE ${FLTK_DIR}/ ${FLTK_IDE_DIR}/ ) -# Export ANativeActivity_onCreate(),
+# Export ANativeActivity_onCreate() # Refer to: https://github.com/android-ndk/ndk/issues/381. set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -u ANativeActivity_onCreate") diff --git a/CMake/android.cmake b/CMake/android.cmake index 267210553..7a8064a05 100644 --- a/CMake/android.cmake +++ b/CMake/android.cmake @@ -100,8 +100,39 @@ configure_file( macro(CREATE_ANDROID_IDE_FOR_TEST NAME SOURCES LIBRARIES) message(STATUS "Creating Android IDE for ${NAME}") + set (ANDROID_APP_NAME ${NAME}) + set (srcs) + set (ANDROID_APP_SOURCES) + set (ANDROID_APP_COPY_SOURCES) + set (ANDROID_FLUID_COMMANDS) + set (flsrcs) # fluid source files + foreach(src ${SOURCES}) + if ("${src}" MATCHES "\\.fl$") + list(APPEND flsrcs ${src}) + string(REGEX REPLACE "(.*).fl" \\1 basename ${src}) + string(APPEND ANDROID_FLUID_COMMANDS + "add_custom_command( OUTPUT \"${basename}.cxx\" \"${basename}.h\"\n" + " OUTPUT \"${basename}.cxx\" \"${basename}.h\"\n" + " COMMAND fluid -c \"\${CMAKE_CURRENT_SOURCE_DIR}/${src}\"\n" + " DEPENDS ${src}\n" + " MAIN_DEPENDENCY ${src}\n" + ")\n\n" + ) + set(src_cxx ${basename}.cxx) + else () + list(APPEND srcs ${src}) + set(src_cxx ${src}) + endif ("${src}" MATCHES "\\.fl$") + file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/AndroidStudio/${ANDROID_APP_NAME}/src/main/cpp/") + # FIXME: Unix only for older version of CMake + execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink + "${CMAKE_CURRENT_SOURCE_DIR}/${src}" + "${CMAKE_BINARY_DIR}/AndroidStudio/${ANDROID_APP_NAME}/src/main/cpp/${src}") + string(APPEND ANDROID_APP_SOURCES " ${src_cxx}\n") + endforeach(src) + configure_file( "${CMAKE_SOURCE_DIR}/CMake/Android/app.build.gradle.in" "${CMAKE_BINARY_DIR}/AndroidStudio/${ANDROID_APP_NAME}/build.gradle" @@ -114,7 +145,6 @@ macro(CREATE_ANDROID_IDE_FOR_TEST NAME SOURCES LIBRARIES) @ONLY ) - configure_file( "${CMAKE_SOURCE_DIR}/CMake/Android/Roboto-Regular.ttf" "${CMAKE_BINARY_DIR}/AndroidStudio/${ANDROID_APP_NAME}/src/main/assets/fonts/Roboto-Regular.ttf" |
