# CMakeList.txt : CMake project for Red Alert 
cmake_minimum_required (VERSION 3.8)

project(RedAlert ASM CXX C)
enable_language(ASM)
set(CMAKE_CXX_FLAGS "")
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../)
set(CMAKE_VERBOSE_MAKEFILE ON)

set(src_io
	./REDALERT/io/UserInput.cpp
	./REDALERT/io/UserInput.h
)

set(src_win32lib
	./REDALERT/WIN32LIB/TOBUFF.cpp
	./RedAlert/WIN32LIB/ALLOC.CPP
	./RedAlert/WIN32LIB/AUDIO.H
	./RedAlert/WIN32LIB/BUFFER.CPP
	./RedAlert/WIN32LIB/BUFFER.H
	./RedAlert/WIN32LIB/BUFFGLBL.CPP
	./RedAlert/WIN32LIB/DEFINES.H
	./RedAlert/WIN32LIB/DELAY.CPP
	./RedAlert/WIN32LIB/DESCMGMT.H
	./RedAlert/WIN32LIB/DIFFTB.INC
	./RedAlert/WIN32LIB/DIPTHONG.CPP
	./RedAlert/WIN32LIB/DIPTHONG.H
	./RedAlert/WIN32LIB/DPLAY.H
	./RedAlert/WIN32LIB/DRAWBUFF.H
	./RedAlert/WIN32LIB/DRAWBUFF.INC
	./RedAlert/WIN32LIB/DrawMisc.cpp
	./RedAlert/WIN32LIB/DRAWRECT.CPP
	./RedAlert/WIN32LIB/DSETUP.H
	./RedAlert/WIN32LIB/DSOUND.H
	./RedAlert/WIN32LIB/EXTERNS.H
	./RedAlert/WIN32LIB/FASTFILE.H
	./RedAlert/WIN32LIB/FILE.H
	./RedAlert/WIN32LIB/FILEPCX.H
	./RedAlert/WIN32LIB/FILETEMP.H
	./RedAlert/WIN32LIB/FONT.H
	./RedAlert/WIN32LIB/FUNCTION.H
	./RedAlert/WIN32LIB/GBUFFER.CPP
	./RedAlert/WIN32LIB/GBUFFER.H
	./RedAlert/WIN32LIB/GBUFFER.INC
	./RedAlert/WIN32LIB/GETSHAPE.CPP
	./RedAlert/WIN32LIB/ICONCACH.H
	./RedAlert/WIN32LIB/ICONSET.CPP
	./RedAlert/WIN32LIB/IFF.CPP
	./RedAlert/WIN32LIB/IFF.H
	./RedAlert/WIN32LIB/INDEXTB.INC
	./RedAlert/WIN32LIB/IRANDOM.CPP
	./RedAlert/WIN32LIB/KEYBOARD.H
	./RedAlert/WIN32LIB/KEYBOARD.INC
	./RedAlert/WIN32LIB/KEYSTRUC.INC
	./RedAlert/WIN32LIB/LOAD.CPP
	./RedAlert/WIN32LIB/LOADFONT.CPP
	./RedAlert/WIN32LIB/MCGAPRIM.INC
	./RedAlert/WIN32LIB/MEMFLAG.H
	./RedAlert/WIN32LIB/MISC.H
	./RedAlert/WIN32LIB/MODEMREG.H
	./RedAlert/WIN32LIB/MONO.H
	./RedAlert/WIN32LIB/MOUSE.H
	./RedAlert/WIN32LIB/MOUSE.INC
	./RedAlert/WIN32LIB/MouseShape.cpp
	./RedAlert/WIN32LIB/MouseShape.h
	./RedAlert/WIN32LIB/MOUSEWW.CPP
	./RedAlert/WIN32LIB/NYBBTB.INC
	./RedAlert/WIN32LIB/PALETTE.CPP
	./RedAlert/WIN32LIB/PALETTE.H
	./RedAlert/WIN32LIB/PLAYCD.H
	./RedAlert/WIN32LIB/PROFILE.H
	./RedAlert/WIN32LIB/PROFILE.INC
	./RedAlert/WIN32LIB/RAWFILE.H
	./RedAlert/WIN32LIB/SHAPE.H
	./RedAlert/WIN32LIB/SHAPE.INC
	./RedAlert/WIN32LIB/SOS.H
	./RedAlert/WIN32LIB/SOSCOMP.H
	./RedAlert/WIN32LIB/SOSDATA.H
	./RedAlert/WIN32LIB/SOSDEFS.H
	./RedAlert/WIN32LIB/SOSFNCT.H
	./RedAlert/WIN32LIB/SOSRES.H
	./RedAlert/WIN32LIB/SOUND.H
	./RedAlert/WIN32LIB/SOUNDINT.H
	./RedAlert/WIN32LIB/STAMP.INC
	./RedAlert/WIN32LIB/STRUCTS.H
	./RedAlert/WIN32LIB/SVGAPRIM.INC
	./RedAlert/WIN32LIB/TILE.H
	./RedAlert/WIN32LIB/TIMER.CPP
	./RedAlert/WIN32LIB/TIMER.H
	./RedAlert/WIN32LIB/TIMERDWN.CPP
	./RedAlert/WIN32LIB/TIMERINI.CPP
	./RedAlert/WIN32LIB/VIDEO.H
	./RedAlert/WIN32LIB/WINCOMM.H
	./RedAlert/WIN32LIB/WINDOWS.CPP
	./RedAlert/WIN32LIB/WINHIDE.CPP
	./RedAlert/WIN32LIB/WRITEPCX.CPP
	./RedAlert/WIN32LIB/WSA.CPP
	./RedAlert/WIN32LIB/WSA.H
	./RedAlert/WIN32LIB/WWFILE.H
	./RedAlert/WIN32LIB/WWLIB32.H
	./RedAlert/WIN32LIB/WWMEM.H
	./RedAlert/WIN32LIB/WWMEM.INC
	./RedAlert/WIN32LIB/wwstd.h
	./RedAlert/WIN32LIB/WW_WIN.H
	./RedAlert/WIN32LIB/_DIPTABL.CPP	
)

