Simple Directmedia Layer

cmake: create and install SDL3::Jar target for Android

+16 -2
CMakeLists.txt
··· 1350 1350 VERSION "${SDL3_VERSION}" 1351 1351 ) 1352 1352 set_property(TARGET SDL3-jar PROPERTY OUTPUT "${SDL3_BINARY_DIR}/SDL3-${SDL3_VERSION}.jar") 1353 + add_library(SDL3__Jar INTERFACE) 1354 + add_library(SDL3::Jar ALIAS SDL3__Jar) 1355 + get_property(sdl3_jar_location TARGET SDL3-jar PROPERTY JAR_FILE) 1356 + set_property(TARGET SDL3__Jar PROPERTY JAR_FILE "${sdl3_jar_location}") 1353 1357 set(javasourcesjar "${SDL3_BINARY_DIR}/SDL3-${SDL3_VERSION}-sources.jar") 1354 1358 string(REGEX REPLACE "${android_java_sources_root}/" "" sdl_relative_java_sources "${SDL_JAVA_SOURCES}") 1355 1359 add_custom_command( ··· 3292 3296 3293 3297 include(CMakePackageConfigHelpers) 3294 3298 configure_package_config_file(cmake/SDL3Config.cmake.in SDL3Config.cmake 3299 + NO_SET_AND_CHECK_MACRO 3295 3300 PATH_VARS CMAKE_INSTALL_PREFIX 3296 3301 INSTALL_DESTINATION "${SDL_SDL_INSTALL_CMAKEDIR}" 3297 3302 ) ··· 3421 3426 endif() 3422 3427 3423 3428 if(ANDROID) 3424 - set(SDL_INSTALL_JAVADIR "${CMAKE_INSTALL_DATAROOTDIR}/java" CACHE PATH "Path where to install java clases + java sources") 3425 3429 if(TARGET SDL3-jar) 3426 - install(FILES "${SDL3_BINARY_DIR}/SDL3.jar" "${SDL3_BINARY_DIR}/SDL3-${SDL3_VERSION}.jar" 3430 + set(SDL_INSTALL_JAVADIR "${CMAKE_INSTALL_DATAROOTDIR}/java" CACHE PATH "Path where to install java clases + java sources") 3431 + install(FILES $<TARGET_PROPERTY:SDL3-jar,INSTALL_FILES> 3427 3432 DESTINATION "${SDL_INSTALL_JAVADIR}/SDL3") 3433 + configure_package_config_file(cmake/SDL3jarTargets.cmake.in SDL3jarTargets.cmake 3434 + INSTALL_DESTINATION "${SDL_SDL_INSTALL_CMAKEDIR}" 3435 + PATH_VARS SDL_INSTALL_JAVADIR 3436 + NO_CHECK_REQUIRED_COMPONENTS_MACRO 3437 + INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}" 3438 + ) 3439 + install(FILES "${CMAKE_CURRENT_BINARY_DIR}/SDL3jarTargets.cmake" 3440 + DESTINATION "${SDL_SDL_INSTALL_CMAKEDIR}" 3441 + ) 3428 3442 endif() 3429 3443 if(TARGET SDL3-javasources) 3430 3444 install(FILES "${SDL3_BINARY_DIR}/SDL3-${SDL3_VERSION}-sources.jar"
+5
cmake/SDL3Config.cmake.in
··· 48 48 endif() 49 49 endif() 50 50 51 + if(ANDROID AND EXISTS "${CMAKE_CURRENT_LIST_DIR}/SDL3jarTargets.cmake") 52 + include("${CMAKE_CURRENT_LIST_DIR}/SDL3jarTargets.cmake") 53 + set(SDL3_Jar_FOUND TRUE) 54 + endif() 55 + 51 56 if(SDL3_SDL3-shared_FOUND OR SDL3_SDL3-static_FOUND) 52 57 set(SDL3_SDL3_FOUND TRUE) 53 58 endif()
+10
cmake/SDL3jarTargets.cmake.in
··· 1 + @PACKAGE_INIT@ 2 + 3 + set_and_check(SDL3_JAR "@PACKAGE_SDL_INSTALL_JAVADIR@/SDL3/SDL3-@SDL3_VERSION@.jar") 4 + 5 + if(NOT TARGET SDL3::Jar) 6 + add_library(SDL3::Jar INTERFACE IMPORTED) 7 + set_property(TARGET SDL3::Jar PROPERTY JAR_FILE "${SDL3_JAR}") 8 + endif() 9 + 10 + unset(SDL3_JAR)
+4
cmake/test/CMakeLists.txt
··· 93 93 add_executable(gui-whatever WIN32 main_gui.c) 94 94 target_link_libraries(gui-whatever PRIVATE SDL3::SDL3) 95 95 96 + if(ANDROID) 97 + find_package(SDL3 REQUIRED CONFIG COMPONENTS Jar) 98 + endif() 99 + 96 100 feature_summary(WHAT ALL)
+7 -7
test/CMakeLists.txt
··· 583 583 ) 584 584 endif() 585 585 586 - if(ANDROID AND TARGET SDL3-jar) 586 + if(ANDROID AND TARGET SDL3::Jar) 587 587 list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/../cmake/android") 588 588 find_package(SdlAndroid MODULE) 589 589 if(SdlAndroid_FOUND) ··· 640 640 COMMAND ${CMAKE_COMMAND} -E make_directory "${classes_path}" 641 641 COMMAND ${Java_JAVAC_EXECUTABLE} 642 642 -source 1.8 -target 1.8 643 - -bootclasspath "$<TARGET_PROPERTY:SDL3-jar,OUTPUT>" 643 + -bootclasspath "$<TARGET_PROPERTY:SDL3::Jar,JAR_FILE>" 644 644 "${JAVA_PACKAGE_DIR}/SDLEntryTestActivity.java" 645 645 "${JAVA_PACKAGE_DIR}/SDLTestActivity.java" 646 646 $<TARGET_PROPERTY:${TEST}-apk-linked,JAVA_R> 647 - -cp "$<TARGET_PROPERTY:SDL3-jar,OUTPUT>:${path_android_jar}" 647 + -cp "$<TARGET_PROPERTY:SDL3::Jar,JAR_FILE>:${SDL_ANDROID_PLATFORM_ANDROID_JAR}" 648 648 -d "${classes_path}" 649 649 COMMAND ${Java_JAR_EXECUTABLE} cf "${OUT_JAR}" -C "${classes_path}" . 650 - DEPENDS $<TARGET_PROPERTY:${TEST}-apk-linked,OUTPUTS> "$<TARGET_PROPERTY:SDL3-jar,OUTPUT>" "${JAVA_PACKAGE_DIR}/SDLTestActivity.java" "${JAVA_PACKAGE_DIR}/SDLEntryTestActivity.java" 650 + DEPENDS $<TARGET_PROPERTY:${TEST}-apk-linked,OUTPUTS> "$<TARGET_PROPERTY:SDL3::Jar,JAR_FILE>" "${JAVA_PACKAGE_DIR}/SDLTestActivity.java" "${JAVA_PACKAGE_DIR}/SDLEntryTestActivity.java" 651 651 ) 652 652 add_custom_target(${TEST}-jar DEPENDS "${OUT_JAR}") 653 653 set_property(TARGET ${TEST}-jar PROPERTY OUTPUT "${OUT_JAR}") ··· 663 663 OUTPUT "${classes_dex}" 664 664 COMMAND SdlAndroid::d8 665 665 $<TARGET_PROPERTY:${TEST}-jar,OUTPUT> 666 - $<TARGET_PROPERTY:SDL3-jar,OUTPUT> 667 - --lib "${path_android_jar}" 666 + $<TARGET_PROPERTY:SDL3::Jar,JAR_FILE> 667 + --lib "${SDL_ANDROID_PLATFORM_ANDROID_JAR}" 668 668 --output "${dexworkdir}" 669 - DEPENDS $<TARGET_PROPERTY:${TEST}-jar,OUTPUT> $<TARGET_PROPERTY:SDL3-jar,OUTPUT> 669 + DEPENDS $<TARGET_PROPERTY:${TEST}-jar,OUTPUT> $<TARGET_PROPERTY:SDL3::Jar,JAR_FILE> 670 670 ) 671 671 add_custom_target(${TEST}-dex DEPENDS "${classes_dex}") 672 672 set_property(TARGET ${TEST}-dex PROPERTY OUTPUT "${classes_dex}")