DEADSOFTWARE

sound: separate and rewrite
[flatwaifu.git] / src / CMakeLists.txt
1 cmake_minimum_required(VERSION 3.6)
2 project(doom2d C)
4 option(WITH_OPENGL "Build with OpenGL render" ON)
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)
10 set(D2D_SDL_ROOT ${D2D_GAME_ROOT}/sdl)
11 set(D2D_SDLMIXER_ROOT ${D2D_GAME_ROOT}/sdlmixer)
13 find_package(SDL REQUIRED)
14 find_package(SDL_mixer REQUIRED)
15 if (WITH_OPENGL)
16 find_package(OpenGL REQUIRED)
17 endif (WITH_OPENGL)
19 aux_source_directory(${D2D_GAME_ROOT} D2D_GAME_SRC)
20 aux_source_directory(${D2D_OPENGL_ROOT} D2D_OPENGL_SRC)
21 aux_source_directory(${D2D_SOFTWARE_ROOT} D2D_SOFTWARE_SRC)
22 aux_source_directory(${D2D_SDL_ROOT} D2D_SDL_SRC)
23 aux_source_directory(${D2D_SDLMIXER_ROOT} D2D_SDLMIXER_SRC)
25 if (NOT CMAKE_BUILD_TYPE)
26 set(CMAKE_BUILD_TYPE Release)
27 endif (NOT CMAKE_BUILD_TYPE)
28 set(CMAKE_C_FLAGS "")
29 set(CMAKE_C_FLAGS_DEBUG "-g -O0 -Wall")
30 set(CMAKE_C_FLAGS_RELEASE "-O3") # -DNDEBUG
31 set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS}")
32 set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG}")
33 set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
35 message(STATUS "=== BUILD OPTIONS ===")
36 message(STATUS "BUILD: " ${CMAKE_BUILD_TYPE})
37 message(STATUS "CFLAGS: " ${CMAKE_C_FLAGS})
39 message(STATUS "=== RENDERS ===")
40 message(STATUS "SOFTWARE: " ${WITH_SOFTWARE})
41 message(STATUS "OPENGL: " ${WITH_OPENGL})
43 if (WITH_OPENGL)
44 add_executable(doom2d-gl ${D2D_GAME_SRC} ${D2D_SDL_SRC} ${D2D_SDLMIXER_SRC} ${D2D_OPENGL_SRC})
45 target_include_directories(doom2d-gl PRIVATE "${D2D_GAME_ROOT}" "${SDL_INCLUDE_DIR}" "${SDLMIXER_INCLUDE_DIR}" "${OPENGL_INCLUDE_DIR}")
46 target_link_libraries(doom2d-gl "${SDL_LIBRARY}" "${SDLMIXER_LIBRARY}" "${OPENGL_LIBRARY}")
47 endif (WITH_OPENGL)
49 if (WITH_SOFTWARE)
50 add_executable(doom2d-soft ${D2D_GAME_SRC} ${D2D_SDL_SRC} ${D2D_SDLMIXER_SRC} ${D2D_SOFTWARE_SRC})
51 target_include_directories(doom2d-soft PRIVATE "${D2D_GAME_ROOT}" "${SDL_INCLUDE_DIR}" "${SDLMIXER_INCLUDE_DIR}")
52 target_link_libraries(doom2d-soft "${SDL_LIBRARY}" "${SDLMIXER_LIBRARY}")
53 endif (WITH_SOFTWARE)