experiments

This commit is contained in:
2025-06-05 21:51:34 +02:00
parent a5b52b6b89
commit d4665c4e9b
4 changed files with 57 additions and 14 deletions

View File

@@ -7,8 +7,19 @@ set(CMAKE_C_STANDARD 23)
find_package(PkgConfig REQUIRED)
pkg_check_modules(SDL2 REQUIRED sdl2)
# Allow setting the target platform manually
if (NOT DEFINED TARGET_PLATFORM)
if (WIN32)
set(TARGET_PLATFORM windows)
elseif (UNIX)
set(TARGET_PLATFORM linux)
else ()
message(FATAL_ERROR "Unsupported platform. Please set TARGET_PLATFORM manually.")
endif ()
endif ()
add_executable(factorygame
set(SOURCE_FILES
tiles/tile.c
tiles/tile.h
util/font.c
@@ -36,6 +47,43 @@ add_executable(factorygame
tiles/miner.h
)
add_executable(factorygame ${SOURCE_FILES})
message(STATUS "Target platform: ${TARGET_PLATFORM}")
# Detect build type and configure SDL2 paths accordingly
if (TARGET_PLATFORM STREQUAL "windows")
find_package(SDL2 REQUIRED)
find_package(SDL2_ttf REQUIRED)
include_directories(${SDL2_INCLUDE_DIRS})
link_directories(${SDL2_LIBRARY_DIRS})
add_definitions(${SDL2_CFLAGS_OTHER})
elseif (TARGET_PLATFORM STREQUAL "mingw")
# Cross-compile dynamically linked Windows build
set(CMAKE_C_COMPILER x86_64-w64-mingw32-gcc)
set(CMAKE_RC_COMPILER x86_64-w64-mingw32-windres)
find_package(SDL2 REQUIRED)
find_package(SDL2_ttf REQUIRED)
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -mwindows")
target_link_libraries(factorygame mingw32 SDL2main SDL2 SDL2_ttf SDL2_image m)
include_directories(${SDL2_INCLUDE_DIRS})
link_directories(${SDL2_LIBRARY_DIRS})
add_definitions(${SDL2_CFLAGS_OTHER})
elseif (TARGET_PLATFORM STREQUAL "linux")
pkg_check_modules(SDL2 REQUIRED sdl2)
pkg_check_modules(SDL2_TTF REQUIRED SDL2_ttf)
pkg_check_modules(SDL2_IMAGE REQUIRED SDL2_image)
target_link_libraries(factorygame SDL2 SDL2_ttf SDL2_image m)
include_directories(${SDL2_INCLUDE_DIRS})
add_definitions(${SDL2_CFLAGS_OTHER})
else ()
message(FATAL_ERROR "Unsupported TARGET_PLATFORM: ${TARGET_PLATFORM}")
endif ()
# Define the path to the assets folder
set(ASSETS_SOURCE_DIR "${CMAKE_SOURCE_DIR}/assets")
set(ASSETS_BINARY_DIR "${CMAKE_BINARY_DIR}/assets")
@@ -49,6 +97,3 @@ add_custom_target(copy_assets ALL
# Make sure factorygame depends on the assets being copied
add_dependencies(factorygame copy_assets)
target_link_libraries(factorygame SDL2 SDL2_ttf SDL2_image m)