#Red Alert files
set(src_redalert
	./RedAlert/2KEYFRAM.CPP
	./RedAlert/AADATA.CPP
	./RedAlert/ABSTRACT.CPP
	./RedAlert/ABSTRACT.H
	./RedAlert/ADATA.CPP
	./RedAlert/ADPCM.CPP
	./RedAlert/AIRCRAFT.CPP
	./RedAlert/AIRCRAFT.H
	./RedAlert/ANIM.CPP
	./RedAlert/CONSOLE.CPP
	./RedAlert/ANIM.H
	./RedAlert/AUDIO.CPP
	./RedAlert/AUDIO.H
	./RedAlert/AUDIOMIX.H
	./RedAlert/AUDMIX.CPP
	./RedAlert/B64PIPE.CPP
	./RedAlert/B64PIPE.H
	./RedAlert/B64STRAW.CPP
	./RedAlert/B64STRAW.H
	./RedAlert/BAR.CPP
	./RedAlert/BAR.H
	./RedAlert/BASE.CPP
	./RedAlert/BASE.H
	./RedAlert/BASE64.CPP
	./RedAlert/BASE64.H
	./RedAlert/BBDATA.CPP
	./RedAlert/BDATA.CPP
	./RedAlert/BENCH.CPP
	./RedAlert/BENCH.H
	./RedAlert/BFIOFILE.CPP
	./RedAlert/BFIOFILE.H
	./RedAlert/BIGCHECK.CPP
	./RedAlert/BIGCHECK.H
	./RedAlert/BLOWFISH.CPP
	./RedAlert/BLOWFISH.H
	./RedAlert/BLOWPIPE.CPP
	./RedAlert/BLOWPIPE.H
	./RedAlert/BLWSTRAW.CPP
	./RedAlert/BLWSTRAW.H
	./RedAlert/BUFF.CPP
	./RedAlert/BUFF.H
	./RedAlert/BUFFERX.H
	./RedAlert/BUILDING.CPP
	./RedAlert/BUILDING.H
	./RedAlert/BULLET.CPP
	./RedAlert/BULLET.H
	./RedAlert/CARGO.CPP
	./RedAlert/CARGO.H
	./RedAlert/CARRY.CPP
	./RedAlert/CARRY.H
	./RedAlert/CBN_.H
	./RedAlert/CCDDE.CPP
	./RedAlert/CCDDE.H
	./RedAlert/CCFILE.CPP
	./RedAlert/CCFILE.H
	./RedAlert/CCINI.CPP
	./RedAlert/CCINI.H
	./RedAlert/CCMPATH.CPP
	./RedAlert/CCPTR.CPP
	./RedAlert/CCPTR.H
	./RedAlert/CCTEN.CPP
	./RedAlert/CDATA.CPP
	./RedAlert/CDFILE.CPP
	./RedAlert/CDFILE.H
	./RedAlert/CELL.CPP
	./RedAlert/CELL.H
	./RedAlert/CHECKBOX.CPP
	./RedAlert/CHECKBOX.H
	./RedAlert/CHEKLIST.CPP
	./RedAlert/CHEKLIST.H
	./RedAlert/CLASS.CPP
	./RedAlert/COLRLIST.CPP
	./RedAlert/COLRLIST.H
	./RedAlert/COMBAT.CPP
	./RedAlert/COMBUF.CPP
	./RedAlert/COMBUF.H
	./RedAlert/COMINIT.CPP
	./RedAlert/COMINIT.H
	./RedAlert/COMPAT.H
	./RedAlert/COMQUEUE.CPP
	./RedAlert/COMQUEUE.H
	./RedAlert/CONFDLG.CPP
	./RedAlert/CONFDLG.H
	./RedAlert/CONNECT.CPP
	./RedAlert/CONNECT.H
	./RedAlert/CONNMGR.H
	./RedAlert/CONQUER.CPP
	./RedAlert/CONQUER.H
	./RedAlert/CONST.CPP
	./RedAlert/CONTROL.CPP
	./RedAlert/CONTROL.H
	./RedAlert/COORD.CPP	
	./RedAlert/COORDA.h
	./RedAlert/CRATE.CPP
	./RedAlert/CRATE.H
	./RedAlert/CRC.CPP
	./RedAlert/CRC.H
	./RedAlert/CRCPIPE.CPP
	./RedAlert/CRCPIPE.H
	./RedAlert/CRCSTRAW.CPP
	./RedAlert/CRCSTRAW.H
	./RedAlert/CREDITS.CPP
	./RedAlert/CREDITS.H
	./RedAlert/CREW.CPP
	./RedAlert/CREW.H
	./RedAlert/CSTRAW.CPP
	./RedAlert/CSTRAW.H
	./RedAlert/DDE.CPP
	./RedAlert/DDE.H
	./RedAlert/DEBUG.CPP
	./RedAlert/DEBUG.H
	./RedAlert/DEFINES.H
	./RedAlert/DESCDLG.CPP
	./RedAlert/DESCDLG.H
	./RedAlert/DIAL8.CPP
	./RedAlert/DIAL8.H
	./RedAlert/DIALOG.CPP
	./RedAlert/DIBAPI.H
	./RedAlert/DIBFILE.CPP
	./RedAlert/DIBUTIL.CPP
	./RedAlert/DIBUTIL.H
	./RedAlert/DISPLAY.CPP
	./RedAlert/DISPLAY.H
	./RedAlert/DLLInterface.cpp
	./RedAlert/DLLInterface.h
	./RedAlert/DLLInterfaceEditor.cpp
	./RedAlert/DOOR.CPP
	./RedAlert/DOOR.H
	./RedAlert/DPMI.CPP
	./RedAlert/DPMI.H
	./RedAlert/DRIVE.CPP
	./RedAlert/DRIVE.H
	./RedAlert/DROP.CPP
	./RedAlert/DROP.H
	./RedAlert/DTABLE.CPP
	./RedAlert/DYNAVEC.CPP
	./RedAlert/EDIT.CPP
	./RedAlert/EDIT.H
	./RedAlert/EGOS.CPP
	./RedAlert/EGOS.H
	./RedAlert/ENDING.CPP
	./RedAlert/ENDING.H
	./RedAlert/EVENT.CPP
	./RedAlert/EVENT.H
	./RedAlert/EXPAND.CPP
	./RedAlert/EXTERNS.H
	./RedAlert/FACE.CPP
	./RedAlert/FACE.H
	./RedAlert/FACING.CPP
	./RedAlert/FACING.H
	./RedAlert/FACTORY.CPP
	./RedAlert/FACTORY.H
	./RedAlert/FAKESOCK.H
	./RedAlert/FIELD.CPP
	./RedAlert/FIELD.H
	./RedAlert/FILEPCX.H
	./RedAlert/FINDPATH.CPP
	./RedAlert/FIXED.CPP
	./RedAlert/FIXED.H
	./RedAlert/FLASHER.CPP
	./RedAlert/FLASHER.H
	./RedAlert/FLY.CPP
	./RedAlert/FLY.H
	./RedAlert/FOOT.CPP
	./RedAlert/FOOT.H
	./RedAlert/FTIMER.H
	./RedAlert/FUNCTION.H
	./RedAlert/FUSE.CPP
	./RedAlert/FUSE.H
	./RedAlert/GADGET.CPP
	./RedAlert/GADGET.H
	./RedAlert/GAMEDLG.CPP
	./RedAlert/GAMEDLG.H
	./RedAlert/GAUGE.CPP
	./RedAlert/GAUGE.H
	./RedAlert/GETCPU.CPP
	./RedAlert/GLOBALS.CPP
	./RedAlert/GOPTIONS.CPP
	./RedAlert/GOPTIONS.H
	./RedAlert/GSCREEN.CPP
	./RedAlert/GSCREEN.H
	./RedAlert/HDATA.CPP
	./RedAlert/HEAP.CPP
	./RedAlert/HEAP.H
	./RedAlert/HELP.CPP
	./RedAlert/HELP.H
	./RedAlert/HOUSE.CPP
	./RedAlert/HOUSE.H
	./RedAlert/HSV.CPP
	./RedAlert/HSV.H
	./RedAlert/ICONLIST.CPP
	./RedAlert/ICONLIST.H
	./RedAlert/IDATA.CPP
	./RedAlert/INFANTRY.CPP
	./RedAlert/INFANTRY.H
	./RedAlert/INI.CPP
	./RedAlert/INI.H
	./RedAlert/INIBIN.CPP
	./RedAlert/INICODE.CPP
	./RedAlert/INIT.CPP
	./RedAlert/INLINE.H
	./RedAlert/INT.CPP
	./RedAlert/INT.H
	./RedAlert/INTERNET.CPP
	./RedAlert/INTERNET.H
	./RedAlert/INTERPAL.CPP
	./RedAlert/INTRO.CPP
	./RedAlert/INTRO.H
	./RedAlert/IOMAP.CPP
	./RedAlert/IOOBJ.CPP
	./RedAlert/IPX.CPP
	./RedAlert/IPX.H
	./RedAlert/IPX95.CPP
	./RedAlert/IPX95.H
	./RedAlert/IPXADDR.CPP
	./RedAlert/IPXADDR.H
	./RedAlert/IPXCONN.CPP
	./RedAlert/IPXCONN.H
	./RedAlert/IPXGCONN.CPP
	./RedAlert/IPXGCONN.H
	./RedAlert/IPXMGR.CPP
	./RedAlert/IPXMGR.H
	./RedAlert/ITABLE.CPP
	./RedAlert/JSHELL.CPP
	./RedAlert/JSHELL.H
	./RedAlert/KEY.CPP
	./RedAlert/KEY.H
	./RedAlert/KEYBOARD.H
	./RedAlert/LANGUAGE.H
	./RedAlert/LAYER.CPP
	./RedAlert/LAYER.H
	./RedAlert/LCW.CPP
	./RedAlert/LCW.H
	./RedAlert/LCWPIPE.CPP
	./RedAlert/LCWPIPE.H
	./RedAlert/LCWSTRAW.CPP
	./RedAlert/LCWSTRAW.H
	./RedAlert/LCWUNCMP.CPP
	./RedAlert/LED.H
	./RedAlert/License.txt
	./RedAlert/LINK.CPP
	./RedAlert/LINK.H
	./RedAlert/LINT.H
	./RedAlert/LIST.CPP
	./RedAlert/LIST.H
	./RedAlert/LISTNODE.H
	./RedAlert/LOADDLG.CPP
	./RedAlert/LOADDLG.H
	./RedAlert/LOGIC.CPP
	./RedAlert/LOGIC.H
	./RedAlert/LZO.H
	./RedAlert/LZO1X.H
	./RedAlert/LZO1X_C.CPP
	./RedAlert/LZO1X_D.CPP
	./RedAlert/LZOCONF.H
	./RedAlert/LZOPIPE.CPP
	./RedAlert/LZOPIPE.H
	./RedAlert/LZOSTRAW.CPP
	./RedAlert/LZOSTRAW.H
	./RedAlert/LZO_CONF.H
	./RedAlert/LZW.CPP
	./RedAlert/LZW.H
	./RedAlert/LZWPIPE.CPP
	./RedAlert/LZWPIPE.H
	./RedAlert/LZWSTRAW.CPP
	./RedAlert/LZWSTRAW.H
	./RedAlert/MAP.CPP
	./RedAlert/MAP.H
	./RedAlert/MAPEDDLG.CPP
	./RedAlert/MAPEDIT.CPP
	./RedAlert/MAPEDIT.H
	./RedAlert/MAPEDPLC.CPP
	./RedAlert/MAPEDTM.CPP
	./RedAlert/MAPSEL.CPP
	./RedAlert/MCI.CPP
	./RedAlert/MCI.H
	./RedAlert/MCIMOVIE.CPP
	./RedAlert/MCIMOVIE.H
	./RedAlert/MEMCHECK.H
	./RedAlert/MENUS.CPP
	./RedAlert/MESSAGE.H
	./RedAlert/MiscAsm.cpp
	./RedAlert/MISSION.CPP
	./RedAlert/MISSION.H
	./RedAlert/MIXFILE.CPP
	./RedAlert/MIXFILE.H
	./RedAlert/MONOC.CPP
	./RedAlert/MONOC.H
	./RedAlert/MOUSE.CPP
	./RedAlert/MOUSE.H
	./RedAlert/MOVIE.H
	./RedAlert/MP.CPP
	./RedAlert/MP.H
	./RedAlert/MPGSET.CPP
	./RedAlert/MPGSET.H
	./RedAlert/MPLAYER.CPP
	./RedAlert/MPMGRW.CPP
	./RedAlert/MPMGRW.H
	./RedAlert/MPU.CPP
	./RedAlert/MPU.H
	./RedAlert/MSGBOX.CPP
	./RedAlert/MSGBOX.H
	./RedAlert/MSGLIST.CPP
	./RedAlert/MSGLIST.H
	./RedAlert/NETDLG.CPP
	./RedAlert/NULLCONN.CPP
	./RedAlert/NULLCONN.H
	./RedAlert/NULLDLG.CPP
	./RedAlert/NULLMGR.CPP
	./RedAlert/NULLMGR.H
	./RedAlert/OBJECT.CPP
	./RedAlert/OBJECT.H
	./RedAlert/OCIDL.H
	./RedAlert/ODATA.CPP
	./RedAlert/OPTIONS.CPP
	./RedAlert/OPTIONS.H
	./RedAlert/OVERLAY.CPP
	./RedAlert/OVERLAY.H
	./RedAlert/PACKET.CPP
	./RedAlert/PACKET.H
	./RedAlert/PALETTEC.CPP
	./RedAlert/PALETTEC.H
	./RedAlert/PIPE.CPP
	./RedAlert/PIPE.H
	./RedAlert/PK.CPP
	./RedAlert/PK.H
	./RedAlert/PKPIPE.CPP
	./RedAlert/PKPIPE.H
	./RedAlert/PKSTRAW.CPP
	./RedAlert/PKSTRAW.H
	./RedAlert/POWER.CPP
	./RedAlert/POWER.H
	./RedAlert/PROFILE.CPP
	./RedAlert/QUEUE.CPP
	./RedAlert/QUEUE.H
	./RedAlert/RADAR.CPP
	./RedAlert/RADAR.H
	./RedAlert/RADIO.CPP
	./RedAlert/RADIO.H
	./RedAlert/RAMFILE.CPP
	./RedAlert/RAMFILE.H
	./RedAlert/RAND.CPP
	./RedAlert/RANDOM.CPP
	./RedAlert/RANDOM.H
	./RedAlert/RAWFILE.CPP
	./RedAlert/RAWFILE.H
	./RedAlert/RAWOLAPI.CPP
	./RedAlert/RAWOLAPI.H
	./RedAlert/READLINE.CPP
	./RedAlert/READLINE.H
	./RedAlert/RECT.CPP
	./RedAlert/RECT.H
	./RedAlert/REGION.H
	./RedAlert/REINF.CPP
	./RedAlert/RGB.CPP
	./RedAlert/RGB.H
	./RedAlert/RNDSTRAW.CPP
	./RedAlert/RNDSTRAW.H
	./RedAlert/RNG.H
	./RedAlert/ROTBMP.CPP
	./RedAlert/ROTBMP.H
	./RedAlert/RULES.CPP
	./RedAlert/RULES.H
	./RedAlert/SAVEDLG.H
	./RedAlert/SAVELOAD.CPP
	./RedAlert/SCENARIO.CPP
	./RedAlert/SCENARIO.H
	./RedAlert/SCORE.CPP
	./RedAlert/SCORE.H
	./RedAlert/SCREEN.H
	./RedAlert/SCROLL.CPP
	./RedAlert/SCROLL.H
	./RedAlert/SDATA.CPP
	./RedAlert/SEARCH.H
	./RedAlert/SEDITDLG.CPP
	./RedAlert/SEDITDLG.H
	./RedAlert/SENDFILE.CPP
	./RedAlert/SEQCONN.CPP
	./RedAlert/SEQCONN.H
	./RedAlert/SESSION.CPP
	./RedAlert/SESSION.H
	./RedAlert/SHA.CPP
	./RedAlert/SHA.H
	./RedAlert/Shape.cpp
	./RedAlert/SHAPEBTN.CPP
	./RedAlert/SHAPEBTN.H
	./RedAlert/SHAPIPE.CPP
	./RedAlert/SHAPIPE.H
	./RedAlert/SHASTRAW.CPP
	./RedAlert/SHASTRAW.H
	./RedAlert/SIDEBAR.CPP
	./RedAlert/SIDEBAR.H
	./RedAlert/SIDEBARGlyphx.CPP
	./RedAlert/SIDEBARGlyphx.H
	./RedAlert/SLIDER.CPP
	./RedAlert/SLIDER.H
	./RedAlert/SMUDGE.CPP
	./RedAlert/SMUDGE.H
	./RedAlert/SOUNDDLG.CPP
	./RedAlert/SOUNDDLG.H
	./RedAlert/SPECIAL.CPP
	./RedAlert/SPECIAL.H
	./RedAlert/NewBlit.cpp
	./RedAlert/SPRITE.CPP
	./RedAlert/STAGE.H
	./RedAlert/STARTUP.CPP
	./RedAlert/STATBTN.CPP
	./RedAlert/STATBTN.H
	./RedAlert/STATS.CPP
	./RedAlert/STRAW.CPP
	./RedAlert/STRAW.H
	./RedAlert/STUB.CPP
	./RedAlert/STYLE.H
	./RedAlert/SUPER.CPP
	./RedAlert/SUPER.H
	./RedAlert/SURFACE.CPP
	./RedAlert/SURFACE.H
	./RedAlert/TAB.CPP
	./RedAlert/TAB.H
	./RedAlert/TACTION.CPP
	./RedAlert/TACTION.H
	./RedAlert/TARGET.CPP
	./RedAlert/TARGET.H
	./RedAlert/TCPIP.CPP
	./RedAlert/TCPIP.H
	./RedAlert/TDATA.CPP
	./RedAlert/TEAM.CPP
	./RedAlert/TEAM.H
	./RedAlert/TEAMTYPE.CPP
	./RedAlert/TEAMTYPE.H
	./RedAlert/TECHNO.CPP
	./RedAlert/TECHNO.H
	./RedAlert/TEMPLATE.CPP
	./RedAlert/TEMPLATE.H
	./RedAlert/TENMGR.CPP
	./RedAlert/TENMGR.H
	./RedAlert/TERRAIN.CPP
	./RedAlert/TERRAIN.H
	./RedAlert/TEVENT.CPP
	./RedAlert/TEVENT.H
	./RedAlert/TEXTBTN.CPP
	./RedAlert/TEXTBTN.H
	./RedAlert/THEME.CPP
	./RedAlert/THEME.H
	./RedAlert/TILESET.CPP
	./RedAlert/TOGGLE.CPP
	./RedAlert/TOGGLE.H
	./RedAlert/TOOLTIP.CPP
	./RedAlert/TOOLTIP.H
	./RedAlert/TRACKER.CPP
	./RedAlert/TRIGGER.CPP
	./RedAlert/TRIGGER.H
	./RedAlert/TRIGTYPE.CPP
	./RedAlert/TRIGTYPE.H
	./RedAlert/TXTLABEL.CPP
	./RedAlert/TXTLABEL.H
	./RedAlert/TYPE.H
	./RedAlert/UDATA.CPP
	./RedAlert/UDPADDR.CPP
	./RedAlert/UNIT.CPP
	./RedAlert/UNIT.H
	./RedAlert/UTRACKER.CPP
	./RedAlert/UTRACKER.H
	./RedAlert/VDATA.CPP
	./RedAlert/VECTOR.CPP
	./RedAlert/VECTOR.H
	./RedAlert/VERSION.CPP
	./RedAlert/VERSION.H
	./RedAlert/VESSEL.CPP
	./RedAlert/VESSEL.H
	./RedAlert/VISUDLG.CPP
	./RedAlert/VISUDLG.H
	./RedAlert/VORTEX.CPP
	./RedAlert/VORTEX.H
	./RedAlert/VQAMOVIE.CPP
	./RedAlert/VQAMOVIE.H
	./RedAlert/W95TRACE.CPP
	./RedAlert/W95TRACE.H
	./RedAlert/WARHEAD.CPP
	./RedAlert/WARHEAD.H
	./RedAlert/WATCOM.H
	./RedAlert/WEAPON.CPP
	./RedAlert/WEAPON.H
	./RedAlert/WINSTUB.CPP
	./RedAlert/WOLAPIOB.CPP
	./RedAlert/WOLAPIOB.H
	./RedAlert/WOLDEBUG.H
	./RedAlert/WOLEDIT.CPP
	./RedAlert/WOLEDIT.H
	./RedAlert/WOLSTRNG.CPP
	./RedAlert/WOLSTRNG.H
	./RedAlert/WOL_CGAM.CPP
	./RedAlert/WOL_CHAT.CPP
	./RedAlert/WOL_DNLD.CPP
	./RedAlert/WOL_GSUP.CPP
	./RedAlert/WOL_GSUP.H
	./RedAlert/WOL_LOGN.CPP
	./RedAlert/WOL_MAIN.CPP
	./RedAlert/WOL_OPT.CPP
	./RedAlert/WSNWLINK.H
	./RedAlert/WSPIPX.CPP
	./RedAlert/WSPIPX.H
	./RedAlert/WSPROTO.CPP
	./RedAlert/WSPROTO.H
	./RedAlert/WSPUDP.CPP
	./RedAlert/WSPUDP.H
	./RedAlert/WWALLOC.H
	./RedAlert/WWFILE.H
	./RedAlert/XPIPE.CPP
	./RedAlert/XPIPE.H
	./RedAlert/XSTRAW.CPP
	./RedAlert/XSTRAW.H
	./RedAlert/_WSPROTO.CPP
	./RedAlert/_WSPROTO.H
	./REDALERT/MapScript.cpp
	./REDALERT/TXTPRNT.cpp
)

