cmake_minimum_required( VERSION 3.1.0 ) require_stricmp() require_strnicmp() # Build does not work with signed chars! if (MSVC) set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /J" ) else() set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -funsigned-char -Wno-missing-braces -Wno-char-subscripts -Wno-unused-variable" ) endif() include_directories( "${CMAKE_CURRENT_SOURCE_DIR}/../../build/include" ) if (WIN32) include_directories( "${ZLIB_INCLUDE_DIR}" "${ZMUSIC_INCLUDE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/../../platform/windows/include" "${CMAKE_CURRENT_SOURCE_DIR}/../../platform/windows/include/vpx") else () include_directories( "${ZLIB_INCLUDE_DIR}" "${ZMUSIC_INCLUDE_DIR}") endif() include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/.. ${CMAKE_CURRENT_SOURCE_DIR}/../build/include ${CMAKE_CURRENT_SOURCE_DIR}/../audiolib/include ${CMAKE_CURRENT_SOURCE_DIR}/../libsmackerdec/include ${CMAKE_CURRENT_SOURCE_DIR}/../thirdparty/include ${CMAKE_CURRENT_SOURCE_DIR}/../common ${CMAKE_CURRENT_SOURCE_DIR}/../common/utility ${CMAKE_CURRENT_SOURCE_DIR}/../common/console ${CMAKE_CURRENT_SOURCE_DIR}/../common/textures ${CMAKE_CURRENT_SOURCE_DIR}/../common/fonts ${CMAKE_CURRENT_SOURCE_DIR}/../common/2d ${CMAKE_CURRENT_SOURCE_DIR}/../common/music ${CMAKE_CURRENT_SOURCE_DIR}/../common/input ${CMAKE_CURRENT_SOURCE_DIR}/../platform ${CMAKE_CURRENT_SOURCE_DIR}/../common/rendering/gl_load ${CMAKE_CURRENT_SOURCE_DIR}/../common/rendering/gl/system ${CMAKE_CURRENT_SOURCE_DIR}/../common/rendering/gl/renderer ${CMAKE_CURRENT_SOURCE_DIR}/../common/rendering/gl/shaders ${CMAKE_CURRENT_SOURCE_DIR}/../common/rendering/hwrenderer/data ${CMAKE_CURRENT_SOURCE_DIR}/../common/rendering/hwrenderer/postprocessing ${CMAKE_CURRENT_SOURCE_DIR}/../common/rendering/hwrenderer/utility ${CMAKE_CURRENT_SOURCE_DIR}/../common/rendering ) set( PCH_SOURCES src/actor.cpp src/ai.cpp src/anim.cpp #src/bldscript.cpp src/border.cpp src/break.cpp #src/brooms.cpp src/bunny.cpp src/cache.cpp src/cheats.cpp src/colormap.cpp src/common.cpp src/config.cpp src/console.cpp src/coolg.cpp src/coolie.cpp src/copysect.cpp src/demo.cpp src/draw.cpp src/eel.cpp src/game.cpp src/girlninj.cpp src/goro.cpp src/hornet.cpp src/interp.cpp src/interpsh.cpp src/inv.cpp #src/jbhlp.cpp src/jplayer.cpp src/jsector.cpp src/jweapon.cpp src/lava.cpp src/light.cpp src/mclip.cpp src/menus.cpp src/miscactr.cpp src/morph.cpp src/network.cpp src/ninja.cpp src/panel.cpp src/player.cpp src/predict.cpp src/quake.cpp src/ripper.cpp src/ripper2.cpp src/rooms.cpp src/rotator.cpp src/save.cpp src/saveable.cpp src/scrip2.cpp src/sector.cpp src/serp.cpp src/skel.cpp src/skull.cpp src/slidor.cpp src/sounds.cpp src/spike.cpp src/sprite.cpp src/sumo.cpp src/sync.cpp src/text.cpp src/track.cpp src/vator.cpp src/vis.cpp src/wallmove.cpp src/warp.cpp src/weapon.cpp src/zilla.cpp src/zombie.cpp src/swcvar.cpp src/d_menu.cpp ) if( MSVC ) enable_precompiled_headers( ../g_pch.h PCH_SOURCES ) # The original Build code was written with unsigned chars and unfortunately they still haven't been eliminated entirely. # All other code should stay with signed chars. What a mess... :( #set_source_files_properties( ${PCH_SOURCES} PROPERTIES COMPILE_FLAGS "/J" ) else() # Temporary solution for compilers other than MSVC set_source_files_properties( ${PCH_SOURCES} PROPERTIES COMPILE_FLAGS "-include g_pch.h" ) endif() file( GLOB HEADER_FILES src/*.h ) add_library( sw STATIC ${HEADER_FILES} ${PCH_SOURCES} )