CMakeLists.txt 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. cmake_minimum_required(VERSION 3.0)
  2. project(spaceace
  3. VERSION 0.1
  4. LANGUAGES CXX C)
  5. ###########
  6. # Debug or Release
  7. ###########
  8. if (NOT CMAKE_BUILD_TYPE)
  9. ## set default to Debug
  10. set(CMAKE_BUILD_TYPE RelWithDebInfo) # override with -DCMAKE_BUILD_TYPE=Release
  11. message("==> CMAKE_BUILD_TYPE empty. Changing it to Debug.")
  12. else()
  13. message("==> CMAKE_BUILD_TYPE == ${CMAKE_BUILD_TYPE}.")
  14. endif()
  15. # Profiling - which does not work.
  16. # SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pg")
  17. # SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pg")
  18. # SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -pg")
  19. # add_definitions(-pg)
  20. ## https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_macros.html
  21. ## During Debug, use debug version of libstdc++ (asserts on access to invalid iterators, etc!)
  22. set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -D_GLIBCXX_DEBUG")
  23. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
  24. ##############
  25. # C++ Standard
  26. ##############
  27. set(CMAKE_CXX_STANDARD 14)
  28. # set(CMAKE_CXX_STANDARD 17)
  29. set(CMAKE_CXX_EXTENSIONS ON)
  30. if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/door++)
  31. message("***")
  32. message("*** ERROR/MISSING *** please run: git clone https://github.com/stevet11/door.git door++")
  33. message("*** (Or whatever git clone you need for door++)")
  34. message("***")
  35. endif()
  36. add_subdirectory(door++)
  37. file(GLOB IMAGES
  38. ansi/*.ans
  39. )
  40. add_custom_command(
  41. OUTPUT images.h
  42. COMMAND ./build_images.sh
  43. DEPENDS ${IMAGES}
  44. COMMENT "Generating images.h"
  45. WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
  46. )
  47. if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/SQLiteCpp)
  48. message("***")
  49. message("*** ERROR/MISSING *** please run: git clone https://github.com/SRombauts/SQLiteCpp.git --depth 1")
  50. message("***")
  51. endif()
  52. set(SQLITECPP_RUN_CPPCHECK OFF CACHE BOOL "" FORCE)
  53. set(SQLITECPP_RUN_CPPLINT OFF CACHE BOOL "" FORCE)
  54. add_subdirectory(SQLiteCpp)
  55. if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/yaml-cpp)
  56. message("***")
  57. message("*** ERROR/MISSING *** please run: git clone https://github.com/jbeder/yaml-cpp.git --depth 1")
  58. message("***")
  59. endif()
  60. add_subdirectory(yaml-cpp)
  61. add_executable(space-ace main.cpp deck.cpp db.h db.cpp play.h play.cpp scores.h scores.cpp utils.h utils.cpp starfield.cpp starfield.h images.h)
  62. target_link_libraries(space-ace door++ pthread SQLiteCpp sqlite3 dl yaml-cpp)