cmake_minimum_required(VERSION 3.24...3.30) project(BarStatusScreen) include(FetchContent) # Generate compile_commands.json set(CMAKE_EXPORT_COMPILE_COMMANDS ON) set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) # Dependencies set(RAYLIB_VERSION 5.0) FetchContent_Declare( raylib DOWNLOAD_EXTRACT_TIMESTAMP OFF URL https://github.com/raysan5/raylib/archive/refs/tags/${RAYLIB_VERSION}.tar.gz FIND_PACKAGE_ARGS ) FetchContent_MakeAvailable(raylib) # Our Project add_executable(${PROJECT_NAME}) add_subdirectory(src) set_target_properties(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${PROJECT_NAME}) set_property(TARGET ${PROJECT_NAME} PROPERTY VS_DEBUGGER_WORKING_DIRECTORY $) if ("${PLATFORM}" STREQUAL "Web") add_custom_command( TARGET ${PROJECT_NAME} PRE_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/src/resources $/../resources ) #DEPENDS ${PROJECT_NAME} else() add_custom_command( TARGET ${PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/src/resources $/resources ) #DEPENDS ${PROJECT_NAME} endif() #set(raylib_VERBOSE 1) target_link_libraries(${PROJECT_NAME} raylib) # Web Configurations if ("${PLATFORM}" STREQUAL "Web") # Tell Emscripten to build an example.html file. set_target_properties(${PROJECT_NAME} PROPERTIES SUFFIX ".html") target_link_options(${PROJECT_NAME} PUBLIC -sUSE_GLFW=3 PUBLIC --preload-file resources) endif()