CMake improvements
parent
43855a13d7
commit
5e80bbe88c
|
@ -4,26 +4,47 @@ project(xormod C)
|
|||
|
||||
find_package(SDL3 REQUIRED)
|
||||
|
||||
if(APPLE)
|
||||
set(DETECTED_ACCEL_PLATFORM "METAL")
|
||||
else()
|
||||
set(DETECTED_ACCEL_PLATFORM "OPENGL")
|
||||
endif()
|
||||
|
||||
set(ACCEL_PLATFORM ${DETECTED_ACCEL_PLATFORM} CACHE STRING "Acceleration")
|
||||
|
||||
configure_file("platform.h.in" "config/platform.h")
|
||||
|
||||
add_compile_options(-Wall -Wextra -Werror=return-type)
|
||||
|
||||
include_directories("${CMAKE_BINARY_DIR}/config")
|
||||
if(APPLE)
|
||||
set(DETECTED_ACCEL_PLATFORMS "METAL")
|
||||
else()
|
||||
set(DETECTED_ACCEL_PLATFORMS "OPENGL;VULKAN")
|
||||
endif()
|
||||
|
||||
list(GET DETECTED_ACCEL_PLATFORMS 0 DETECTED_ACCEL_PLATFORM)
|
||||
set(ACCEL_PLATFORM "${DETECTED_ACCEL_PLATFORM}" CACHE STRING "Acceleration")
|
||||
set_property(CACHE ACCEL_PLATFORM PROPERTY STRINGS "${DETECTED_ACCEL_PLATFORMS}")
|
||||
message(STATUS "Using acceleration platform: ${ACCEL_PLATFORM}")
|
||||
|
||||
if (CMAKE_SYSTEM_PROCESSOR MATCHES "ARM64|AARCH64")
|
||||
message(STATUS "Using ARM64 flags")
|
||||
set(ACCEL_ARCHITECTURES "native;armv8-a;armv8.1-a;armv8.2-a;armv8.3-a;armv8.4-a;armv8.5-a;armv8.6-a;armv8-r")
|
||||
elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "X86_64|X64|AMD64")
|
||||
message(STATUS "Using x86-64 flags")
|
||||
set(ACCEL_ARCHITECTURES "native;x86-64;x86-64-v2;x86-64-v3;x86-64-v4;znver1;znver2;znver3;znver4;znver5")
|
||||
endif()
|
||||
set(ACCEL_ARCHITECTURE "" CACHE STRING "CPU optimization architecture")
|
||||
set_property(CACHE ACCEL_ARCHITECTURE PROPERTY STRINGS "${ACCEL_ARCHITECTURES}")
|
||||
add_compile_options("$<$<BOOL:${ACCEL_ARCHITECTURE}>:-march=${ACCEL_ARCHITECTURE}>")
|
||||
|
||||
configure_file("platform.h.in" "include/platform.h")
|
||||
include_directories("${CMAKE_CURRENT_BINARY_DIR}/include")
|
||||
|
||||
add_executable(xormod
|
||||
"EGA9x14.c"
|
||||
"field.c"
|
||||
"text.c"
|
||||
"picture.c"
|
||||
"xormod.c"
|
||||
)
|
||||
|
||||
set(OSD_FONT "EGA9x14" CACHE STRING "OSD font")
|
||||
set_property(CACHE OSD_FONT PROPERTY STRINGS "EGA9x14;EGA8x8")
|
||||
target_sources(xormod PRIVATE "${OSD_FONT}.c")
|
||||
message(STATUS "OSD font set to: ${OSD_FONT}")
|
||||
|
||||
target_link_libraries(xormod SDL3::SDL3)
|
||||
|
||||
if(WIN32)
|
||||
target_link_options(xormod PRIVATE "$<$<NOT:$<CONFIG:DEBUG>>:-Wl,-subsystem=windows>")
|
||||
endif()
|
||||
|
|
Loading…
Reference in New Issue