CMakeLists.txt 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. cmake_minimum_required(VERSION 3.28)
  2. project(gamingcore CXX)
  3. set(CMAKE_CXX_STANDARD 23)
  4. set(SRC
  5. "src/Main.cpp"
  6. )
  7. if("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
  8. set(LINK_OPTIONS "")
  9. set(LOG_LEVEL 2)
  10. set(DEFINITIONS CHECK_MEMORY)
  11. else()
  12. set(DEFINITIONS ERROR_SIMULATOR CHECK_MEMORY DEBUG_VULKAN)
  13. set(LOG_LEVEL 4)
  14. endif()
  15. if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
  16. include("cmake/gcc_warnings.cmake")
  17. elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
  18. include("cmake/clang_warnings.cmake")
  19. endif()
  20. include("${CMAKE_INSTALL_PREFIX}/cmake/add_modules.cmake")
  21. add_executable(table ${SRC})
  22. target_compile_options(table PUBLIC
  23. ${WARNINGS}
  24. -fdiagnostics-color=always
  25. )
  26. target_compile_definitions(table
  27. PRIVATE LOG_LEVEL=${LOG_LEVEL}
  28. PUBLIC ${DEFINITIONS}
  29. )
  30. target_link_libraries(table PRIVATE core)
  31. add_modules(
  32. TARGET table
  33. NAME core_modules
  34. PREFIX ${CMAKE_INSTALL_PREFIX}/
  35. FILES ${core_modules}
  36. )
  37. add_modules(
  38. TARGET table
  39. NAME table_private_modules
  40. FILES
  41. src/Module.cppm
  42. )
  43. target_link_directories(table
  44. PUBLIC ${CMAKE_INSTALL_PREFIX}/lib
  45. )