diff --git a/cmake/modules/AppTarget.cmake b/cmake/modules/AppTarget.cmake index 3bbe57f..a38a6b2 100644 --- a/cmake/modules/AppTarget.cmake +++ b/cmake/modules/AppTarget.cmake @@ -40,7 +40,12 @@ if(NOT BUILTIN_TRANSLATIONS) endif() # add target for building the application -add_executable(${TARGET_PREFIX}${META_PROJECT_NAME}${TARGET_SUFFIX} ${GUI_TYPE} ${ALL_FILES}) +if (NOT ANDROID) + add_executable(${TARGET_PREFIX}${META_PROJECT_NAME}${TARGET_SUFFIX} ${GUI_TYPE} ${ALL_FILES}) +else() + # create a library which can be loaded from the Java-side + add_library(${TARGET_PREFIX}${META_PROJECT_NAME}${TARGET_SUFFIX} SHARED ${GUI_TYPE} ${ALL_FILES}) +endif() target_link_libraries(${TARGET_PREFIX}${META_PROJECT_NAME}${TARGET_SUFFIX} PUBLIC ${ACTUAL_ADDITIONAL_LINK_FLAGS} "${PUBLIC_LIBRARIES}" PRIVATE "${PRIVATE_LIBRARIES}" @@ -77,6 +82,16 @@ if(NOT META_NO_INSTALL_TARGETS AND ENABLE_INSTALL_TARGETS) BUNDLE DESTINATION "${BUNDLE_INSTALL_DESTINATION}" COMPONENT binary ) + elseif(ANDROID) + install( + TARGETS ${TARGET_PREFIX}${META_PROJECT_NAME}${TARGET_SUFFIX} + RUNTIME DESTINATION bin + COMPONENT binary + LIBRARY DESTINATION lib${SELECTED_LIB_SUFFIX} + COMPONENT binary + ARCHIVE DESTINATION lib${SELECTED_LIB_SUFFIX} + COMPONENT binary + ) else() install(TARGETS ${TARGET_PREFIX}${META_PROJECT_NAME}${TARGET_SUFFIX} RUNTIME DESTINATION bin diff --git a/cmake/modules/BasicConfig.cmake b/cmake/modules/BasicConfig.cmake index 56d54a6..a1040fd 100644 --- a/cmake/modules/BasicConfig.cmake +++ b/cmake/modules/BasicConfig.cmake @@ -90,9 +90,7 @@ if(HAS_PARENT) set(${META_PROJECT_VARNAME_UPPER}_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}" PARENT_SCOPE) set(${META_PROJECT_VARNAME_UPPER}_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}" PARENT_SCOPE) set(${META_PROJECT_NAME}_DIR "${CMAKE_CURRENT_BINARY_DIR}" PARENT_SCOPE) - if(CMAKE_FIND_ROOT_PATH AND MINGW) - set(RUNTIME_LIBRARY_PATH "${CMAKE_CURRENT_BINARY_DIR}" ${RUNTIME_LIBRARY_PATH} PARENT_SCOPE) - endif() + set(RUNTIME_LIBRARY_PATH "${CMAKE_CURRENT_BINARY_DIR}" ${RUNTIME_LIBRARY_PATH} PARENT_SCOPE) endif() # determine version @@ -257,6 +255,8 @@ if(EXISTS "${CLANG_FORMAT_RULES}") COMMAND "${CMAKE_COMMAND}" -E create_symlink "${CLANG_FORMAT_RULES}" "${CMAKE_CURRENT_SOURCE_DIR}/.clang-format" COMMENT "Linking coding style from ${CLANG_FORMAT_RULES}" ) +else() + message(WARNING "Format rules for clang-format not found.") endif() # add target for tidying with clang-format @@ -428,4 +428,16 @@ if(NOT META_NO_INSTALL_TARGETS AND ENABLE_INSTALL_TARGETS) endif() endif() +# determine library directory suffix +# note: Applications might be built as libraries under some platforms (eg. Android). Hence this is part of BasicConfig and not LibraryConfig. +set(LIB_SUFFIX "" CACHE STRING "specifies the general suffix for the library directory") +set(SELECTED_LIB_SUFFIX "${LIB_SUFFIX}") +set(LIB_SUFFIX_32 "" CACHE STRING "specifies the suffix for the library directory to be used when building 32-bit library") +set(LIB_SUFFIX_64 "" CACHE STRING "specifies the suffix for the library directory to be used when building 64-bit library") +if(LIB_SUFFIX_64 AND CMAKE_SIZEOF_VOID_P MATCHES "8") + set(SELECTED_LIB_SUFFIX "${LIB_SUFFIX_64}") +elseif(LIB_SUFFIX_32 AND CMAKE_SIZEOF_VOID_P MATCHES "4") + set(SELECTED_LIB_SUFFIX "${LIB_SUFFIX_32}") +endif() + set(BASIC_PROJECT_CONFIG_DONE YES) diff --git a/cmake/modules/LibraryTarget.cmake b/cmake/modules/LibraryTarget.cmake index 34105f4..6e96944 100644 --- a/cmake/modules/LibraryTarget.cmake +++ b/cmake/modules/LibraryTarget.cmake @@ -19,17 +19,6 @@ endif() include(CMakePackageConfigHelpers) include(TemplateFinder) -# determine library directory suffix -set(LIB_SUFFIX "" CACHE STRING "specifies the general suffix for the library directory") -set(SELECTED_LIB_SUFFIX "${LIB_SUFFIX}") -set(LIB_SUFFIX_32 "" CACHE STRING "specifies the suffix for the library directory to be used when building 32-bit library") -set(LIB_SUFFIX_64 "" CACHE STRING "specifies the suffix for the library directory to be used when building 64-bit library") -if(LIB_SUFFIX_64 AND CMAKE_SIZEOF_VOID_P MATCHES "8") - set(SELECTED_LIB_SUFFIX "${LIB_SUFFIX_64}") -elseif(LIB_SUFFIX_32 AND CMAKE_SIZEOF_VOID_P MATCHES "4") - set(SELECTED_LIB_SUFFIX "${LIB_SUFFIX_32}") -endif() - # set install destination for the CMake modules, config files and header files set(HEADER_INSTALL_DESTINATION "${CMAKE_INSTALL_PREFIX}/include") set(BIN_INSTALL_DESTINATION "${CMAKE_INSTALL_PREFIX}/bin")