Maelstrom: cmake: set name of Android library as property (#62)

From 77bb336b236cdde4237d49c5834a39250be7961c Mon Sep 17 00:00:00 2001
From: Anonymous Maarten <[EMAIL REDACTED]>
Date: Sat, 2 May 2026 06:37:24 +0200
Subject: [PATCH] cmake: set name of Android library as property (#62)

---
 CMakeLists.txt | 49 ++++++++++++++++++++++++-------------------------
 1 file changed, 24 insertions(+), 25 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7210041f..5fec88bf 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -171,22 +171,21 @@ set(MAELSTROM_SOURCES
 )
 
 if(ANDROID)
-    set(TARGET_NAME main)
-    add_library(${TARGET_NAME} MODULE ${MAELSTROM_SOURCES})
+    add_library(Maelstrom MODULE ${MAELSTROM_SOURCES})
+    set_property(TARGET Maelstrom PROPERTY OUTPUT_NAME main)
 else()
-    set(TARGET_NAME Maelstrom)
-    add_executable(${TARGET_NAME} WIN32 ${MAELSTROM_SOURCES})
+    add_executable(Maelstrom WIN32 ${MAELSTROM_SOURCES})
 endif()
 
 if(MSVC)
-    target_compile_options(${TARGET_NAME} PRIVATE -W3)
+    target_compile_options(Maelstrom PRIVATE -W3)
 else()
-    target_compile_options(${TARGET_NAME} PRIVATE -Wall)
-    target_compile_options(${TARGET_NAME} PRIVATE -Wextra)
-    target_compile_options(${TARGET_NAME} PRIVATE -Wno-cast-function-type)
-    target_compile_options(${TARGET_NAME} PRIVATE -Wno-sign-compare)
-    target_compile_options(${TARGET_NAME} PRIVATE -Wno-unused-function)
-    target_compile_options(${TARGET_NAME} PRIVATE -Wno-unused-parameter)
+    target_compile_options(Maelstrom PRIVATE -Wall)
+    target_compile_options(Maelstrom PRIVATE -Wextra)
+    target_compile_options(Maelstrom PRIVATE -Wno-cast-function-type)
+    target_compile_options(Maelstrom PRIVATE -Wno-sign-compare)
+    target_compile_options(Maelstrom PRIVATE -Wno-unused-function)
+    target_compile_options(Maelstrom PRIVATE -Wno-unused-parameter)
 endif()
 
 if(NOT WIN32)
@@ -199,14 +198,14 @@ if(NOT WIN32)
       }
     " HAVE_GETIFADDRS)
   if(HAVE_GETIFADDRS)
-    target_compile_definitions(${TARGET_NAME} PRIVATE HAVE_GETIFADDRS)
+    target_compile_definitions(Maelstrom PRIVATE HAVE_GETIFADDRS)
   endif()
 endif()
 
 dep_option(STEAM "Build with Steam support" ON "WIN32 OR LINUX OR MACOS" OFF)
 
 if(STEAM)
-    target_compile_definitions(${TARGET_NAME} PRIVATE ENABLE_STEAM)
+    target_compile_definitions(Maelstrom PRIVATE ENABLE_STEAM)
     add_library(SteamworksSDK::steam_api SHARED IMPORTED)
     set_property(TARGET SteamworksSDK::steam_api PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${PROJECT_SOURCE_DIR}/external/SteamworksSDK/public")
     if(WIN32)
@@ -221,24 +220,24 @@ if(STEAM)
     elseif(MACOS)
         set_property(TARGET SteamworksSDK::steam_api PROPERTY IMPORTED_LOCATION "${PROJECT_SOURCE_DIR}/external/SteamworksSDK/redistributable_bin/osx/libsteam_api.dylib")
     endif()
-    target_link_libraries(${TARGET_NAME} PRIVATE SteamworksSDK::steam_api)
+    target_link_libraries(Maelstrom PRIVATE SteamworksSDK::steam_api)
 endif()
 
-target_link_libraries(${TARGET_NAME} PRIVATE SDLmac)
-target_link_libraries(${TARGET_NAME} PRIVATE physfs-static)
-target_link_libraries(${TARGET_NAME} PRIVATE SDL3_net::SDL3_net)
-target_link_libraries(${TARGET_NAME} PRIVATE SDL3::SDL3)
+target_link_libraries(Maelstrom PRIVATE SDLmac)
+target_link_libraries(Maelstrom PRIVATE physfs-static)
+target_link_libraries(Maelstrom PRIVATE SDL3_net::SDL3_net)
+target_link_libraries(Maelstrom PRIVATE SDL3::SDL3)
 
 if(EMSCRIPTEN)
     # Increase the default stack size
-    target_link_options(${TARGET_NAME} PRIVATE -sALLOW_MEMORY_GROWTH=1 -sSTACK_SIZE=1048576)
+    target_link_options(Maelstrom PRIVATE -sALLOW_MEMORY_GROWTH=1 -sSTACK_SIZE=1048576)
 
     # Create a source map for debugging
-    target_link_options(${TARGET_NAME} PRIVATE -gsource-map)
+    target_link_options(Maelstrom PRIVATE -gsource-map)
 
     # on the web, we have to put the files inside of the webassembly
     # somewhat unintuitively, this is done via a linker argument.
-    target_link_libraries(${TARGET_NAME} PRIVATE 
+    target_link_libraries(Maelstrom PRIVATE
         "--preload-file \"${CMAKE_CURRENT_LIST_DIR}/Data@Data/\""
         "--preload-file \"${CMAKE_CURRENT_LIST_DIR}/mods@mods/\""
     )
@@ -251,9 +250,9 @@ else()
         set(CMAKE_INSTALL_DOCDIR "Docs")
         set(GAME_INSTALL_DATADIR ".")
         if(APPLE)
-            set_property(TARGET ${TARGET_NAME} SDL3-shared PROPERTY INSTALL_RPATH "@executable_path")
+            set_property(TARGET Maelstrom SDL3-shared PROPERTY INSTALL_RPATH "@executable_path")
         else()
-            set_property(TARGET ${TARGET_NAME} PROPERTY INSTALL_RPATH "$ORIGIN")
+            set_property(TARGET Maelstrom PROPERTY INSTALL_RPATH "$ORIGIN")
             if(USE_VENDORED_SDL)
                 set_property(TARGET SDL3-shared PROPERTY INSTALL_RPATH "$ORIGIN")
             endif(  )
@@ -262,14 +261,14 @@ else()
         include(GNUInstallDirs)
         set(GAME_INSTALL_DATADIR "${CMAKE_INSTALL_DATAROOTDIR}/${PROJECT_NAME}")
 
-        target_compile_definitions(${TARGET_NAME} PRIVATE
+        target_compile_definitions(Maelstrom PRIVATE
             MAELSTROM_USE_XDG_DIRS
             MAELSTROM_DATA=\"${CMAKE_INSTALL_PREFIX}/${GAME_INSTALL_DATADIR}/Data/\"
             MAELSTROM_MODS=\"${CMAKE_INSTALL_PREFIX}/${GAME_INSTALL_DATADIR}/mods/\"
         )
     endif()
 
-    install(TARGETS ${TARGET_NAME} LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
+    install(TARGETS Maelstrom LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
     if (USE_VENDORED_SDL)
         install(TARGETS SDL3-shared LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" NAMELINK_SKIP RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
     endif()