cmake_minimum_required(VERSION 3.16) project(bullethell) set(CMAKE_C_STANDARD 11) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_EXTENSIONS No) if (MSVC) set(CMAKE_CXX_FLAGS "-D_USE_MATH_DEFINES -Wall") else() set(CMAKE_CXX_FLAGS "-Wall -Wextra -Wpedantic") endif() set(CMAKE_CXX_RELEASE "-O3") if(EMSCRIPTEN) set(CMAKE_PREFIX_PATH "$ENV{HOME}/.emscripten_cache/sysroot;/usr/lib/emscripten/system") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -s USE_GLFW=3 -s ASSERTIONS=1 -s WASM=1 -s ASYNCIFY") set(raylib_USE_STATIC_LIBS ON) endif() find_package(raylib 3 REQUIRED) add_executable( ${PROJECT_NAME} ArcGenerator.cpp ConstantVelocity.cpp Enemy.cpp EnemyFactory.cpp Falling.cpp FallingAndOscillating.cpp Flash.cpp Game.cpp GameScreen.cpp Generator.cpp KeyboardController.cpp main.cpp Oscillating.cpp OverScreen.cpp Player.cpp Stats.cpp TestStage.cpp TitleScreen.cpp ) target_link_libraries(${PROJECT_NAME} raylib) if(MSVC) target_link_libraries(${PROJECT_NAME} winmm.lib) target_link_options(${PROJECT_NAME} PRIVATE /SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup) endif()