set(src_external
	#glew
	./external/gl/glew.c

	#libsmacker
	./external/libsmacker/smacker.c
	./external/libsmacker/smacker.h
	./external/libsmacker/smk_bitstream.c
	./external/libsmacker/smk_bitstream.h
	./external/libsmacker/smk_hufftree.c
	./external/libsmacker/smk_hufftree.h
	./external/libsmacker/smk_malloc.h
	
	#imgui
	./external/imgui/imconfig.h
	./external/imgui/imgui.cpp
	./external/imgui/imgui.h
	./external/imgui/imgui_draw.cpp
	./external/imgui/imgui_widgets.cpp
	./external/imgui/examples/imgui_impl_opengl3.cpp
	./external/imgui/examples/imgui_impl_opengl3.h
	./external/imgui/examples/imgui_impl_sdl.cpp
	./external/imgui/examples/imgui_impl_sdl.h

	#lua
	./external/lua/lapi.c
	./external/lua/lapi.h
	./external/lua/lauxlib.c
	./external/lua/lauxlib.h
	./external/lua/lbaselib.c
	./external/lua/lbitlib.c
	./external/lua/lcode.c
	./external/lua/lcode.h
	./external/lua/lcorolib.c
	./external/lua/lctype.c
	./external/lua/lctype.h
	./external/lua/ldblib.c
	./external/lua/ldebug.c
	./external/lua/ldebug.h
	./external/lua/ldo.c
	./external/lua/ldo.h
	./external/lua/ldump.c
	./external/lua/lfunc.c
	./external/lua/lfunc.h
	./external/lua/lgc.c
	./external/lua/lgc.h
	./external/lua/linit.c
	./external/lua/liolib.c
	./external/lua/llex.c
	./external/lua/llex.h
	./external/lua/llimits.h
	./external/lua/lmathlib.c
	./external/lua/lmem.c
	./external/lua/lmem.h
	./external/lua/loadlib.c
	./external/lua/lobject.c
	./external/lua/lobject.h
	./external/lua/lopcodes.c
	./external/lua/lopcodes.h
	./external/lua/loslib.c
	./external/lua/lparser.c
	./external/lua/lparser.h
	./external/lua/lprefix.h
	./external/lua/lstate.c
	./external/lua/lstate.h
	./external/lua/lstring.c
	./external/lua/lstring.h
	./external/lua/lstrlib.c
	./external/lua/ltable.c
	./external/lua/ltable.h
	./external/lua/ltablib.c
	./external/lua/ltm.c
	./external/lua/ltm.h
	./external/lua/lua.h
	./external/lua/lua.hpp
	./external/lua/luaconf.h
	./external/lua/lualib.h
	./external/lua/lundump.c
	./external/lua/lundump.h
	./external/lua/lutf8lib.c
	./external/lua/lvm.c
	./external/lua/lvm.h
	./external/lua/lzio.c
	./external/lua/lzio.h

)
 

