From 3f170769da258f0e12da941f625b9f707bed1c35 Mon Sep 17 00:00:00 2001 From: Dmitry Marakasov Date: Thu, 24 Apr 2014 20:36:18 +0400 Subject: [PATCH 1/2] Add simple CMakeLists.txt --- CMakeLists.txt | 167 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 167 insertions(+) create mode 100644 CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 00000000..c55d63e6 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,167 @@ +# +# Simple CMakeLists for Sonic Robo Blast 2 +# +# Tweaked for FreeBSD, but should be extendable to support other systems +# +PROJECT(SRB2) + +CMAKE_MINIMUM_REQUIRED(VERSION 2.8) + +# +# Dependencies +# +FIND_PACKAGE(SDL) +FIND_PACKAGE(SDL_mixer) +FIND_PACKAGE(PNG) + +# +# Common stuff +# + +# not added defines: +# -DUSEASM - unportable assembler not needed +# -DHAVE_PNG - does not build (incorrect use of PNG_EXPORT etc.) +ADD_DEFINITIONS(-DDIRECTFULLSCREEN -DSDL -DHAVE_MIXER -DNOHW -DHW3SOUND -DHAVE_BLUA) + +SET(SDL_DIR sdl) # may be set to SDL2 optionally + +SET(COMMON_SRCS + src/${SDL_DIR}/dosstr.c + src/${SDL_DIR}/endtxt.c + src/${SDL_DIR}/hwsym_sdl.c + src/${SDL_DIR}/i_cdmus.c + src/${SDL_DIR}/i_main.c + src/${SDL_DIR}/i_net.c + src/${SDL_DIR}/i_system.c + src/${SDL_DIR}/i_video.c + src/${SDL_DIR}/mixer_sound.c + src/am_map.c + src/b_bot.c + src/blua/lapi.c + src/blua/lauxlib.c + src/blua/lbaselib.c + src/blua/lcode.c + src/blua/ldebug.c + src/blua/ldo.c + src/blua/ldump.c + src/blua/lfunc.c + src/blua/lgc.c + src/blua/linit.c + src/blua/llex.c + src/blua/lmem.c + src/blua/lobject.c + src/blua/lopcodes.c + src/blua/lparser.c + src/blua/lstate.c + src/blua/lstring.c + src/blua/lstrlib.c + src/blua/ltable.c + src/blua/ltablib.c + src/blua/ltm.c + src/blua/lundump.c + src/blua/lvm.c + src/blua/lzio.c + src/command.c + src/comptime.c + src/console.c + src/d_clisrv.c + src/d_main.c + src/d_net.c + src/d_netcmd.c + src/d_netfil.c + src/dehacked.c + src/f_finale.c + src/f_wipe.c + src/filesrch.c + src/g_game.c + src/g_input.c + src/hardware/hw3sound.c + src/hu_stuff.c + src/i_tcp.c + src/info.c + src/lua_baselib.c + src/lua_consolelib.c + src/lua_hooklib.c + src/lua_hudlib.c + src/lua_infolib.c + src/lua_maplib.c + src/lua_mathlib.c + src/lua_mobjlib.c + src/lua_playerlib.c + src/lua_script.c + src/lua_skinlib.c + src/lua_thinkerlib.c + src/lzf.c + src/m_anigif.c + src/m_argv.c + src/m_bbox.c + src/m_cheat.c + src/m_cond.c + src/m_fixed.c + src/m_menu.c + src/m_misc.c + src/m_queue.c + src/m_random.c + src/md5.c + src/mserv.c + src/p_ceilng.c + src/p_enemy.c + src/p_fab.c + src/p_floor.c + src/p_inter.c + src/p_lights.c + src/p_map.c + src/p_maputl.c + src/p_mobj.c + src/p_polyobj.c + src/p_saveg.c + src/p_setup.c + src/p_sight.c + src/p_spec.c + src/p_telept.c + src/p_tick.c + src/p_user.c + src/r_bsp.c + src/r_data.c + src/r_draw.c + src/r_main.c + src/r_plane.c + src/r_segs.c + src/r_sky.c + src/r_splats.c + src/r_things.c + src/s_sound.c + src/screen.c + src/sounds.c + src/st_stuff.c + src/string.c + src/tables.c + src/v_video.c + src/w_wad.c + src/y_inter.c + src/z_zone.c +) + +# +# Platform-specific stuff +# +IF(${CMAKE_SYSTEM} MATCHES "FreeBSD") + FIND_LIBRARY(KVM_LIBRARY NAMES kvm) + IF(KVM_LIBRARY) + MESSAGE(STATUS "Found libkvm: ${KVM_LIBRARY}") + SET(EXTRA_LIBRARIES ${EXTRA_LIBRARIES} ${KVM_LIBRARY}) + ELSE(KVM_LIBRARY) + MESSAGE(FATAL_ERROR "Could not find libkvm!") + ENDIF(KVM_LIBRARY) + ADD_DEFINITIONS(-DUNIXCOMMON -DLINUX -DFREEBSD) +ELSE(${CMAKE_SYSTEM} MATCHES "FreeBSD") + ADD_DEFINITIONS(-DUNIXCOMMON -DLINUX) + MESSAGE(WARNING "No specific settings for you system, it may be not supported!") +ENDIF(${CMAKE_SYSTEM} MATCHES "FreeBSD") + +# +# Targets +# +INCLUDE_DIRECTORIES(${PNG_INCLUDE_DIRS} ${SDL_INCLUDE_DIR} ${SDL_MIXER_INCLUDE_DIRS}) +ADD_EXECUTABLE(SRB2 ${COMMON_SRCS}) +TARGET_LINK_LIBRARIES(SRB2 ${SDL_LIBRARY} ${SDL_MIXER_LIBRARIES} ${EXTRA_LIBRARIES}) From dad0ad59c18ec03d74da6f45f001c07bb1053e94 Mon Sep 17 00:00:00 2001 From: Dmitry Marakasov Date: Fri, 25 Apr 2014 02:59:08 +0400 Subject: [PATCH 2/2] Add Linux support to CMake --- CMakeLists.txt | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c55d63e6..0cffa367 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,8 +1,6 @@ # # Simple CMakeLists for Sonic Robo Blast 2 # -# Tweaked for FreeBSD, but should be extendable to support other systems -# PROJECT(SRB2) CMAKE_MINIMUM_REQUIRED(VERSION 2.8) @@ -19,9 +17,8 @@ FIND_PACKAGE(PNG) # # not added defines: -# -DUSEASM - unportable assembler not needed # -DHAVE_PNG - does not build (incorrect use of PNG_EXPORT etc.) -ADD_DEFINITIONS(-DDIRECTFULLSCREEN -DSDL -DHAVE_MIXER -DNOHW -DHW3SOUND -DHAVE_BLUA) +ADD_DEFINITIONS(-DDIRECTFULLSCREEN -DSDL -DHAVE_MIXER -DNOHW -DHW3SOUND -DHAVE_BLUA -DNOASM) SET(SDL_DIR sdl) # may be set to SDL2 optionally @@ -145,15 +142,24 @@ SET(COMMON_SRCS # # Platform-specific stuff # + +MACRO(EXTRALIB NAME) + FIND_LIBRARY(${NAME}_LIBRARY NAMES ${NAME}) + IF(${NAME}_LIBRARY) + MESSAGE(STATUS "Found lib${NAME}: ${${NAME}_LIBRARY}") + SET(EXTRA_LIBRARIES ${EXTRA_LIBRARIES} ${${NAME}_LIBRARY}) + ELSE(${NAME}_LIBRARY) + MESSAGE(FATAL_ERROR "Could not find lib${NAME}!") + ENDIF(${NAME}_LIBRARY) +ENDMACRO(EXTRALIB) + IF(${CMAKE_SYSTEM} MATCHES "FreeBSD") - FIND_LIBRARY(KVM_LIBRARY NAMES kvm) - IF(KVM_LIBRARY) - MESSAGE(STATUS "Found libkvm: ${KVM_LIBRARY}") - SET(EXTRA_LIBRARIES ${EXTRA_LIBRARIES} ${KVM_LIBRARY}) - ELSE(KVM_LIBRARY) - MESSAGE(FATAL_ERROR "Could not find libkvm!") - ENDIF(KVM_LIBRARY) ADD_DEFINITIONS(-DUNIXCOMMON -DLINUX -DFREEBSD) + EXTRALIB(kvm) +ELSEIF(${CMAKE_SYSTEM} MATCHES "Linux") + ADD_DEFINITIONS(-DUNIXCOMMON -DLINUX) + EXTRALIB(m) + EXTRALIB(rt) ELSE(${CMAKE_SYSTEM} MATCHES "FreeBSD") ADD_DEFINITIONS(-DUNIXCOMMON -DLINUX) MESSAGE(WARNING "No specific settings for you system, it may be not supported!")