mirror of
https://github.com/yquake2/xatrix.git
synced 2024-11-10 06:42:22 +00:00
Revert "Retire unmaintained CMakeLists.txt."
It turned out that there're some special cases not (yet) covered by the Makefile. Crossbuilding in specialized chroot environments are one example.
This commit is contained in:
parent
15791dc75e
commit
052066f355
1 changed files with 136 additions and 0 deletions
136
CMakeLists.txt
Normal file
136
CMakeLists.txt
Normal file
|
@ -0,0 +1,136 @@
|
||||||
|
cmake_minimum_required(VERSION 3.0)
|
||||||
|
|
||||||
|
# Enforce "Debug" as standard build type
|
||||||
|
if(NOT CMAKE_BUILD_TYPE)
|
||||||
|
set(CMAKE_BUILD_TYPE "Debug" CACHE STRING "Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel." FORCE)
|
||||||
|
endif(NOT CMAKE_BUILD_TYPE)
|
||||||
|
|
||||||
|
# CMake project configuration
|
||||||
|
project(yquake2-xatrix)
|
||||||
|
|
||||||
|
# Enforce compiler flags (GCC / Clang compatible, yquake2
|
||||||
|
# won't build with another compiler anyways)
|
||||||
|
# -Wall -> More warnings
|
||||||
|
# -fno-strict-aliasing -> Quake 2 is far away from strict aliasing
|
||||||
|
# -fwrapv -> Make signed integer overflows defined
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -fno-strict-aliasing -fwrapv")
|
||||||
|
|
||||||
|
# Use -O2 as maximum optimization level. -O3 has it's problems with yquake2.
|
||||||
|
string(REPLACE "-O3" "-O2" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
|
||||||
|
|
||||||
|
# Operating system
|
||||||
|
add_definitions(-DYQ2OSTYPE="${CMAKE_SYSTEM_NAME}")
|
||||||
|
|
||||||
|
# Architecture string
|
||||||
|
string(REGEX REPLACE "amd64" "x86_64" YQ2_ARCH "${CMAKE_SYSTEM_PROCESSOR}")
|
||||||
|
string(REGEX REPLACE "i.86" "i386" YQ2_ARCH "${YQ2_ARCH}")
|
||||||
|
string(REGEX REPLACE "^arm.*" "arm" YQ2_ARCH "${YQ2_ARCH}")
|
||||||
|
add_definitions(-DYQ2ARCH="${YQ2_ARCH}")
|
||||||
|
|
||||||
|
# Linker Flags
|
||||||
|
if(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
|
||||||
|
list(APPEND XatrixLinkerFlags "-lm")
|
||||||
|
else()
|
||||||
|
list(APPEND XatrixLinkerFlags "-lm -rdynamic")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(Xatrix-Source
|
||||||
|
src/monster/berserker/berserker.c
|
||||||
|
src/monster/boss2/boss2.c
|
||||||
|
src/monster/boss3/boss3.c
|
||||||
|
src/monster/boss3/boss31.c
|
||||||
|
src/monster/boss3/boss32.c
|
||||||
|
src/monster/boss5/boss5.c
|
||||||
|
src/monster/brain/brain.c
|
||||||
|
src/monster/chick/chick.c
|
||||||
|
src/monster/fixbot/fixbot.c
|
||||||
|
src/monster/flipper/flipper.c
|
||||||
|
src/monster/float/float.c
|
||||||
|
src/monster/flyer/flyer.c
|
||||||
|
src/monster/gekk/gekk.c
|
||||||
|
src/monster/gladiator/gladb.c
|
||||||
|
src/monster/gladiator/gladiator.c
|
||||||
|
src/monster/gunner/gunner.c
|
||||||
|
src/monster/hover/hover.c
|
||||||
|
src/monster/infantry/infantry.c
|
||||||
|
src/monster/insane/insane.c
|
||||||
|
src/monster/medic/medic.c
|
||||||
|
src/monster/misc/move.c
|
||||||
|
src/monster/mutant/mutant.c
|
||||||
|
src/monster/parasite/parasite.c
|
||||||
|
src/monster/soldier/soldier.c
|
||||||
|
src/monster/supertank/supertank.c
|
||||||
|
src/monster/tank/tank.c
|
||||||
|
src/player/client.c
|
||||||
|
src/player/hud.c
|
||||||
|
src/player/trail.c
|
||||||
|
src/player/view.c
|
||||||
|
src/player/weapon.c
|
||||||
|
src/savegame/savegame.c
|
||||||
|
src/shared/flash.c
|
||||||
|
src/shared/rand.c
|
||||||
|
src/shared/shared.c
|
||||||
|
src/g_ai.c
|
||||||
|
src/g_chase.c
|
||||||
|
src/g_cmds.c
|
||||||
|
src/g_combat.c
|
||||||
|
src/g_func.c
|
||||||
|
src/g_items.c
|
||||||
|
src/g_main.c
|
||||||
|
src/g_misc.c
|
||||||
|
src/g_monster.c
|
||||||
|
src/g_phys.c
|
||||||
|
src/g_spawn.c
|
||||||
|
src/g_svcmds.c
|
||||||
|
src/g_target.c
|
||||||
|
src/g_trigger.c
|
||||||
|
src/g_turret.c
|
||||||
|
src/g_utils.c
|
||||||
|
src/g_weapon.c
|
||||||
|
)
|
||||||
|
|
||||||
|
set(Xatrix-Header
|
||||||
|
src/header/game.h
|
||||||
|
src/header/local.h
|
||||||
|
src/header/shared.h
|
||||||
|
src/monster/berserker/berserker.h
|
||||||
|
src/monster/boss2/boss2.h
|
||||||
|
src/monster/boss3/boss31.h
|
||||||
|
src/monster/boss3/boss32.h
|
||||||
|
src/monster/brain/brain.h
|
||||||
|
src/monster/chick/chick.h
|
||||||
|
src/monster/fixbot/fixbot.h
|
||||||
|
src/monster/flipper/flipper.h
|
||||||
|
src/monster/float/float.h
|
||||||
|
src/monster/flyer/flyer.h
|
||||||
|
src/monster/gekk/gekk.h
|
||||||
|
src/monster/gladiator/gladiator.h
|
||||||
|
src/monster/gunner/gunner.h
|
||||||
|
src/monster/hover/hover.h
|
||||||
|
src/monster/infantry/infantry.h
|
||||||
|
src/monster/insane/insane.h
|
||||||
|
src/monster/medic/medic.h
|
||||||
|
src/monster/misc/player.h
|
||||||
|
src/monster/mutant/mutant.h
|
||||||
|
src/monster/parasite/parasite.h
|
||||||
|
src/monster/soldier/soldier.h
|
||||||
|
src/monster/soldier/soldierh.h
|
||||||
|
src/monster/supertank/supertank.h
|
||||||
|
src/monster/tank/tank.h
|
||||||
|
src/savegame/tables/clientfields.h
|
||||||
|
src/savegame/tables/fields.h
|
||||||
|
src/savegame/tables/gamefunc_decs.h
|
||||||
|
src/savegame/tables/gamefunc_list.h
|
||||||
|
src/savegame/tables/gamemmove_decs.h
|
||||||
|
src/savegame/tables/gamemmove_list.h
|
||||||
|
src/savegame/tables/levelfields.h
|
||||||
|
)
|
||||||
|
|
||||||
|
# Build the xatrix dynamic library
|
||||||
|
add_library(game SHARED ${Xatrix-Source} ${Xatrix-Header})
|
||||||
|
set_target_properties(game PROPERTIES
|
||||||
|
PREFIX ""
|
||||||
|
LIBRARY_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/Debug
|
||||||
|
LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/Release
|
||||||
|
)
|
||||||
|
target_link_libraries(game ${XatrixLinkerFlags})
|
Loading…
Reference in a new issue