add_definitions(-D RA_AF -DCHEAT_KEYS -DIMGUI_IMPL_OPENGL_LOADER_GLEW -DSCENARIO_EDITOR -DWINDOWS_IGNORE_PACKING_MISMATCH -DTRUE_FALSE_DEFINED -DWIN32 -DWINDOWS -DENGLISH -D_USRDLL -DREDALERT_EXPORTS)
add_compile_options(/permissive+  /Zc:forScope- /Zp1)
add_executable(RedAlert ${src_io} ${src_win32lib} ${src_redalert} ${src_external})

set_target_properties(RedAlert PROPERTIES OUTPUT_NAME "RedAlert" LINK_FLAGS "/PDB:\"RedAlert.pdb\" /SUBSYSTEM:WINDOWS" RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/../" )
target_include_directories(RedAlert PRIVATE ./external/devil/;./external/;./redalert/win32lib;./external/lua/;./external/imgui;./external/dxsdk/Include;./external/ffmpeg-win32/include;./external/sdl2/include;./win32lib;./external/openal/include)
target_link_libraries(RedAlert "opengl32.lib" "winmm.lib" "Ws2_32.lib" "${CMAKE_SOURCE_DIR}/external/devil/ilu.lib" "${CMAKE_SOURCE_DIR}/external/devil/DevIL.lib" "${CMAKE_SOURCE_DIR}/external/sdl2/lib/x86/SDL2.lib" "${CMAKE_SOURCE_DIR}/external/openal/out/build/x86-Release/OpenAL32.lib")
