2021-01-15 20:29 EST


View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0002943FSSCPBuild systempublic2021-01-09 01:28
Reporterni1s 
Assigned Tochief1983 
PrioritynormalSeverityfeatureReproducibilityalways
StatusresolvedResolutionfixed 
Product Version 
Target VersionFixed in Version 
Summary0002943: CMake build system files
DescriptionCMake 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)
TagsNo tags attached.
Attached Files
  • patch file icon cmake.patch (61,495 bytes) 2013-10-26 05:55 -
    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
    
    patch file icon cmake.patch (61,495 bytes) 2013-10-26 05:55 +

-Relationships
+Relationships

-Notes

~0015370

ni1s (reporter)

Git repo for this: https://github.com/nisselarsson/fs2_open_patchbucket.git

~0015791

chief1983 (administrator)

Another competitor now is https://github.com/asarium/fs2open.github.com/tree/cmake

~0017045

FSCyborg (developer)

We finished these files a long time ago.
+Notes

-Issue History
Date Modified Username Field Change
2013-10-26 05:55 ni1s New Issue
2013-10-26 05:55 ni1s Status new => assigned
2013-10-26 05:55 ni1s Assigned To => chief1983
2013-10-26 05:55 ni1s File Added: cmake.patch
2013-10-28 15:54 ni1s Note Added: 0015370
2014-06-04 15:05 chief1983 Note Added: 0015791
2021-01-09 01:28 FSCyborg Status assigned => resolved
2021-01-09 01:28 FSCyborg Resolution open => fixed
2021-01-09 01:28 FSCyborg Note Added: 0017045
+Issue History