@@ -7,19 +7,6 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/../cmake")
77include (CheckIncludeFile)
88include (CheckStructHasMember)
99include (CMakePushCheckState)
10- # !!! FIXME: @madebr, do we need this, or was this only needed in SDL itself?
11- #include(sdlcompilers)
12-
13- set (SDLMIXER_EXAMPLES_LINK_SHARED On ) # !!! FIXME: save me, @madebr, this needs plumbing through the main cmake file.
14-
15- if (SDLMIXER_EXAMPLES_LINK_SHARED)
16- set (sdl_name_component SDL3-shared)
17- set (sdlmixer_name_component SDL3_mixer-shared)
18- else ()
19- set (sdl_name_component SDL3-static )
20- set (sdlmixer_name_component SDL3_mixer-static )
21- endif ()
22- set (HAVE_EXAMPLES_LINK_SHARED "${SDLMIXER_EXAMPLES_LINK_SHARED} " PARENT_SCOPE)
2310
2411set (SDLMIXER_EXAMPLE_EXECUTABLES)
2512
@@ -54,6 +41,8 @@ add_custom_target(copy-sdlmixer-example-resources
5441 DEPENDS "${RESOURCE_FILES_BINDIR} "
5542)
5643
44+ set (SDLMIXER_EXAMPLE_EXECUTABLES)
45+
5746macro (add_sdlmixer_example_executable TARGET )
5847 cmake_parse_arguments (AST "BUILD_DEPENDENT" "" "SOURCES;DATAFILES" ${ARGN} )
5948 if (AST_UNPARSED_ARGUMENTS)
@@ -68,9 +57,6 @@ macro(add_sdlmixer_example_executable TARGET)
6857 add_executable (${TARGET} ${AST_SOURCES} ${AST_DATAFILES} )
6958 endif ()
7059
71- # !!! FIXME: @madebr, do we need this, or was this only needed in SDL itself?
72- #SDL_AddCommonCompilerFlags(${TARGET})
73-
7460 target_compile_definitions (${TARGET}
7561 PRIVATE
7662 $<TARGET_PROPERTY:${sdl3_mixer_target_name} ,COMPILE_DEFINITIONS >
@@ -79,7 +65,7 @@ macro(add_sdlmixer_example_executable TARGET)
7965
8066 target_link_libraries (${TARGET} PRIVATE SDL3_mixer::SDL3_mixer SDL3::SDL3)
8167
82- list (APPEND SDL_EXAMPLE_EXECUTABLES ${TARGET} )
68+ list (APPEND SDLMIXER_EXAMPLE_EXECUTABLES ${TARGET} )
8369 if (AST_DATAFILES)
8470 if (PSP OR PS2)
8571 add_custom_command (TARGET ${TARGET} POST_BUILD
@@ -160,7 +146,7 @@ add_sdlmixer_example_executable(basics-seeking SOURCES basics/06-seeking/seeking
160146
161147if (PSP)
162148 # Build EBOOT files if building for PSP
163- foreach (APP ${SDL_EXAMPLE_EXECUTABLES } )
149+ foreach (APP ${SDLMIXER_EXAMPLE_EXECUTABLES } )
164150 create_pbp_file(
165151 TARGET ${APP}
166152 TITLE SDL-${APP}
@@ -174,7 +160,7 @@ endif()
174160
175161if (RISCOS)
176162 set (SDL_EXAMPLE_EXECUTABLES_AIF)
177- foreach (APP ${SDL_EXAMPLE_EXECUTABLES } )
163+ foreach (APP ${SDLMIXER_EXAMPLE_EXECUTABLES } )
178164 set_property (TARGET ${APP} APPEND_STRING PROPERTY LINK_FLAGS " -static" )
179165 add_custom_command (
180166 OUTPUT ${APP} ,ff8
@@ -186,160 +172,25 @@ if(RISCOS)
186172 endforeach ()
187173endif ()
188174
189- if (SDL_INSTALL_EXAMPLES )
175+ if (SDLMIXER_EXAMPLES_INSTALL )
190176 if (RISCOS)
191177 install (
192178 FILES ${SDL_EXAMPLE_EXECUTABLES_AIF}
193- DESTINATION ${CMAKE_INSTALL_LIBEXECDIR} /installed-examples/SDL3
179+ DESTINATION ${CMAKE_INSTALL_LIBEXECDIR} /installed-examples/SDL3_mixer
194180 )
195181 else ()
196182 install (
197- TARGETS ${SDL_EXAMPLE_EXECUTABLES }
198- DESTINATION ${CMAKE_INSTALL_LIBEXECDIR} /installed-examples/SDL3
183+ TARGETS ${SDLMIXER_EXAMPLE_EXECUTABLES }
184+ DESTINATION ${CMAKE_INSTALL_LIBEXECDIR} /installed-examples/SDL3_mixer
199185 )
200186 endif ()
201187 if (MSVC )
202- foreach (example IN LISTS SDL_EXAMPLE_EXECUTABLES )
203- SDL_install_pdb(${example} "${CMAKE_INSTALL_LIBEXECDIR} /installed-examples/SDL3 " )
188+ foreach (example IN LISTS SDLMIXER_EXAMPLE_EXECUTABLES )
189+ SDL_install_pdb(${example} "${CMAKE_INSTALL_LIBEXECDIR} /installed-examples/SDL3_mixer " )
204190 endforeach ()
205191 endif ()
206192 install (
207193 FILES ${RESOURCE_FILES}
208- DESTINATION ${CMAKE_INSTALL_LIBEXECDIR} /installed-examples/SDL3
194+ DESTINATION ${CMAKE_INSTALL_LIBEXECDIR} /installed-examples/SDL3_mixer
209195 )
210196endif ()
211-
212- if (ANDROID AND TARGET SDL3::Jar)
213- list (APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR} /../cmake/android" )
214- find_package (SdlAndroid MODULE)
215- if (SdlAndroid_FOUND)
216- set (apks "" )
217- set (packages "" )
218-
219- include (SdlAndroidFunctions)
220- sdl_create_android_debug_keystore(SDL_example-debug-keystore)
221- sdl_android_compile_resources(SDL_example-resources RESFOLDER ${CMAKE_CURRENT_SOURCE_DIR} /../test /android/res)
222- add_custom_target (sdl-example-apks)
223- foreach (EXAMPLE ${SDL_EXAMPLE_EXECUTABLES} )
224- set (ANDROID_MANIFEST_APP_NAME "${EXAMPLE} " )
225- set (ANDROID_MANIFEST_LABEL "${EXAMPLE} " )
226- set (ANDROID_MANIFEST_LIB_NAME "$<TARGET_FILE_BASE_NAME:${EXAMPLE} >" )
227- set (ANDROID_MANIFEST_PACKAGE "org.libsdl.sdl.example.${EXAMPLE} " )
228- set (generated_manifest_path "${CMAKE_CURRENT_BINARY_DIR} /android/${EXAMPLE} -src/AndroidManifest.xml" )
229- string (REPLACE "." "/" JAVA_PACKAGE_DIR "${ANDROID_MANIFEST_PACKAGE} " )
230- set (GENERATED_SRC_FOLDER "${CMAKE_CURRENT_BINARY_DIR} /android/${EXAMPLE} -src" )
231- set (GENERATED_RES_FOLDER "${GENERATED_SRC_FOLDER} /res" )
232- set (JAVA_PACKAGE_DIR "${GENERATED_SRC_FOLDER} /${JAVA_PACKAGE_DIR} " )
233- configure_file (${CMAKE_CURRENT_SOURCE_DIR} /../test /android/cmake/SDLEntryTestActivity.java.cmake "${JAVA_PACKAGE_DIR} /SDLEntryTestActivity.java" @ONLY)
234- configure_file (${CMAKE_CURRENT_SOURCE_DIR} /../test /android/cmake/SDLTestActivity.java.cmake "${JAVA_PACKAGE_DIR} /SDLTestActivity.java" @ONLY)
235- configure_file (${CMAKE_CURRENT_SOURCE_DIR} /../test /android/cmake/res/values/strings .xml.cmake android/res/values/strings -${EXAMPLE} .xml @ONLY)
236- configure_file (${CMAKE_CURRENT_SOURCE_DIR} /../test /android/cmake/res/xml/shortcuts.xml.cmake "${GENERATED_RES_FOLDER} /xml/shortcuts.xml" @ONLY)
237- configure_file (${CMAKE_CURRENT_SOURCE_DIR} /../test /android/cmake/AndroidManifest.xml.cmake "${generated_manifest_path} " @ONLY)
238- file (GENERATE
239- OUTPUT "${CMAKE_CURRENT_BINARY_DIR} /android/${EXAMPLE} -$<CONFIG>/res/values/strings.xml"
240- INPUT "${CMAKE_CURRENT_BINARY_DIR} /android/res/values/strings-${EXAMPLE} .xml"
241- )
242-
243- sdl_android_compile_resources(${EXAMPLE} -resources
244- RESOURCES
245- "${CMAKE_CURRENT_BINARY_DIR} /android/${EXAMPLE} -$<CONFIG>/res/values/strings.xml"
246- "${GENERATED_RES_FOLDER} /xml/shortcuts.xml"
247- )
248-
249- sdl_android_link_resources(${EXAMPLE} -apk-linked
250- MANIFEST "${generated_manifest_path} "
251- PACKAGE ${ANDROID_MANIFEST_PACKAGE}
252- RES_TARGETS SDL_example-resources ${EXAMPLE} -resources
253- TARGET_SDK_VERSION 31
254- )
255-
256- set (CMAKE_JAVA_COMPILE_FLAGS "-encoding;utf-8" )
257- set (classes_path "${CMAKE_CURRENT_BINARY_DIR} /CMakeFiles/${EXAMPLE} -java.dir/classes" )
258- # Some CMake versions have a slow `cmake -E make_directory` implementation
259- if (NOT IS_DIRECTORY "${classes_path} " )
260- execute_process (COMMAND ${CMAKE_COMMAND} -E make_directory "${classes_path} " )
261- endif ()
262- set (OUT_JAR "${CMAKE_CURRENT_BINARY_DIR} /${EXAMPLE} .jar" )
263- add_custom_command (
264- OUTPUT "${OUT_JAR} "
265- COMMAND ${CMAKE_COMMAND} -E rm -rf "${classes_path} "
266- COMMAND ${CMAKE_COMMAND} -E make_directory "${classes_path} "
267- COMMAND ${Java_JAVAC_EXECUTABLE}
268- -source 1.8 -target 1.8
269- -bootclasspath "$<TARGET_PROPERTY:SDL3::Jar,JAR_FILE>"
270- "${JAVA_PACKAGE_DIR} /SDLEntryTestActivity.java"
271- "${JAVA_PACKAGE_DIR} /SDLTestActivity.java"
272- $<TARGET_PROPERTY:${EXAMPLE} -apk-linked,JAVA_R>
273- -cp "$<TARGET_PROPERTY:SDL3::Jar,JAR_FILE>:${SDL_ANDROID_PLATFORM_ANDROID_JAR} "
274- -d "${classes_path} "
275- COMMAND ${Java_JAR_EXECUTABLE} cf "${OUT_JAR} " -C "${classes_path} " .
276- DEPENDS $<TARGET_PROPERTY:${EXAMPLE} -apk-linked,OUTPUTS> "$<TARGET_PROPERTY:SDL3::Jar,JAR_FILE>" "${JAVA_PACKAGE_DIR} /SDLTestActivity.java" "${JAVA_PACKAGE_DIR} /SDLEntryTestActivity.java"
277- )
278- add_custom_target (${EXAMPLE} -jar DEPENDS "${OUT_JAR} " )
279- set_property (TARGET ${EXAMPLE} -jar PROPERTY OUTPUT "${OUT_JAR} " )
280-
281- set (dexworkdir "${CMAKE_CURRENT_BINARY_DIR} /CMakeFiles/${EXAMPLE} -dex.dir" )
282- # Some CMake versions have a slow `cmake -E make_directory` implementation
283- if (NOT IS_DIRECTORY "${dexworkdir} " )
284- execute_process (COMMAND "${CMAKE_COMMAND} " -E make_directory "${dexworkdir} " )
285- endif ()
286- set (classes_dex_base_name "classes.dex" )
287- set (classes_dex "${dexworkdir} /${classes_dex_base_name} " )
288- add_custom_command (
289- OUTPUT "${classes_dex} "
290- COMMAND SdlAndroid::d8
291- $<TARGET_PROPERTY:${EXAMPLE} -jar,OUTPUT >
292- $<TARGET_PROPERTY:SDL3::Jar,JAR_FILE>
293- --lib "${SDL_ANDROID_PLATFORM_ANDROID_JAR} "
294- --output "${dexworkdir} "
295- DEPENDS $<TARGET_PROPERTY:${EXAMPLE} -jar,OUTPUT > $<TARGET_PROPERTY:SDL3::Jar,JAR_FILE>
296- )
297- add_custom_target (${EXAMPLE} -dex DEPENDS "${classes_dex} " )
298- set_property (TARGET ${EXAMPLE} -dex PROPERTY OUTPUT "${classes_dex} " )
299- set_property (TARGET ${EXAMPLE} -dex PROPERTY OUTPUT_BASE_NAME "${classes_dex_base_name} " )
300-
301- sdl_add_to_apk_unaligned(${EXAMPLE} -unaligned-apk
302- APK_IN ${EXAMPLE} -apk-linked
303- OUTDIR "${CMAKE_CURRENT_BINARY_DIR} /intermediates"
304- ASSETS ${RESOURCE_FILES}
305- NATIVE_LIBS SDL3::SDL3-shared ${EXAMPLE}
306- DEX ${EXAMPLE} -dex
307- )
308-
309- sdl_apk_align(${EXAMPLE} -aligned-apk ${EXAMPLE} -unaligned-apk
310- OUTDIR "${CMAKE_CURRENT_BINARY_DIR} /intermediates"
311- )
312- sdl_apk_sign(${EXAMPLE} -apk ${EXAMPLE} -aligned-apk
313- KEYSTORE SDL_example-debug-keystore
314- )
315- add_dependencies (sdl-example-apks ${EXAMPLE} -apk)
316-
317- if (TARGET SdlAndroid::adb)
318- add_custom_target (install -${EXAMPLE}
319- COMMAND "${CMAKE_COMMAND} " -DACTION=install "-DAPKS=$<TARGET_PROPERTY:${EXAMPLE} -apk,OUTPUT>" -P "${SDL3_SOURCE_DIR} /cmake/android/SdlAndroidScript.cmake"
320- DEPENDS "${EXAMPLE} -apk"
321- )
322- add_custom_target (start -${EXAMPLE}
323- COMMAND "${ADB_BIN} " shell am start -activity -S "${ANDROID_MANIFEST_PACKAGE} /.SDLTestActivity"
324- )
325- add_custom_target (build -install -start -${EXAMPLE}
326- COMMAND "${CMAKE_COMMAND} " -DACTION=build -install -run "-DEXECUTABLES=${EXAMPLE} " "-DBUILD_FOLDER=${CMAKE_BINARY_DIR} " -P "${SDL3_SOURCE_DIR} /cmake/android/SdlAndroidScript.cmake"
327- )
328- endif ()
329-
330- list (APPEND packages "${ANDROID_MANIFEST_PACKAGE} " )
331- list (APPEND install_targets install -${EXAMPLE} )
332- endforeach ()
333-
334- if (TARGET SdlAndroid::adb)
335- add_custom_target (install -sdl-example-apks
336- DEPENDS ${install_targets}
337- VERBATIM
338- )
339- add_custom_target (uninstall-sdl-example-apks
340- COMMAND "${CMAKE_COMMAND} " "-DADB=$<TARGET_FILE:SdlAndroid::adb>" -DACTION=uninstall "-DPACKAGES=${packages} " -P "${SDL3_SOURCE_DIR} /cmake/android/SdlAndroidScript.cmake"
341- VERBATIM
342- )
343- endif ()
344- endif ()
345- endif ()
0 commit comments