experiments
This commit is contained in:
@@ -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)
|
Reference in New Issue
Block a user