DEADSOFTWARE

implement optional opengl render
[flatwaifu.git] / src / CMakeLists.txt
1 cmake_minimum_required(VERSION 3.6)
2 project(doom2d C)
4 option(WITH_OPENGL "Build with OpenGL render" OFF)
5 option(WITH_SOFTWARE "Build with Software render" ON)
7 set(D2D_GAME_ROOT .)
8 set(D2D_OPENGL_ROOT ${D2D_GAME_ROOT}/gl)
9 set(D2D_SOFTWARE_ROOT ${D2D_GAME_ROOT}/soft)
11 find_package(SDL REQUIRED)
12 find_package(SDL_mixer REQUIRED)
13 if (WITH_OPENGL)
14 find_package(OpenGL REQUIRED)
15 endif (WITH_OPENGL)
17 aux_source_directory(${D2D_GAME_ROOT} D2D_GAME_SRC)
18 aux_source_directory(${D2D_OPENGL_ROOT} D2D_OPENGL_SRC)
19 aux_source_directory(${D2D_SOFTWARE_ROOT} D2D_SOFTWARE_SRC)
21 if (NOT CMAKE_BUILD_TYPE)
22 set(CMAKE_BUILD_TYPE Release)
23 endif (NOT CMAKE_BUILD_TYPE)
24 set(CMAKE_C_FLAGS "")
25 set(CMAKE_C_FLAGS_DEBUG "-g -O2 -Wall")
26 set(CMAKE_C_FLAGS_RELEASE "-O3") # -DNDEBUG
27 set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS}")
28 set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG}")
29 set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
31 message(STATUS "=== BUILD OPTIONS ===")
32 message(STATUS "BUILD: " ${CMAKE_BUILD_TYPE})
33 message(STATUS "CFLAGS: " ${CMAKE_C_FLAGS})
35 message(STATUS "=== RENDERS ===")
36 message(STATUS "SOFTWARE: " ${WITH_SOFTWARE})
37 message(STATUS "OPENGL: " ${WITH_OPENGL})
39 if (WITH_OPENGL)
40 add_executable(doom2d-gl ${D2D_GAME_SRC} ${D2D_OPENGL_SRC})
41 target_include_directories(doom2d-gl PRIVATE "${D2D_GAME_ROOT}" "${SDL_INCLUDE_DIR}" "${SDLMIXER_INCLUDE_DIR}" "${OPENGL_INCLUDE_DIR}")
42 target_link_libraries(doom2d-gl "${SDL_LIBRARY}" "${SDLMIXER_LIBRARY}" "${OPENGL_LIBRARY}")
43 endif (WITH_OPENGL)
45 if (WITH_SOFTWARE)
46 add_executable(doom2d-soft ${D2D_GAME_SRC} ${D2D_SOFTWARE_SRC})
47 target_include_directories(doom2d-soft PRIVATE "${D2D_GAME_ROOT}" "${SDL_INCLUDE_DIR}" "${SDLMIXER_INCLUDE_DIR}")
48 target_link_libraries(doom2d-soft "${SDL_LIBRARY}" "${SDLMIXER_LIBRARY}")
49 endif (WITH_SOFTWARE)