View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0002943 | FSSCP | Build system | public | 2013-10-26 09:55 | 2021-01-09 06:28 |
Reporter | ni1s | Assigned To | chief1983 | ||
Priority | normal | Severity | feature | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Summary | 0002943: CMake build system files | ||||
Description | CMake build system files for fs2_open, fred and wxfred. Note that these are incomplete and in some places just plain wrong. Tested on Gentoo Linux and Windows 7(64bit) | ||||
Tags | No tags attached. | ||||
|
cmake.patch (61,495 bytes)
diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..88387b6 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,66 @@ +# CMake build script files for Freespace 2 Source Code Project. +# +# Files: +# CMakeLists.txt - This file. +# toolchain-gcc.cmake - GNU/GCC toolchain configuration. +# toolchain-msvc.cmake - Visual Studio toolchain configuration. +# dependencies.cmake - Dependencies, does lookup on Linux and builds/imports on Windows. +# code/CMakeLists.txt - CMakeLists.txt containing LIBCODE_SOURCES and other commons. +# Includes the fred2, wxfred2 and freespace2 CMake subdirectories. +# code/fred2/CMakeLists.txt - Fred2. +# code/wxfred2/CMakeLists.txt - wxfred2. +# code/freespace2/CMakeLists.txt - Freespace2. + +project("FSSCP" C CXX) + +if(MSVC) + set(CMAKE_CONFIGURATION_TYPES "Debug;Debug_SSE;Debug_SSE2;Debug_AVX;Release;Release_SSE;Release_SSE2;Release_AVX" CACHE STRING "Available configurations" FORCE) + set_property(GLOBAL PROPERTY USE_FOLDERS ON) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}) +else() + if(NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE "DEBUG" CACHE STRING "Default build configuration used." FORCE) + message(WARNING "CMAKE_BUILD_TYPE was not specified, defaulting to Debug configuration.") + endif() +endif() + +cmake_minimum_required(VERSION 2.8) + +set(VERSION_STRING 3_6_19) + +find_package(Git) +if(GIT_FOUND AND EXISTS ${PROJECT_SOURCE_DIR}/.git AND REV_VERSION) + set(GIT_ARGS --no-pager rev-parse --short HEAD) + execute_process( + COMMAND ${GIT_EXECUTABLE} ${GIT_ARGS} + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} + OUTPUT_VARIABLE VERSION_STRING + OUTPUT_STRIP_TRAILING_WHITESPACE + ) +endif() + +# WARNING: Ugh ... +macro(build_solution_tree ${ARGV0}) + if(MSVC) + get_target_property(${ARGV0}_SOURCES ${ARGV0} SOURCES) + foreach(SOURCE_FILEPATH ${${ARGV0}_SOURCES}) + string(REGEX REPLACE "${PROJECT_SOURCE_DIR}/code/" "" SOURCE_LOCAL_FILEPATH ${SOURCE_FILEPATH}) + string(REGEX REPLACE ".*/" "" SOURCE_LOCAL_FILENAME ${SOURCE_LOCAL_FILEPATH}) + string(REGEX REPLACE "${SOURCE_LOCAL_FILENAME}" "" SOURCE_LOCAL_DIRPATH ${SOURCE_LOCAL_FILEPATH}) + string(REGEX REPLACE "/" "\\\\\\\\" SOURCE_GROUPNAME ${SOURCE_LOCAL_DIRPATH}) + source_group("${SOURCE_GROUPNAME}" FILES "${SOURCE_FILEPATH}") + endforeach(SOURCE_FILEPATH ${${ARGV0}_SOURCES}) + endif(MSVC) +endmacro(build_solution_tree ${ARGV0}) + +if(${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") + include(toolchain-gcc.cmake) +elseif(${CMAKE_CXX_COMPILER_ID} STREQUAL "MSVC") + include(toolchain-msvc.cmake) +elseif(${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang") + include(toolchain-clang.cmake) +endif() + +include(dependencies.cmake) + +add_subdirectory(code) diff --git a/code/CMakeLists.txt b/code/CMakeLists.txt new file mode 100644 index 0000000..a9fd561 --- /dev/null +++ b/code/CMakeLists.txt @@ -0,0 +1,599 @@ + +set(LIBCODE_SOURCES + ${CMAKE_CURRENT_SOURCE_DIR}/ai/ai.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/ai/ai.h + ${CMAKE_CURRENT_SOURCE_DIR}/ai/ai_profiles.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/ai/ai_profiles.h + ${CMAKE_CURRENT_SOURCE_DIR}/ai/aibig.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/ai/aibig.h + ${CMAKE_CURRENT_SOURCE_DIR}/ai/aicode.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/ai/aigoals.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/ai/aigoals.h + ${CMAKE_CURRENT_SOURCE_DIR}/ai/aiinternal.h + ${CMAKE_CURRENT_SOURCE_DIR}/ai/ailocal.h + ${CMAKE_CURRENT_SOURCE_DIR}/ai/aiturret.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/anim/animplay.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/anim/animplay.h + ${CMAKE_CURRENT_SOURCE_DIR}/anim/packunpack.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/anim/packunpack.h + ${CMAKE_CURRENT_SOURCE_DIR}/asteroid/asteroid.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/asteroid/asteroid.h + ${CMAKE_CURRENT_SOURCE_DIR}/autopilot/autopilot.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/autopilot/autopilot.h + ${CMAKE_CURRENT_SOURCE_DIR}/bmpman/bm_internal.h + ${CMAKE_CURRENT_SOURCE_DIR}/bmpman/bmpman.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/bmpman/bmpman.h + ${CMAKE_CURRENT_SOURCE_DIR}/camera/camera.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/camera/camera.h + ${CMAKE_CURRENT_SOURCE_DIR}/cfile/cfile.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/cfile/cfile.h + ${CMAKE_CURRENT_SOURCE_DIR}/cfile/cfilearchive.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/cfile/cfilearchive.h + ${CMAKE_CURRENT_SOURCE_DIR}/cfile/cfilelist.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/cfile/cfilesystem.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/cfile/cfilesystem.h + ${CMAKE_CURRENT_SOURCE_DIR}/cmdline/cmdline.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/cmdline/cmdline.h + ${CMAKE_CURRENT_SOURCE_DIR}/cmeasure/cmeasure.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/cmeasure/cmeasure.h + ${CMAKE_CURRENT_SOURCE_DIR}/controlconfig/controlsconfig.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/controlconfig/controlsconfig.h + ${CMAKE_CURRENT_SOURCE_DIR}/controlconfig/controlsconfigcommon.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/cutscene/cutscenes.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/cutscene/cutscenes.h + ${CMAKE_CURRENT_SOURCE_DIR}/cutscene/decoder16.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/cutscene/decoder8.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/cutscene/movie.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/cutscene/movie.h + ${CMAKE_CURRENT_SOURCE_DIR}/cutscene/mve_audio.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/cutscene/mvelib.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/cutscene/mvelib.h + ${CMAKE_CURRENT_SOURCE_DIR}/cutscene/mveplayer.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/cutscene/oggplayer.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/cutscene/oggplayer.h + ${CMAKE_CURRENT_SOURCE_DIR}/ddsutils/ddsutils.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/ddsutils/ddsutils.h + ${CMAKE_CURRENT_SOURCE_DIR}/debris/debris.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/debris/debris.h + ${CMAKE_CURRENT_SOURCE_DIR}/debugconsole/console.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/debugconsole/timerbar.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/debugconsole/timerbar.h + ${CMAKE_CURRENT_SOURCE_DIR}/exceptionhandler/exceptionhandler.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/exceptionhandler/exceptionhandler.h + ${CMAKE_CURRENT_SOURCE_DIR}/external_dll/externalcode.h + ${CMAKE_CURRENT_SOURCE_DIR}/external_dll/trackirglobal.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/external_dll/trackirpublic.h + ${CMAKE_CURRENT_SOURCE_DIR}/fireball/fireballs.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/fireball/fireballs.h + ${CMAKE_CURRENT_SOURCE_DIR}/fireball/warpineffect.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/fs2netd/fs2netd_client.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/fs2netd/fs2netd_client.h + ${CMAKE_CURRENT_SOURCE_DIR}/fs2netd/protocol.h + ${CMAKE_CURRENT_SOURCE_DIR}/fs2netd/tcp_client.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/fs2netd/tcp_client.h + ${CMAKE_CURRENT_SOURCE_DIR}/fs2netd/tcp_socket.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/fs2netd/tcp_socket.h + ${CMAKE_CURRENT_SOURCE_DIR}/gamehelp/contexthelp.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/gamehelp/contexthelp.h + ${CMAKE_CURRENT_SOURCE_DIR}/gamehelp/gameplayhelp.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/gamehelp/gameplayhelp.h + ${CMAKE_CURRENT_SOURCE_DIR}/gamesequence/gamesequence.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/gamesequence/gamesequence.h + ${CMAKE_CURRENT_SOURCE_DIR}/gamesnd/eventmusic.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/gamesnd/eventmusic.h + ${CMAKE_CURRENT_SOURCE_DIR}/gamesnd/gamesnd.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/gamesnd/gamesnd.h + ${CMAKE_CURRENT_SOURCE_DIR}/globalincs/alphacolors.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/globalincs/alphacolors.h + ${CMAKE_CURRENT_SOURCE_DIR}/globalincs/def_files.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/globalincs/def_files.h + ${CMAKE_CURRENT_SOURCE_DIR}/globalincs/globals.h + ${CMAKE_CURRENT_SOURCE_DIR}/globalincs/linklist.h + ${CMAKE_CURRENT_SOURCE_DIR}/globalincs/profiling.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/globalincs/pstypes.h + ${CMAKE_CURRENT_SOURCE_DIR}/globalincs/safe_strings.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/globalincs/safe_strings.h + ${CMAKE_CURRENT_SOURCE_DIR}/globalincs/safe_strings_test.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/globalincs/systemvars.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/globalincs/systemvars.h + ${CMAKE_CURRENT_SOURCE_DIR}/globalincs/version.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/globalincs/version.h + ${CMAKE_CURRENT_SOURCE_DIR}/graphics/2d.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/graphics/2d.h + ${CMAKE_CURRENT_SOURCE_DIR}/graphics/font.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/graphics/font.h + ${CMAKE_CURRENT_SOURCE_DIR}/graphics/generic.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/graphics/generic.h + ${CMAKE_CURRENT_SOURCE_DIR}/graphics/grbatch.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/graphics/grbatch.h + ${CMAKE_CURRENT_SOURCE_DIR}/graphics/grinternal.h + ${CMAKE_CURRENT_SOURCE_DIR}/graphics/gropengl.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/graphics/gropengl.h + ${CMAKE_CURRENT_SOURCE_DIR}/graphics/gropenglbmpman.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/graphics/gropenglbmpman.h + ${CMAKE_CURRENT_SOURCE_DIR}/graphics/gropengldraw.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/graphics/gropengldraw.h + ${CMAKE_CURRENT_SOURCE_DIR}/graphics/gropenglextension.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/graphics/gropenglextension.h + ${CMAKE_CURRENT_SOURCE_DIR}/graphics/gropengllight.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/graphics/gropengllight.h + ${CMAKE_CURRENT_SOURCE_DIR}/graphics/gropenglpostprocessing.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/graphics/gropenglpostprocessing.h + ${CMAKE_CURRENT_SOURCE_DIR}/graphics/gropenglshader.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/graphics/gropenglshader.h + ${CMAKE_CURRENT_SOURCE_DIR}/graphics/gropenglstate.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/graphics/gropenglstate.h + ${CMAKE_CURRENT_SOURCE_DIR}/graphics/gropengltexture.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/graphics/gropengltexture.h + ${CMAKE_CURRENT_SOURCE_DIR}/graphics/gropengltnl.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/graphics/gropengltnl.h + ${CMAKE_CURRENT_SOURCE_DIR}/graphics/grstub.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/graphics/grstub.h + ${CMAKE_CURRENT_SOURCE_DIR}/graphics/line.h + ${CMAKE_CURRENT_SOURCE_DIR}/graphics/tmapper.h + ${CMAKE_CURRENT_SOURCE_DIR}/hud/hud.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/hud/hud.h + ${CMAKE_CURRENT_SOURCE_DIR}/hud/hudartillery.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/hud/hudartillery.h + ${CMAKE_CURRENT_SOURCE_DIR}/hud/hudbrackets.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/hud/hudbrackets.h + ${CMAKE_CURRENT_SOURCE_DIR}/hud/hudconfig.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/hud/hudconfig.h + ${CMAKE_CURRENT_SOURCE_DIR}/hud/hudescort.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/hud/hudescort.h + ${CMAKE_CURRENT_SOURCE_DIR}/hud/hudets.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/hud/hudets.h + ${CMAKE_CURRENT_SOURCE_DIR}/hud/hudgauges.h + ${CMAKE_CURRENT_SOURCE_DIR}/hud/hudlock.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/hud/hudlock.h + ${CMAKE_CURRENT_SOURCE_DIR}/hud/hudmessage.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/hud/hudmessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/hud/hudnavigation.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/hud/hudnavigation.h + ${CMAKE_CURRENT_SOURCE_DIR}/hud/hudobserver.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/hud/hudobserver.h + ${CMAKE_CURRENT_SOURCE_DIR}/hud/hudparse.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/hud/hudparse.h + ${CMAKE_CURRENT_SOURCE_DIR}/hud/hudreticle.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/hud/hudreticle.h + ${CMAKE_CURRENT_SOURCE_DIR}/hud/hudshield.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/hud/hudshield.h + ${CMAKE_CURRENT_SOURCE_DIR}/hud/hudsquadmsg.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/hud/hudsquadmsg.h + ${CMAKE_CURRENT_SOURCE_DIR}/hud/hudtarget.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/hud/hudtarget.h + ${CMAKE_CURRENT_SOURCE_DIR}/hud/hudtargetbox.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/hud/hudtargetbox.h + ${CMAKE_CURRENT_SOURCE_DIR}/hud/hudwingmanstatus.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/hud/hudwingmanstatus.h + ${CMAKE_CURRENT_SOURCE_DIR}/iff_defs/iff_defs.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/iff_defs/iff_defs.h + ${CMAKE_CURRENT_SOURCE_DIR}/inetfile/cftp.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/inetfile/cftp.h + ${CMAKE_CURRENT_SOURCE_DIR}/inetfile/chttpget.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/inetfile/chttpget.h + ${CMAKE_CURRENT_SOURCE_DIR}/inetfile/inetgetfile.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/inetfile/inetgetfile.h + ${CMAKE_CURRENT_SOURCE_DIR}/io/key.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/io/key.h + ${CMAKE_CURRENT_SOURCE_DIR}/io/keycontrol.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/io/keycontrol.h + ${CMAKE_CURRENT_SOURCE_DIR}/io/mouse.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/io/mouse.h + ${CMAKE_CURRENT_SOURCE_DIR}/io/timer.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/io/timer.h + ${CMAKE_CURRENT_SOURCE_DIR}/jpgutils/jpgutils.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/jpgutils/jpgutils.h + ${CMAKE_CURRENT_SOURCE_DIR}/jumpnode/jumpnode.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/jumpnode/jumpnode.h + ${CMAKE_CURRENT_SOURCE_DIR}/lighting/lighting.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/lighting/lighting.h + ${CMAKE_CURRENT_SOURCE_DIR}/localization/fhash.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/localization/fhash.h + ${CMAKE_CURRENT_SOURCE_DIR}/localization/localize.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/localization/localize.h + ${CMAKE_CURRENT_SOURCE_DIR}/math/fix.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/math/fix.h + ${CMAKE_CURRENT_SOURCE_DIR}/math/floating.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/math/floating.h + ${CMAKE_CURRENT_SOURCE_DIR}/math/fvi.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/math/fvi.h + ${CMAKE_CURRENT_SOURCE_DIR}/math/spline.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/math/spline.h + ${CMAKE_CURRENT_SOURCE_DIR}/math/staticrand.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/math/staticrand.h + ${CMAKE_CURRENT_SOURCE_DIR}/math/vecmat.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/math/vecmat.h + ${CMAKE_CURRENT_SOURCE_DIR}/menuui/barracks.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/menuui/barracks.h + ${CMAKE_CURRENT_SOURCE_DIR}/menuui/credits.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/menuui/credits.h + ${CMAKE_CURRENT_SOURCE_DIR}/menuui/fishtank.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/menuui/fishtank.h + ${CMAKE_CURRENT_SOURCE_DIR}/menuui/mainhallmenu.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/menuui/mainhallmenu.h + ${CMAKE_CURRENT_SOURCE_DIR}/menuui/mainhalltemp.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/menuui/mainhalltemp.h + ${CMAKE_CURRENT_SOURCE_DIR}/menuui/optionsmenu.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/menuui/optionsmenu.h + ${CMAKE_CURRENT_SOURCE_DIR}/menuui/optionsmenumulti.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/menuui/optionsmenumulti.h + ${CMAKE_CURRENT_SOURCE_DIR}/menuui/playermenu.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/menuui/playermenu.h + ${CMAKE_CURRENT_SOURCE_DIR}/menuui/readyroom.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/menuui/readyroom.h + ${CMAKE_CURRENT_SOURCE_DIR}/menuui/snazzyui.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/menuui/snazzyui.h + ${CMAKE_CURRENT_SOURCE_DIR}/menuui/techmenu.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/menuui/techmenu.h + ${CMAKE_CURRENT_SOURCE_DIR}/menuui/trainingmenu.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/menuui/trainingmenu.h + ${CMAKE_CURRENT_SOURCE_DIR}/mission/missionbriefcommon.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/mission/missionbriefcommon.h + ${CMAKE_CURRENT_SOURCE_DIR}/mission/missioncampaign.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/mission/missioncampaign.h + ${CMAKE_CURRENT_SOURCE_DIR}/mission/missiongoals.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/mission/missiongoals.h + ${CMAKE_CURRENT_SOURCE_DIR}/mission/missiongrid.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/mission/missiongrid.h + ${CMAKE_CURRENT_SOURCE_DIR}/mission/missionhotkey.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/mission/missionhotkey.h + ${CMAKE_CURRENT_SOURCE_DIR}/mission/missionload.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/mission/missionload.h + ${CMAKE_CURRENT_SOURCE_DIR}/mission/missionlog.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/mission/missionlog.h + ${CMAKE_CURRENT_SOURCE_DIR}/mission/missionmessage.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/mission/missionmessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/mission/missionparse.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/mission/missionparse.h + ${CMAKE_CURRENT_SOURCE_DIR}/mission/missiontraining.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/mission/missiontraining.h + ${CMAKE_CURRENT_SOURCE_DIR}/missionui/chatbox.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/missionui/chatbox.h + ${CMAKE_CURRENT_SOURCE_DIR}/missionui/fictionviewer.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/missionui/fictionviewer.h + ${CMAKE_CURRENT_SOURCE_DIR}/missionui/missionbrief.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/missionui/missionbrief.h + ${CMAKE_CURRENT_SOURCE_DIR}/missionui/missioncmdbrief.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/missionui/missioncmdbrief.h + ${CMAKE_CURRENT_SOURCE_DIR}/missionui/missiondebrief.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/missionui/missiondebrief.h + ${CMAKE_CURRENT_SOURCE_DIR}/missionui/missionloopbrief.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/missionui/missionloopbrief.h + ${CMAKE_CURRENT_SOURCE_DIR}/missionui/missionpause.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/missionui/missionpause.h + ${CMAKE_CURRENT_SOURCE_DIR}/missionui/missionrecommend.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/missionui/missionrecommend.h + ${CMAKE_CURRENT_SOURCE_DIR}/missionui/missionscreencommon.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/missionui/missionscreencommon.h + ${CMAKE_CURRENT_SOURCE_DIR}/missionui/missionshipchoice.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/missionui/missionshipchoice.h + ${CMAKE_CURRENT_SOURCE_DIR}/missionui/missionstats.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/missionui/missionstats.h + ${CMAKE_CURRENT_SOURCE_DIR}/missionui/missionweaponchoice.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/missionui/missionweaponchoice.h + ${CMAKE_CURRENT_SOURCE_DIR}/missionui/redalert.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/missionui/redalert.h + ${CMAKE_CURRENT_SOURCE_DIR}/mod_table/mod_table.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/mod_table/mod_table.h + ${CMAKE_CURRENT_SOURCE_DIR}/model/model.h + ${CMAKE_CURRENT_SOURCE_DIR}/model/modelanim.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/model/modelanim.h + ${CMAKE_CURRENT_SOURCE_DIR}/model/modelcollide.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/model/modelinterp.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/model/modeloctant.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/model/modelread.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/model/modelsinc.h + ${CMAKE_CURRENT_SOURCE_DIR}/nebula/neb.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nebula/neb.h + ${CMAKE_CURRENT_SOURCE_DIR}/nebula/neblightning.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nebula/neblightning.h + ${CMAKE_CURRENT_SOURCE_DIR}/network/chat_api.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/network/chat_api.h + ${CMAKE_CURRENT_SOURCE_DIR}/network/multi.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/network/multi.h + ${CMAKE_CURRENT_SOURCE_DIR}/network/multi_campaign.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/network/multi_campaign.h + ${CMAKE_CURRENT_SOURCE_DIR}/network/multi_data.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/network/multi_data.h + ${CMAKE_CURRENT_SOURCE_DIR}/network/multi_dogfight.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/network/multi_dogfight.h + ${CMAKE_CURRENT_SOURCE_DIR}/network/multi_endgame.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/network/multi_endgame.h + ${CMAKE_CURRENT_SOURCE_DIR}/network/multi_ingame.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/network/multi_ingame.h + ${CMAKE_CURRENT_SOURCE_DIR}/network/multi_kick.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/network/multi_kick.h + ${CMAKE_CURRENT_SOURCE_DIR}/network/multi_log.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/network/multi_log.h + ${CMAKE_CURRENT_SOURCE_DIR}/network/multi_obj.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/network/multi_obj.h + ${CMAKE_CURRENT_SOURCE_DIR}/network/multi_observer.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/network/multi_observer.h + ${CMAKE_CURRENT_SOURCE_DIR}/network/multi_options.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/network/multi_options.h + ${CMAKE_CURRENT_SOURCE_DIR}/network/multi_pause.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/network/multi_pause.h + ${CMAKE_CURRENT_SOURCE_DIR}/network/multi_pinfo.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/network/multi_pinfo.h + ${CMAKE_CURRENT_SOURCE_DIR}/network/multi_ping.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/network/multi_ping.h + ${CMAKE_CURRENT_SOURCE_DIR}/network/multi_pmsg.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/network/multi_pmsg.h + ${CMAKE_CURRENT_SOURCE_DIR}/network/multi_pxo.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/network/multi_pxo.h + ${CMAKE_CURRENT_SOURCE_DIR}/network/multi_rate.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/network/multi_rate.h + ${CMAKE_CURRENT_SOURCE_DIR}/network/multi_respawn.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/network/multi_respawn.h + ${CMAKE_CURRENT_SOURCE_DIR}/network/multi_sexp.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/network/multi_sexp.h + ${CMAKE_CURRENT_SOURCE_DIR}/network/multi_team.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/network/multi_team.h + ${CMAKE_CURRENT_SOURCE_DIR}/network/multi_update.h + ${CMAKE_CURRENT_SOURCE_DIR}/network/multi_voice.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/network/multi_voice.h + ${CMAKE_CURRENT_SOURCE_DIR}/network/multi_xfer.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/network/multi_xfer.h + ${CMAKE_CURRENT_SOURCE_DIR}/network/multilag.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/network/multilag.h + ${CMAKE_CURRENT_SOURCE_DIR}/network/multimsgs.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/network/multimsgs.h + ${CMAKE_CURRENT_SOURCE_DIR}/network/multiteamselect.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/network/multiteamselect.h + ${CMAKE_CURRENT_SOURCE_DIR}/network/multiui.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/network/multiui.h + ${CMAKE_CURRENT_SOURCE_DIR}/network/multiutil.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/network/multiutil.h + ${CMAKE_CURRENT_SOURCE_DIR}/network/psnet2.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/network/psnet2.h + ${CMAKE_CURRENT_SOURCE_DIR}/network/stand_gui-unix.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/network/stand_gui.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/network/stand_gui.h + ${CMAKE_CURRENT_SOURCE_DIR}/object/collidedebrisship.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/object/collidedebrisweapon.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/object/collideshipship.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/object/collideshipweapon.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/object/collideweaponweapon.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/object/deadobjectdock.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/object/deadobjectdock.h + ${CMAKE_CURRENT_SOURCE_DIR}/object/objcollide.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/object/objcollide.h + ${CMAKE_CURRENT_SOURCE_DIR}/object/object.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/object/object.h + ${CMAKE_CURRENT_SOURCE_DIR}/object/objectdock.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/object/objectdock.h + ${CMAKE_CURRENT_SOURCE_DIR}/object/objectshield.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/object/objectshield.h + ${CMAKE_CURRENT_SOURCE_DIR}/object/objectsnd.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/object/objectsnd.h + ${CMAKE_CURRENT_SOURCE_DIR}/object/objectsort.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/object/parseobjectdock.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/object/parseobjectdock.h + ${CMAKE_CURRENT_SOURCE_DIR}/object/waypoint.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/object/waypoint.h + ${CMAKE_CURRENT_SOURCE_DIR}/observer/observer.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/observer/observer.h + ${CMAKE_CURRENT_SOURCE_DIR}/palman/palman.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/palman/palman.h + ${CMAKE_CURRENT_SOURCE_DIR}/parse/encrypt.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/parse/encrypt.h + ${CMAKE_CURRENT_SOURCE_DIR}/parse/generic_log.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/parse/generic_log.h + ${CMAKE_CURRENT_SOURCE_DIR}/parse/lua.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/parse/lua.h + ${CMAKE_CURRENT_SOURCE_DIR}/parse/parselo.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/parse/parselo.h + ${CMAKE_CURRENT_SOURCE_DIR}/parse/scripting.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/parse/scripting.h + ${CMAKE_CURRENT_SOURCE_DIR}/parse/sexp.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/parse/sexp.h + ${CMAKE_CURRENT_SOURCE_DIR}/particle/particle.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/particle/particle.h + ${CMAKE_CURRENT_SOURCE_DIR}/pcxutils/pcxutils.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pcxutils/pcxutils.h + ${CMAKE_CURRENT_SOURCE_DIR}/physics/physics.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/physics/physics.h + ${CMAKE_CURRENT_SOURCE_DIR}/pilotfile/csg.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pilotfile/csg_convert.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pilotfile/pilotfile.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pilotfile/pilotfile.h + ${CMAKE_CURRENT_SOURCE_DIR}/pilotfile/pilotfile_convert.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pilotfile/pilotfile_convert.h + ${CMAKE_CURRENT_SOURCE_DIR}/pilotfile/plr.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pilotfile/plr_convert.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/playerman/managepilot.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/playerman/managepilot.h + ${CMAKE_CURRENT_SOURCE_DIR}/playerman/player.h + ${CMAKE_CURRENT_SOURCE_DIR}/playerman/playercontrol.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pngutils/pngutils.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pngutils/pngutils.h + ${CMAKE_CURRENT_SOURCE_DIR}/popup/popup.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/popup/popup.h + ${CMAKE_CURRENT_SOURCE_DIR}/popup/popupdead.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/popup/popupdead.h + ${CMAKE_CURRENT_SOURCE_DIR}/radar/radar.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/radar/radar.h + ${CMAKE_CURRENT_SOURCE_DIR}/radar/radardradis.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/radar/radardradis.h + ${CMAKE_CURRENT_SOURCE_DIR}/radar/radarorb.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/radar/radarorb.h + ${CMAKE_CURRENT_SOURCE_DIR}/radar/radarsetup.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/radar/radarsetup.h + ${CMAKE_CURRENT_SOURCE_DIR}/render/3d.h + ${CMAKE_CURRENT_SOURCE_DIR}/render/3dclipper.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/render/3ddraw.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/render/3dinternal.h + ${CMAKE_CURRENT_SOURCE_DIR}/render/3dlaser.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/render/3dmath.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/render/3dsetup.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/ship/afterburner.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/ship/afterburner.h + ${CMAKE_CURRENT_SOURCE_DIR}/ship/awacs.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/ship/awacs.h + ${CMAKE_CURRENT_SOURCE_DIR}/ship/shield.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/ship/ship.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/ship/ship.h + ${CMAKE_CURRENT_SOURCE_DIR}/ship/shipcontrails.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/ship/shipcontrails.h + ${CMAKE_CURRENT_SOURCE_DIR}/ship/shipfx.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/ship/shipfx.h + ${CMAKE_CURRENT_SOURCE_DIR}/ship/shiphit.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/ship/shiphit.h + ${CMAKE_CURRENT_SOURCE_DIR}/ship/subsysdamage.h + ${CMAKE_CURRENT_SOURCE_DIR}/sound/acm.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/sound/acm.h + ${CMAKE_CURRENT_SOURCE_DIR}/sound/audiostr.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/sound/audiostr.h + ${CMAKE_CURRENT_SOURCE_DIR}/sound/ds.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/sound/ds.h + ${CMAKE_CURRENT_SOURCE_DIR}/sound/ds3d.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/sound/ds3d.h + ${CMAKE_CURRENT_SOURCE_DIR}/sound/dscap.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/sound/dscap.h + ${CMAKE_CURRENT_SOURCE_DIR}/sound/fsspeech.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/sound/fsspeech.h + ${CMAKE_CURRENT_SOURCE_DIR}/sound/ogg/ogg.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/sound/ogg/ogg.h + ${CMAKE_CURRENT_SOURCE_DIR}/sound/openal.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/sound/openal.h + ${CMAKE_CURRENT_SOURCE_DIR}/sound/rtvoice.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/sound/rtvoice.h + ${CMAKE_CURRENT_SOURCE_DIR}/sound/sound.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/sound/sound.h + ${CMAKE_CURRENT_SOURCE_DIR}/sound/speech.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/sound/speech.h + ${CMAKE_CURRENT_SOURCE_DIR}/sound/voicerec.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/sound/voicerec.h + ${CMAKE_CURRENT_SOURCE_DIR}/species_defs/species_defs.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/species_defs/species_defs.h + ${CMAKE_CURRENT_SOURCE_DIR}/starfield/nebula.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/starfield/nebula.h + ${CMAKE_CURRENT_SOURCE_DIR}/starfield/starfield.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/starfield/starfield.h + ${CMAKE_CURRENT_SOURCE_DIR}/starfield/supernova.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/starfield/supernova.h + ${CMAKE_CURRENT_SOURCE_DIR}/stats/medals.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/stats/medals.h + ${CMAKE_CURRENT_SOURCE_DIR}/stats/scoring.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/stats/scoring.h + ${CMAKE_CURRENT_SOURCE_DIR}/stats/stats.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/stats/stats.h + ${CMAKE_CURRENT_SOURCE_DIR}/tgautils/tgautils.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/tgautils/tgautils.h + ${CMAKE_CURRENT_SOURCE_DIR}/ui/button.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/ui/checkbox.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/ui/gadget.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/ui/icon.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/ui/inputbox.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/ui/keytrap.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/ui/listbox.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/ui/radio.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/ui/scroll.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/ui/slider.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/ui/slider2.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/ui/ui.h + ${CMAKE_CURRENT_SOURCE_DIR}/ui/uidefs.h + ${CMAKE_CURRENT_SOURCE_DIR}/ui/uidraw.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/ui/uimouse.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/ui/window.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/weapon/beam.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/weapon/beam.h + ${CMAKE_CURRENT_SOURCE_DIR}/weapon/corkscrew.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/weapon/corkscrew.h + ${CMAKE_CURRENT_SOURCE_DIR}/weapon/emp.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/weapon/emp.h + ${CMAKE_CURRENT_SOURCE_DIR}/weapon/flak.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/weapon/flak.h + ${CMAKE_CURRENT_SOURCE_DIR}/weapon/muzzleflash.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/weapon/muzzleflash.h + ${CMAKE_CURRENT_SOURCE_DIR}/weapon/shockwave.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/weapon/shockwave.h + ${CMAKE_CURRENT_SOURCE_DIR}/weapon/swarm.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/weapon/swarm.h + ${CMAKE_CURRENT_SOURCE_DIR}/weapon/trails.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/weapon/trails.h + ${CMAKE_CURRENT_SOURCE_DIR}/weapon/weapon.h + ${CMAKE_CURRENT_SOURCE_DIR}/weapon/weapons.cpp + # For "old" MSVC? + #${CMAKE_CURRENT_SOURCE_DIR}/globalincs/fsmemory.cpp + #${CMAKE_CURRENT_SOURCE_DIR}/globalincs/fsmemory.h +) + +if(UNIX) + set(LIBCODE_SOURCES + ${LIBCODE_SOURCES} + ${CMAKE_CURRENT_SOURCE_DIR}/io/joy.h + ${CMAKE_CURRENT_SOURCE_DIR}/io/joy_ff.h + ${CMAKE_CURRENT_SOURCE_DIR}/io/joy-unix.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/osapi/osapi_unix.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/osapi/osapi.h + ${CMAKE_CURRENT_SOURCE_DIR}/osapi/osregistry_unix.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/osapi/osregistry.h + ${CMAKE_CURRENT_SOURCE_DIR}/osapi/outwnd_unix.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/osapi/outwnd.h + ${CMAKE_CURRENT_SOURCE_DIR}/windows_stub/stubs.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/windows_stub/config.h + ) +elseif(MSVC) + set(LIBCODE_SOURCES + ${LIBCODE_SOURCES} + ${CMAKE_CURRENT_SOURCE_DIR}/directx/vasync.h + ${CMAKE_CURRENT_SOURCE_DIR}/directx/vd3dtypes.h + ${CMAKE_CURRENT_SOURCE_DIR}/directx/vddraw.h + ${CMAKE_CURRENT_SOURCE_DIR}/directx/vdinput.h + ${CMAKE_CURRENT_SOURCE_DIR}/directx/vdplay.h + ${CMAKE_CURRENT_SOURCE_DIR}/directx/vdplobby.h + ${CMAKE_CURRENT_SOURCE_DIR}/directx/vdsetup.h + ${CMAKE_CURRENT_SOURCE_DIR}/directx/vdvp.h + ${CMAKE_CURRENT_SOURCE_DIR}/globalincs/mspdb_callstack.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/globalincs/mspdb_callstack.h + ${CMAKE_CURRENT_SOURCE_DIR}/globalincs/windebug.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/graphics/gl/GLAUX.h + ${CMAKE_CURRENT_SOURCE_DIR}/graphics/gl/Glext.h + ${CMAKE_CURRENT_SOURCE_DIR}/graphics/gl/GLU.h + ${CMAKE_CURRENT_SOURCE_DIR}/graphics/gl/wglext.h + ${CMAKE_CURRENT_SOURCE_DIR}/graphics/gl/Gl.h + ${CMAKE_CURRENT_SOURCE_DIR}/io/joy.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/io/joy_ff.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/io/sw_error.hpp + ${CMAKE_CURRENT_SOURCE_DIR}/io/sw_force.h + ${CMAKE_CURRENT_SOURCE_DIR}/io/sw_guid.hpp + ${CMAKE_CURRENT_SOURCE_DIR}/io/swff_lib.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/network/multi_update.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/network/multi_update.h + ${CMAKE_CURRENT_SOURCE_DIR}/network/stand_gui.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/osapi/monopub.h + ${CMAKE_CURRENT_SOURCE_DIR}/osapi/osapi.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/osapi/osapi.h + ${CMAKE_CURRENT_SOURCE_DIR}/osapi/osregistry.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/osapi/osregistry.h + ${CMAKE_CURRENT_SOURCE_DIR}/osapi/outwnd.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/osapi/outwnd.h + ) +endif() + +# WARNING: Untested. +option(FS2OPEN_SPEECH "Enable Text-to-Speech" FALSE) +if(FS2OPEN_SPEECH) + set_source_files_properties( + ${CMAKE_CURRENT_SOURCE_DIR}/sound/fsspeech.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/sound/fsspeech.h + ${CMAKE_CURRENT_SOURCE_DIR}/sound/speech.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/sound/speech.h + PROPERTIES + COMPILE_DEFINITIONS "FS2_SPEECH" + ) +endif(FS2OPEN_SPEECH) + +add_subdirectory(freespace2) + +find_package(MFC) +if(MFC_FOUND) + add_subdirectory(fred2) +endif(MFC_FOUND) + +find_package(wxWidgets COMPONENTS gl core base) +if(wxWidgets_FOUND) + add_subdirectory(wxfred2) +endif(wxWidgets_FOUND) diff --git a/code/fred2/CMakeLists.txt b/code/fred2/CMakeLists.txt new file mode 100644 index 0000000..2e251a4 --- /dev/null +++ b/code/fred2/CMakeLists.txt @@ -0,0 +1,209 @@ + +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}) + +set(FRED2_SOURCES + ${CMAKE_CURRENT_SOURCE_DIR}/altshipclassdlg.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/altshipclassdlg.h + ${CMAKE_CURRENT_SOURCE_DIR}/fictionviewerdlg.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/fictionviewerdlg.h + ${CMAKE_CURRENT_SOURCE_DIR}/addvariabledlg.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/addvariabledlg.h + ${CMAKE_CURRENT_SOURCE_DIR}/adjustgriddlg.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/adjustgriddlg.h + ${CMAKE_CURRENT_SOURCE_DIR}/asteroideditordlg.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/asteroideditordlg.h + ${CMAKE_CURRENT_SOURCE_DIR}/backgroundchooser.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/backgroundchooser.h + ${CMAKE_CURRENT_SOURCE_DIR}/bgbitmapdlg.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/bgbitmapdlg.h + ${CMAKE_CURRENT_SOURCE_DIR}/briefingeditordlg.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/briefingeditordlg.h + ${CMAKE_CURRENT_SOURCE_DIR}/campaigneditordlg.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/campaigneditordlg.h + ${CMAKE_CURRENT_SOURCE_DIR}/campaignfilelistbox.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/campaignfilelistbox.h + ${CMAKE_CURRENT_SOURCE_DIR}/campaigntreeview.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/campaigntreeview.h + ${CMAKE_CURRENT_SOURCE_DIR}/campaigntreewnd.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/campaigntreewnd.h + ${CMAKE_CURRENT_SOURCE_DIR}/cmdbrief.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/cmdbrief.h + ${CMAKE_CURRENT_SOURCE_DIR}/createwingdlg.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/createwingdlg.h + ${CMAKE_CURRENT_SOURCE_DIR}/customwingnames.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/customwingnames.h + ${CMAKE_CURRENT_SOURCE_DIR}/debriefingeditordlg.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/debriefingeditordlg.h + ${CMAKE_CURRENT_SOURCE_DIR}/dialog1.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/dialog1.h + ${CMAKE_CURRENT_SOURCE_DIR}/dumpstats.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/dumpstats.h + ${CMAKE_CURRENT_SOURCE_DIR}/editor.h + ${CMAKE_CURRENT_SOURCE_DIR}/eventeditor.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/eventeditor.h + ${CMAKE_CURRENT_SOURCE_DIR}/folderdlg.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/folderdlg.h + ${CMAKE_CURRENT_SOURCE_DIR}/fred.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/fred.h + ${CMAKE_CURRENT_SOURCE_DIR}/fred.rc + ${CMAKE_CURRENT_SOURCE_DIR}/freddoc.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/freddoc.h + ${CMAKE_CURRENT_SOURCE_DIR}/fredrender.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/fredrender.h + ${CMAKE_CURRENT_SOURCE_DIR}/fredstubs.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/fredview.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/fredview.h + ${CMAKE_CURRENT_SOURCE_DIR}/grid.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/grid.h + ${CMAKE_CURRENT_SOURCE_DIR}/ignoreordersdlg.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/ignoreordersdlg.h + ${CMAKE_CURRENT_SOURCE_DIR}/initialships.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/initialships.h + ${CMAKE_CURRENT_SOURCE_DIR}/initialstatus.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/initialstatus.h + ${CMAKE_CURRENT_SOURCE_DIR}/mainfrm.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/mainfrm.h + ${CMAKE_CURRENT_SOURCE_DIR}/management.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/management.h + ${CMAKE_CURRENT_SOURCE_DIR}/messageeditordlg.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/messageeditordlg.h + ${CMAKE_CURRENT_SOURCE_DIR}/missiongoalsdlg.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/missiongoalsdlg.h + ${CMAKE_CURRENT_SOURCE_DIR}/missionnotesdlg.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/missionnotesdlg.h + ${CMAKE_CURRENT_SOURCE_DIR}/missionsave.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/missionsave.h + ${CMAKE_CURRENT_SOURCE_DIR}/modifyvariabledlg.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/modifyvariabledlg.h + ${CMAKE_CURRENT_SOURCE_DIR}/operatorargtypeselect.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/operatorargtypeselect.h + ${CMAKE_CURRENT_SOURCE_DIR}/orienteditor.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/orienteditor.h + ${CMAKE_CURRENT_SOURCE_DIR}/playerstarteditor.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/playerstarteditor.h + ${CMAKE_CURRENT_SOURCE_DIR}/prefsdlg.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/prefsdlg.h + ${CMAKE_CURRENT_SOURCE_DIR}/reinforcementeditordlg.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/reinforcementeditordlg.h + ${CMAKE_CURRENT_SOURCE_DIR}/resource.h + ${CMAKE_CURRENT_SOURCE_DIR}/restrictpaths.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/restrictpaths.h + ${CMAKE_CURRENT_SOURCE_DIR}/setglobalshipflags.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/setglobalshipflags.h + ${CMAKE_CURRENT_SOURCE_DIR}/sexp_tree.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/sexp_tree.h + ${CMAKE_CURRENT_SOURCE_DIR}/shieldsysdlg.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/shieldsysdlg.h + ${CMAKE_CURRENT_SOURCE_DIR}/ship_select.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/ship_select.h + ${CMAKE_CURRENT_SOURCE_DIR}/shipchecklistbox.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/shipchecklistbox.h + ${CMAKE_CURRENT_SOURCE_DIR}/shipclasseditordlg.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/shipclasseditordlg.h + ${CMAKE_CURRENT_SOURCE_DIR}/shipeditordlg.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/shipeditordlg.h + ${CMAKE_CURRENT_SOURCE_DIR}/shipflagsdlg.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/shipflagsdlg.h + ${CMAKE_CURRENT_SOURCE_DIR}/shipgoalsdlg.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/shipgoalsdlg.h + ${CMAKE_CURRENT_SOURCE_DIR}/shipspecialdamage.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/shipspecialdamage.h + ${CMAKE_CURRENT_SOURCE_DIR}/shipspecialhitpoints.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/shipspecialhitpoints.h + ${CMAKE_CURRENT_SOURCE_DIR}/shiptexturesdlg.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/shiptexturesdlg.h + ${CMAKE_CURRENT_SOURCE_DIR}/soundenvironmentdlg.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/soundenvironmentdlg.h + ${CMAKE_CURRENT_SOURCE_DIR}/starfieldeditor.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/starfieldeditor.h + ${CMAKE_CURRENT_SOURCE_DIR}/stdafx.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/stdafx.h + ${CMAKE_CURRENT_SOURCE_DIR}/textviewdlg.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/textviewdlg.h + ${CMAKE_CURRENT_SOURCE_DIR}/voiceactingmanager.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/voiceactingmanager.h + ${CMAKE_CURRENT_SOURCE_DIR}/waypointpathdlg.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/waypointpathdlg.h + ${CMAKE_CURRENT_SOURCE_DIR}/weaponeditordlg.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/weaponeditordlg.h + ${CMAKE_CURRENT_SOURCE_DIR}/wing.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/wing.h + ${CMAKE_CURRENT_SOURCE_DIR}/wing_editor.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/wing_editor.h +) + +set_source_files_properties( + ${CMAKE_CURRENT_SOURCE_DIR}/fred.rc + PROPERTIES + LANGUAGE RC +) + +set(CMAKE_MFC_FLAG 1) + +add_executable(fred2 WIN32 ${LIBCODE_SOURCES} ${FRED2_SOURCES}) +build_solution_tree(fred2) + +set_target_properties(fred2 PROPERTIES + COMPILE_DEFINITIONS_RELEASE "NDEBUG" + COMPILE_DEFINITIONS_RELEASE_SSE "NDEBUG" + COMPILE_DEFINITIONS_RELEASE_SSE2 "NDEBUG" + COMPILE_DEFINITIONS_RELEASE_AVX "NDEBUG" + COMPILE_DEFINITIONS_DEBUG "_DEBUG;PDB_DEBUGGING=1;_HAS_ITERATOR_DEBUGGING=0" + COMPILE_DEFINITIONS_DEBUG_SSE "_DEBUG;PDB_DEBUGGING=1;_HAS_ITERATOR_DEBUGGING=0" + COMPILE_DEFINITIONS_DEBUG_SSE2 "_DEBUG;PDB_DEBUGGING=1;_HAS_ITERATOR_DEBUGGING=0" + COMPILE_DEFINITIONS_DEBUG_AVX "_DEBUG;PDB_DEBUGGING=1;_HAS_ITERATOR_DEBUGGING=0" + RELEASE_POSTFIX "_${VERSION_STRING}" + RELEASE_SSE_POSTFIX "_${VERSION_STRING}-SSE" + RELEASE_SSE2_POSTFIX "_${VERSION_STRING}-SSE2" + RELEASE_AVX_POSTFIX "_${VERSION_STRING}-AVX" + DEBUG_POSTFIX "_${VERSION_STRING}-DEBUG" + DEBUG_SSE_POSTFIX "_${VERSION_STRING}-DEBUG-SSE" + DEBUG_SSE2_POSTFIX "_${VERSION_STRING}-DEBUG-SSE2" + DEBUG_AVX_POSTFIX "_${VERSION_STRING}-DEBUG-AVX" +) + +add_definitions( + /DFRED + /DWINVER=0x0501 + /D_WIN32_WINNT=0x0501 + /D_WINDOWS + /DWIN32 + /D_CRT_SECURE_NO_DEPRECATE + /D_SECURE_SCL=0 +) +include_directories( + ${PROJECT_SOURCE_DIR}/code + ${JPEG_INCLUDE_DIR} + ${LUA_INCLUDE_DIR} + ${OPENAL_INCLUDE_DIR} + ${PNG_INCLUDE_DIR} + ${ZLIB_INCLUDE_DIR} + ${OGG_INCLUDE_DIRS} + ${VORBIS_INCLUDE_DIRS} + ${VORBISFILE_INCLUDE_DIRS} + ${THEROA_INCLUDE_DIRS} +) +target_link_libraries(fred2 + ogg + vorbis + vorbisfile + theora + zlib + png + lua + jpeg + openal + ${DIRECTX_LIBRARIRES} + debug "nafxcwd.lib" + optimized "nafxcw.lib" +) +# NOTE: This doesn't work with the NMake generator. +list(APPEND CMAKE_CXX_STANDARD_LIBRARIES + comctl32.lib + msacm32.lib + odbc32.lib + odbccp32.lib + vfw32.lib + winmm.lib + wsock32.lib +) diff --git a/code/freespace2/CMakeLists.txt b/code/freespace2/CMakeLists.txt new file mode 100644 index 0000000..d2f11aa --- /dev/null +++ b/code/freespace2/CMakeLists.txt @@ -0,0 +1,109 @@ + +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}) + +set(FS2OPEN_SOURCES + ${CMAKE_CURRENT_SOURCE_DIR}/freespace.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/freespace.h + ${CMAKE_CURRENT_SOURCE_DIR}/freespace.rc + ${CMAKE_CURRENT_SOURCE_DIR}/freespaceresource.h + ${CMAKE_CURRENT_SOURCE_DIR}/levelpaging.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/levelpaging.h + ${PROJECT_SOURCE_DIR}/code/lab/lab.cpp + ${PROJECT_SOURCE_DIR}/code/lab/lab.h + ${PROJECT_SOURCE_DIR}/code/lab/wmcgui.cpp + ${PROJECT_SOURCE_DIR}/code/lab/wmcgui.h +) + +add_executable(fs2_open WIN32 ${LIBCODE_SOURCES} ${FS2OPEN_SOURCES}) +build_solution_tree(fs2_open) + +set_target_properties(fs2_open PROPERTIES + COMPILE_DEFINITIONS_RELEASE "NDEBUG" + COMPILE_DEFINITIONS_RELEASE_SSE "NDEBUG" + COMPILE_DEFINITIONS_RELEASE_SSE2 "NDEBUG" + COMPILE_DEFINITIONS_RELEASE_AVX "NDEBUG" + COMPILE_DEFINITIONS_DEBUG "_DEBUG" + COMPILE_DEFINITIONS_DEBUG_SSE "_DEBUG" + COMPILE_DEFINITIONS_DEBUG_SSE2 "_DEBUG" + COMPILE_DEFINITIONS_DEBUG_AVX "_DEBUG" + RELEASE_POSTFIX "_${VERSION_STRING}" + RELEASE_SSE_POSTFIX "_${VERSION_STRING}-SSE" + RELEASE_SSE2_POSTFIX "_${VERSION_STRING}-SSE2" + RELEASE_AVX_POSTFIX "_${VERSION_STRING}-AVX" + DEBUG_POSTFIX "_${VERSION_STRING}-DEBUG" + DEBUG_SSE_POSTFIX "_${VERSION_STRING}-DEBUG-SSE" + DEBUG_SSE2_POSTFIX "_${VERSION_STRING}-DEBUG-SSE2" + DEBUG_AVX_POSTFIX "_${VERSION_STRING}-DEBUG-AVX" +) +include_directories(fs2_open PUBLIC + ${PROJECT_SOURCE_DIR}/code + ${JPEG_INCLUDE_DIR} + ${LUA_INCLUDE_DIR} + ${OPENAL_INCLUDE_DIR} + ${PNG_INCLUDE_DIR} + ${OGG_INCLUDE_DIRS} + ${VORBIS_INCLUDE_DIRS} + ${VORBISFILE_INCLUDE_DIRS} + ${THEROA_INCLUDE_DIRS} + ${ZLIB_INCLUDE_DIR} +) + +if(UNIX) + add_definitions( + -DSCP_UNIX + -DLUA_USE_LINUX + ) + include_directories( + ${OPENGL_INCLUDE_DIR} + ${SDL_INCLUDE_DIR} + ) + target_link_libraries(fs2_open + ${OGG_LIBRARIES} + ${OPENGL_LIBRARY} + ${SDL_LIBRARY} + ${THEORA_LIBRARIES} + ${VORBISFILE_LIBRARIES} + ${VORBIS_LIBRARIES} + ${JPEG_LIBRARY} + ${LUA_LIBRARY} + ${PNG_LIBRARY} + ${OPENAL_LIBRARY} + ) +elseif(MSVC) + add_definitions( + /D_WINDOWS + /DWIN32 + /D_CRT_SECURE_NO_DEPRECATE + /D_CRT_SECURE_NO_WARNINGS + /D_SECURE_SCL=0 + /DUSE_OPENAL + ) + target_link_libraries(fs2_open + ogg + vorbis + vorbisfile + theora + zlib + png + lua + jpeg + openal + ${DIRECTX_LIBRARIRES} + ) + # NOTE: This doesn't work with the NMake generator. + list(APPEND CMAKE_CXX_STANDARD_LIBRARIES + comctl32.lib + msacm32.lib + odbc32.lib + odbccp32.lib + vfw32.lib + winmm.lib + wsock32.lib + ) + set_target_properties(fs2_open PROPERTIES + COMPILE_DEFINITIONS_DEBUG "PDB_DEBUGGING=1;_HAS_ITERATOR_DEBUGGING=0" + COMPILE_DEFINITIONS_DEBUG_SSE "PDB_DEBUGGING=1;_HAS_ITERATOR_DEBUGGING=0" + COMPILE_DEFINITIONS_DEBUG_SSE2 "PDB_DEBUGGING=1;_HAS_ITERATOR_DEBUGGING=0" + COMPILE_DEFINITIONS_DEBUG_AVX "PDB_DEBUGGING=1;_HAS_ITERATOR_DEBUGGING=0" + ) +endif() \ No newline at end of file diff --git a/code/wxfred2/CMakeLists.txt b/code/wxfred2/CMakeLists.txt new file mode 100644 index 0000000..16f375e --- /dev/null +++ b/code/wxfred2/CMakeLists.txt @@ -0,0 +1,187 @@ + +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}) + +set(WXFRED2_SOURCES + ${CMAKE_CURRENT_SOURCE_DIR}/res/select.png.h + ${CMAKE_CURRENT_SOURCE_DIR}/res/constz.png.h + ${CMAKE_CURRENT_SOURCE_DIR}/res/constx.png.h + ${CMAKE_CURRENT_SOURCE_DIR}/res/selectrot.png.h + ${CMAKE_CURRENT_SOURCE_DIR}/res/constyz.png.h + ${CMAKE_CURRENT_SOURCE_DIR}/res/constxy.png.h + ${CMAKE_CURRENT_SOURCE_DIR}/res/wingform.png.h + ${CMAKE_CURRENT_SOURCE_DIR}/res/zoomsel.png.h + ${CMAKE_CURRENT_SOURCE_DIR}/res/constxz.png.h + ${CMAKE_CURRENT_SOURCE_DIR}/res/consty.png.h + ${CMAKE_CURRENT_SOURCE_DIR}/res/wingdisband.png.h + ${CMAKE_CURRENT_SOURCE_DIR}/res/showdist.png.h + ${CMAKE_CURRENT_SOURCE_DIR}/res/orbitsel.png.h + ${CMAKE_CURRENT_SOURCE_DIR}/res/zoomext.png.h + ${CMAKE_CURRENT_SOURCE_DIR}/res/rotlocal.png.h + ${CMAKE_CURRENT_SOURCE_DIR}/res/selectmove.png.h + ${CMAKE_CURRENT_SOURCE_DIR}/res/selectlock.png.h + ${CMAKE_CURRENT_SOURCE_DIR}/res/selectlist.png.h + ${CMAKE_CURRENT_SOURCE_DIR}/base/wxfred_base.h + ${CMAKE_CURRENT_SOURCE_DIR}/base/wxfred_base.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/editors/dlgobjecteditor.h + ${CMAKE_CURRENT_SOURCE_DIR}/editors/dlgobjecteditor.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/editors/dlgvoiceactingmanager.h + ${CMAKE_CURRENT_SOURCE_DIR}/editors/frmdebriefingeditor.h + ${CMAKE_CURRENT_SOURCE_DIR}/editors/dlgbackgroundeditor.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/editors/dlgmissionobjectiveseditor.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/editors/frmbriefingeditor.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/editors/frmteamloadouteditor.h + ${CMAKE_CURRENT_SOURCE_DIR}/editors/dlgmissionobjectiveseditor.h + ${CMAKE_CURRENT_SOURCE_DIR}/editors/dlgmissionspecseditor.h + ${CMAKE_CURRENT_SOURCE_DIR}/editors/frmdebriefingeditor.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/editors/dlgfictionviewer.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/editors/dlgvoiceactingmanager.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/editors/dlgsoundenvironment.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/editors/frmcommandbriefingeditor.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/editors/frmbriefingeditor.h + ${CMAKE_CURRENT_SOURCE_DIR}/editors/dlgshieldsystemeditor.h + ${CMAKE_CURRENT_SOURCE_DIR}/editors/dlgreinforcementseditor.h + ${CMAKE_CURRENT_SOURCE_DIR}/editors/dlgeventseditor.h + ${CMAKE_CURRENT_SOURCE_DIR}/editors/frmteamloadouteditor.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/editors/frmcommandbriefingeditor.h + ${CMAKE_CURRENT_SOURCE_DIR}/editors/frmwaypointeditor.h + ${CMAKE_CURRENT_SOURCE_DIR}/editors/dlgasteroidfieldeditor.h + ${CMAKE_CURRENT_SOURCE_DIR}/editors/dlgsetglobalshipflagseditor.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/editors/dlgshieldsystemeditor.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/editors/frmshipseditor.h + ${CMAKE_CURRENT_SOURCE_DIR}/editors/dlgfictionviewer.h + ${CMAKE_CURRENT_SOURCE_DIR}/editors/dlgreinforcementspicker.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/editors/frmcampaigneditor.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/editors/dlgasteroidfieldeditor.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/editors/dlgreinforcementspicker.h + ${CMAKE_CURRENT_SOURCE_DIR}/editors/dlgreinforcementseditor.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/editors/frmcampaigneditor.h + ${CMAKE_CURRENT_SOURCE_DIR}/editors/dlgbackgroundeditor.h + ${CMAKE_CURRENT_SOURCE_DIR}/editors/frmshipseditor.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/editors/dlgeventseditor.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/editors/dlgsetglobalshipflagseditor.h + ${CMAKE_CURRENT_SOURCE_DIR}/editors/frmwingeditor.h + ${CMAKE_CURRENT_SOURCE_DIR}/editors/frmwingeditor.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/editors/frmwaypointeditor.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/editors/dlgsoundenvironment.h + ${CMAKE_CURRENT_SOURCE_DIR}/editors/dlgmissionspecseditor.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/glcviewport.h + ${CMAKE_CURRENT_SOURCE_DIR}/misc/dlgmissionstats.h + ${CMAKE_CURRENT_SOURCE_DIR}/misc/dlgmissionstats.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/wxfred2.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/wxfred2.h + ${CMAKE_CURRENT_SOURCE_DIR}/help/dlgsexphelp.h + ${CMAKE_CURRENT_SOURCE_DIR}/help/dlgsexphelp.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/help/dlgaboutbox.h + ${CMAKE_CURRENT_SOURCE_DIR}/help/dlgaboutbox.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/frmfred2.h + ${CMAKE_CURRENT_SOURCE_DIR}/frmfred2.cpp +) + +include(${wxWidgets_USE_FILE}) + +add_executable(wxfred2 WIN32 ${WXFRED2_SOURCES}) +build_solution_tree(wxfred2) + +set_target_properties(wxfred2 + PROPERTIES + COMPILE_DEFINITIONS_RELEASE "NDEBUG" + COMPILE_DEFINITIONS_RELEASE_SSE "NDEBUG" + COMPILE_DEFINITIONS_RELEASE_SSE2 "NDEBUG" + COMPILE_DEFINITIONS_RELEASE_AVX "NDEBUG" + COMPILE_DEFINITIONS_DEBUG "_DEBUG" + COMPILE_DEFINITIONS_DEBUG_SSE "_DEBUG" + COMPILE_DEFINITIONS_DEBUG_SSE2 "_DEBUG" + COMPILE_DEFINITIONS_DEBUG_AVX "_DEBUG" + RELEASE_POSTFIX "_${VERSION_STRING}" + RELEASE_SSE_POSTFIX "_${VERSION_STRING}-SSE" + RELEASE_SSE2_POSTFIX "_${VERSION_STRING}-SSE2" + RELEASE_AVX_POSTFIX "_${VERSION_STRING}-AVX" + DEBUG_POSTFIX "_${VERSION_STRING}-DEBUG" + DEBUG_SSE_POSTFIX "_${VERSION_STRING}-DEBUG-SSE" + DEBUG_SSE2_POSTFIX "_${VERSION_STRING}-DEBUG-SSE2" + DEBUG_AVX_POSTFIX "_${VERSION_STRING}-DEBUG-AVX" +) +add_definitions( + -DFRED +) +include_directories( + ${PROJECT_SOURCE_DIR}/code + ${CMAKE_CURRENT_SOURCE_DIR} + ${JPEG_INCLUDE_DIR} + ${LUA_INCLUDE_DIR} + ${OPENAL_INCLUDE_DIR} + ${PNG_INCLUDE_DIR} + ${ZLIB_INCLUDE_DIR} + ${OGG_INCLUDE_DIRS} + ${VORBIS_INCLUDE_DIRS} + ${VORBISFILE_INCLUDE_DIRS} + ${THEROA_INCLUDE_DIRS} + ${wxWidgets_INCLUDE_DIRS} +) +target_link_libraries(wxfred2 + ${wxWidgets_LIBRARIES} +) + +if(UNIX) + add_definitions( + -DSCP_UNIX + -DLUA_USE_LINUX + ) + include_directories( + ${OPENGL_INCLUDE_DIR} + ${SDL_INCLUDE_DIR} + ) + target_link_libraries(wxfred2 + ${OGG_LIBRARIES} + ${OPENGL_LIBRARY} + ${SDL_LIBRARY} + ${THEORA_LIBRARIES} + ${VORBISFILE_LIBRARIES} + ${VORBIS_LIBRARIES} + ${JPEG_LIBRARY} + ${LUA_LIBRARY} + ${PNG_LIBRARY} + ${OPENAL_LIBRARY} + ) + set_target_properties(wxfred2 + PROPERTIES + EXCLUDE_FROM_ALL TRUE + ) +elseif(MSVC) + set(wxWidgets_CONFIGURATION "mswu" CACHE STRING "Release WxWidgets configuration" FORCE) + + add_definitions( + /DWINVER=0x0501 + /D_WIN32_WINNT=0x0501 + /D_WINDOWS + /DWIN32 + ) + target_link_libraries(wxfred2 + ogg + vorbis + vorbisfile + theora + zlib + png + lua + jpeg + openal + ${DIRECTX_LIBRARIRES} + ) + # NOTE: This doesn't work with the NMake generator. + list(APPEND CMAKE_CXX_STANDARD_LIBRARIES + comctl32.lib + msacm32.lib + odbc32.lib + odbccp32.lib + vfw32.lib + winmm.lib + wsock32.lib + ) + set_target_properties(fs2_open PROPERTIES + COMPILE_DEFINITIONS_DEBUG "PDB_DEBUGGING=1;_HAS_ITERATOR_DEBUGGING=0" + COMPILE_DEFINITIONS_DEBUG_SSE "PDB_DEBUGGING=1;_HAS_ITERATOR_DEBUGGING=0" + COMPILE_DEFINITIONS_DEBUG_SSE2 "PDB_DEBUGGING=1;_HAS_ITERATOR_DEBUGGING=0" + COMPILE_DEFINITIONS_DEBUG_AVX "PDB_DEBUGGING=1;_HAS_ITERATOR_DEBUGGING=0" + ) +endif() diff --git a/dependencies.cmake b/dependencies.cmake new file mode 100644 index 0000000..6c1829a --- /dev/null +++ b/dependencies.cmake @@ -0,0 +1,244 @@ +# Dependencies +if(UNIX) + find_package(JPEG REQUIRED) + find_package(Lua51 REQUIRED) + find_package(OpenAL REQUIRED) + find_package(OpenGL REQUIRED) + find_package(PNG REQUIRED) + find_package(SDL REQUIRED) + find_package(PkgConfig REQUIRED) + pkg_check_modules(OGG REQUIRED ogg) + pkg_check_modules(THEORA REQUIRED theora) + pkg_check_modules(VORBIS REQUIRED vorbis) + pkg_check_modules(VORBISFILE REQUIRED vorbisfile) +elseif(MSVC) + # JPEG + add_library(jpeg STATIC + libjpeg/jaricom.c + libjpeg/jcapimin.c + libjpeg/jcapistd.c + libjpeg/jcomapi.c + libjpeg/jconfig.h + libjpeg/jcparam.c + libjpeg/jctrans.c + libjpeg/jdapimin.c + libjpeg/jdapistd.c + libjpeg/jdarith.c + libjpeg/jdatasrc.c + libjpeg/jdcoefct.c + libjpeg/jdcolor.c + libjpeg/jdct.h + libjpeg/jddctmgr.c + libjpeg/jdhuff.c + libjpeg/jdinput.c + libjpeg/jdmainct.c + libjpeg/jdmarker.c + libjpeg/jdmaster.c + libjpeg/jdmerge.c + libjpeg/jdpostct.c + libjpeg/jdsample.c + libjpeg/jdtrans.c + libjpeg/jerror.c + libjpeg/jerror.h + libjpeg/jidctflt.c + libjpeg/jidctfst.c + libjpeg/jidctint.c + libjpeg/jinclude.h + libjpeg/jmemmgr.c + libjpeg/jmemnobs.c + libjpeg/jmemsys.h + libjpeg/jmorecfg.h + libjpeg/jpegint.h + libjpeg/jpeglib.h + libjpeg/jquant1.c + libjpeg/jquant2.c + libjpeg/jutils.c + libjpeg/jversion.h + ) + set_target_properties(jpeg + PROPERTIES + COMPILE_DEFINITIONS _CRT_SECURE_NO_WARNINGS + ) + set(JPEG_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/libjpeg") + + # zlib + add_library(zlib STATIC + zlib/adler32.c + zlib/compress.c + zlib/crc32.c + zlib/crc32.h + zlib/deflate.c + zlib/deflate.h + zlib/infback.c + zlib/inffast.c + zlib/inffast.h + zlib/inffixed.h + zlib/inflate.c + zlib/inflate.h + zlib/inftrees.c + zlib/inftrees.h + zlib/trees.c + zlib/trees.h + zlib/uncompr.c + zlib/zconf.h + zlib/zlib.h + zlib/zutil.c + zlib/zutil.h + ) + set(ZLIB_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/zlib") + + # PNG + add_library(png STATIC + libpng/png.c + libpng/png.h + libpng/pngconf.h + libpng/pngdebug.h + libpng/pngerror.c + libpng/pngget.c + libpng/pnginfo.h + libpng/pnglibconf.h + libpng/pngmem.c + libpng/pngpread.c + libpng/pngpriv.h + libpng/pngread.c + libpng/pngrio.c + libpng/pngrtran.c + libpng/pngrutil.c + libpng/pngset.c + libpng/pngstruct.h + libpng/pngtrans.c + libpng/pngwio.c + libpng/pngwrite.c + libpng/pngwtran.c + libpng/pngwutil.c + ) + set_target_properties(png + PROPERTIES + COMPILE_DEFINITIONS _CRT_SECURE_NO_WARNINGS + COMPILE_DEFINITIONS_DEBUG PNG_DEBUG=1 + INCLUDE_DIRECTORIES "${ZLIB_INCLUDE_DIR}" + ) + set(PNG_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/libpng") + + # Lua 5.1 + add_library(lua STATIC + lua/lapi.c + lua/lapi.h + lua/lauxlib.c + lua/lauxlib.h + lua/lbaselib.c + lua/lcode.c + lua/lcode.h + lua/ldblib.c + lua/ldebug.c + lua/ldebug.h + lua/ldo.c + lua/ldo.h + lua/ldump.c + lua/lfunc.c + lua/lfunc.h + lua/lgc.c + lua/lgc.h + lua/linit.c + lua/liolib.c + lua/llex.c + lua/llex.h + lua/llimits.h + lua/lmathlib.c + lua/lmem.c + lua/lmem.h + lua/loadlib.c + lua/lobject.c + lua/lobject.h + lua/lopcodes.c + lua/lopcodes.h + lua/loslib.c + lua/lparser.c + lua/lparser.h + lua/lstate.c + lua/lstate.h + lua/lstring.c + lua/lstring.h + lua/lstrlib.c + lua/ltable.c + lua/ltable.h + lua/ltablib.c + lua/ltm.c + lua/ltm.h + lua/lua.h + lua/luaconf.h + lua/lualib.h + lua/lundump.c + lua/lundump.h + lua/lvm.c + lua/lvm.h + lua/lzio.c + lua/lzio.h + lua/print.c + ) + set_target_properties(lua + PROPERTIES + COMPILE_FLAGS _CRT_SECURE_NO_WARNINGS + ) + set(LUA_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/lua") + + set_target_properties(jpeg png lua zlib + PROPERTIES + COMPILE_FLAGS "/W0" + FOLDER "3rdparty" + STATIC_LIBRARY_FLAGS "/LTCG" + ) + + # Ogg + add_library(ogg STATIC IMPORTED) + set_target_properties(ogg + PROPERTIES + IMPORTED_LOCATION ${PROJECT_SOURCE_DIR}/oggvorbis/lib/ogg_static.lib + IMPORTED_LOCATION_DEBUG ${PROJECT_SOURCE_DIR}/oggvorbis/lib/ogg_static_d.lib + ) + set(OGG_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}/oggvorbis/include") + + # Vorbis + add_library(vorbis STATIC IMPORTED) + set_target_properties(vorbis + PROPERTIES + IMPORTED_LOCATION ${PROJECT_SOURCE_DIR}/oggvorbis/lib/vorbis_static.lib + IMPORTED_LOCATION_DEBUG ${PROJECT_SOURCE_DIR}/oggvorbis/lib/vorbis_static_d.lib + ) + set(VORBIS_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}/oggvorbis/include") + + # Vorbisfile + add_library(vorbisfile STATIC IMPORTED) + set_target_properties(vorbisfile + PROPERTIES + IMPORTED_LOCATION ${PROJECT_SOURCE_DIR}/oggvorbis/lib/vorbisfile_static.lib + IMPORTED_LOCATION_DEBUG ${PROJECT_SOURCE_DIR}/oggvorbis/lib/vorbisfile_static_d.lib + ) + set(VORBISFILE_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}/oggvorbis/include") + + # Theora + add_library(theora STATIC IMPORTED) + set_target_properties(theora + PROPERTIES + IMPORTED_LOCATION ${PROJECT_SOURCE_DIR}/oggvorbis/lib/theora_static.lib + IMPORTED_LOCATION_DEBUG ${PROJECT_SOURCE_DIR}/oggvorbis/lib/theora_static_d.lib + ) + set(THEORA_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}/oggvorbis/include") + + # OpenAL + add_library(openal STATIC IMPORTED) + set_target_properties(openal + PROPERTIES + IMPORTED_LOCATION ${PROJECT_SOURCE_DIR}/openal/libs/win32/openal32.lib + ) + set(OPENAL_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/openal/include") + + # Various DirectX bits. + list(APPEND DIRECTX_LIBRARIRES + ${PROJECT_SOURCE_DIR}/code/directx/dxguid.lib + ${PROJECT_SOURCE_DIR}/code/directx/strmiids.lib + ${PROJECT_SOURCE_DIR}/code/directx/vdinput.lib + ${PROJECT_SOURCE_DIR}/code/directx/vdsound.lib + ) + +endif() \ No newline at end of file diff --git a/toolchain-clang.cmake b/toolchain-clang.cmake new file mode 100644 index 0000000..4b82804 --- /dev/null +++ b/toolchain-clang.cmake @@ -0,0 +1,35 @@ +# Clang + +unset(CMAKE_CXX_FLAGS) +if(DEFINED ENV{CXXFLAGS}) + set(CMAKE_CXX_FLAGS $ENV{CXXFLAGS}) +endif(DEFINED ENV{CXXFLAGS}) + +if(NOT CMAKE_CXX_FLAGS) + if(CMAKE_SIZEOF_VOID_P EQUAL 4) + set(CMAKE_CXX_FLAGS "-march=i686 -mtune=generic -mfpmath=sse -msse -msse2 -ansi") + elseif(CMAKE_SIZEOF_VOID_P EQUAL 8) + set(CMAKE_CXX_FLAGS "-m64 -march=x86-64 -mtune=generic -msse -msse2 -ansi") + endif() +endif(NOT CMAKE_CXX_FLAGS) + +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall") + +# Omit "argument unused during compilation" when clang is used with ccache. +if(${CMAKE_CXX_COMPILER} MATCHES "ccache") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Qunused-arguments") +endif() +# Omit "conversion from string literal to 'char *' is deprecated" warnings. +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-writable-strings") +# Omit "unknown pragma ignored" warnings. +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unknown-pragmas") +# Omit "... antiquated header ..." warnings. This is caused by clang's usage of GNU/GCC's hash_map. +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated") + +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fcolor-diagnostics") + +set(CMAKE_CXX_FLAGS_RELEASE "-O2") + +set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g -Wextra -Wshadow") +set(CMAKE_EXE_LINKER_FLAGS "-Wl,-O1 -Wl,--as-needed") +set(CMAKE_EXE_LINKER_FLAGS_RELEASE "-Wl,--strip-all") diff --git a/toolchain-gcc.cmake b/toolchain-gcc.cmake new file mode 100644 index 0000000..9dc3aa6 --- /dev/null +++ b/toolchain-gcc.cmake @@ -0,0 +1,27 @@ +# GCC + +unset(CMAKE_CXX_FLAGS) +if(DEFINED ENV{CXXFLAGS}) + set(CMAKE_CXX_FLAGS $ENV{CXXFLAGS}) +endif(DEFINED ENV{CXXFLAGS}) + +if(NOT CMAKE_CXX_FLAGS) + if(CMAKE_SIZEOF_VOID_P EQUAL 4) + set(CMAKE_CXX_FLAGS "-march=i686 -mtune=generic -mfpmath=sse -msse -msse2 -ansi") + elseif(CMAKE_SIZEOF_VOID_P EQUAL 8) + set(CMAKE_CXX_FLAGS "-m64 -march=x86-64 -mtune=generic -msse -msse2 -ansi") + endif() +endif(NOT CMAKE_CXX_FLAGS) + +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -funroll-loops -fsigned-char") + +# Omit "deprecated conversion from string constant to 'char*'" warnings. +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-write-strings") +# Omit "unused parameter 'foo'" warnings. +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-parameter") + +set(CMAKE_CXX_FLAGS_RELEASE "-O2") + +set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g -Wextra -Wshadow") +set(CMAKE_EXE_LINKER_FLAGS "-Wl,-O1 -Wl,--as-needed") +set(CMAKE_EXE_LINKER_FLAGS_RELEASE "-Wl,--strip-all") diff --git a/toolchain-msvc.cmake b/toolchain-msvc.cmake new file mode 100644 index 0000000..63d4c66 --- /dev/null +++ b/toolchain-msvc.cmake @@ -0,0 +1,48 @@ +# Visual Studio + +set_property(GLOBAL PROPERTY DEBUG_CONFIGURATIONS Debug Debug_SSE Debug_SSE2 Debug_AVX) + +# Base +set(CMAKE_C_FLAGS "/MP /GS- /analyze- /Zc:wchar_t /errorReport:prompt /WX- /Zc:forScope /Gd /EHsc /nologo") +set(CMAKE_CXX_FLAGS "/MP /GS- /analyze- /Zc:wchar_t /errorReport:prompt /WX- /Zc:forScope /Gd /EHsc /nologo") +set(CMAKE_EXE_LINKER_FLAGS "/MANIFEST /DYNAMICBASE:NO /MAPINFO:EXPORTS /SAFESEH:NO /MANIFESTUAC:NO /ERRORREPORT:PROMPT /NOLOGO") + +# Release +set(CMAKE_C_FLAGS_RELEASE "/GL /W2 /Gy- /Zi /O2 /Ob2 /fp:fast /GF /Oy /Oi /MT") +set(CMAKE_CXX_FLAGS_RELEASE "/GL /W2 /Gy- /Zi /O2 /Ob2 /fp:fast /GF /Oy /Oi /MT") +set(CMAKE_EXE_LINKER_FLAGS_RELEASE "/LTCG /INCREMENTAL:NO /NODEFAULTLIB:libc.lib /NODEFAULTLIB:libcd.lib /NODEFAULTLIB:libci.lib") + +# Release SSE +set(CMAKE_C_FLAGS_RELEASE_SSE "${CMAKE_C_FLAGS_RELEASE} /arch:SSE") +set(CMAKE_CXX_FLAGS_RELEASE_SSE "${CMAKE_CXX_FLAGS_RELEASE} /arch:SSE") +set(CMAKE_EXE_LINKER_FLAGS_RELEASE_SSE "${CMAKE_EXE_LINKER_FLAGS_RELEASE}") + +# Release SSE2 +set(CMAKE_C_FLAGS_RELEASE_SSE2 "${CMAKE_C_FLAGS_RELEASE} /arch:SSE2") +set(CMAKE_CXX_FLAGS_RELEASE_SSE2 "${CMAKE_CXX_FLAGS_RELEASE} /arch:SSE2") +set(CMAKE_EXE_LINKER_FLAGS_RELEASE_SSE2 "${CMAKE_EXE_LINKER_FLAGS_RELEASE}") + +# Release AVX +set(CMAKE_C_FLAGS_RELEASE_AVX "${CMAKE_C_FLAGS_RELEASE} /arch:AVX") +set(CMAKE_CXX_FLAGS_RELEASE_AVX "${CMAKE_CXX_FLAGS_RELEASE} /arch:AVX") +set(CMAKE_EXE_LINKER_FLAGS_RELEASE_AVX "${CMAKE_EXE_LINKER_FLAGS_RELEASE}") + +# Debug +set(CMAKE_C_FLAGS_DEBUG "/W4 /Gy /ZI /Od /RTC1 /Gd /Oy- /MTd") +set(CMAKE_CXX_FLAGS_DEBUG "/W4 /Gy /ZI /Od /RTC1 /Gd /Oy- /MTd") +set(CMAKE_EXE_LINKER_FLAGS_DEBUG "/DEBUG /INCREMENTAL /NODEFAULTLIB:libc.lib /NODEFAULTLIB:libcd.lib /NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:libci.lib") + +# Debug SSE +set(CMAKE_C_FLAGS_DEBUG_SSE "${CMAKE_C_FLAGS_DEBUG} /arch:SSE") +set(CMAKE_CXX_FLAGS_DEBUG_SSE "${CMAKE_CXX_FLAGS_DEBUG} /arch:SSE") +set(CMAKE_EXE_LINKER_FLAGS_DEBUG_SSE "${CMAKE_EXE_LINKER_FLAGS_DEBUG}") + +# Debug SSE2 +set(CMAKE_C_FLAGS_DEBUG_SSE2 "${CMAKE_C_FLAGS_DEBUG} /arch:SSE2") +set(CMAKE_CXX_FLAGS_DEBUG_SSE2 "${CMAKE_CXX_FLAGS_DEBUG} /arch:SSE2") +set(CMAKE_EXE_LINKER_FLAGS_DEBUG_SSE2 "${CMAKE_EXE_LINKER_FLAGS_DEBUG}") + +# Debug AVX +set(CMAKE_C_FLAGS_DEBUG_AVX "${CMAKE_C_FLAGS_DEBUG} /arch:AVX") +set(CMAKE_CXX_FLAGS_DEBUG_AVX "${CMAKE_CXX_FLAGS_DEBUG} /arch:AVX") +set(CMAKE_EXE_LINKER_FLAGS_DEBUG_AVX "${CMAKE_EXE_LINKER_FLAGS_DEBUG}") \ No newline at end of file |
|
Git repo for this: https://github.com/nisselarsson/fs2_open_patchbucket.git |
|
Another competitor now is https://github.com/asarium/fs2open.github.com/tree/cmake |
|
We finished these files a long time ago. |
Date Modified | Username | Field | Change |
---|---|---|---|
2013-10-26 09:55 | ni1s | New Issue | |
2013-10-26 09:55 | ni1s | Status | new => assigned |
2013-10-26 09:55 | ni1s | Assigned To | => chief1983 |
2013-10-26 09:55 | ni1s | File Added: cmake.patch | |
2013-10-28 19:54 | ni1s | Note Added: 0015370 | |
2014-06-04 19:05 | chief1983 | Note Added: 0015791 | |
2021-01-09 06:28 | FSCyborg | Status | assigned => resolved |
2021-01-09 06:28 | FSCyborg | Resolution | open => fixed |
2021-01-09 06:28 | FSCyborg | Note Added: 0017045 |