1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- cmake_minimum_required(VERSION 3.0)
- project(swan)
-
- find_package(SFML 2.5 COMPONENTS graphics system window REQUIRED)
-
- message(STATUS "SFML is ${SFML_INCLUDE_PATH}")
-
- add_compile_options(-std=c++2a -Wall -Wextra -Wpedantic -Wno-unused-parameter)
- if(CMAKE_BUILD_TYPE STREQUAL Debug OR CMAKE_BUILD_TYPE STREQUAL "")
- message(STATUS "Build mode: Debug")
- add_compile_options(-g -fsanitize=address)
- set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=address")
- elseif(CMAKE_BUILD_TYPE STREQUAL Release)
- message(STATUS "Build mode: Release")
- add_compile_options(-O3 -flto)
- set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -flto")
- else()
- message(FATAL_ERROR "CMAKE_BUILD_TYPE must be Debug or Release.")
- endif()
-
- set(LIBRARIES sfml-graphics sfml-system sfml-window sfml-audio dl)
-
- # We want to be able to use C++20 designated initializers,
- # but Clang doesn't support them yet.
- # Remove once Clang 9.1 or something comes out.
- add_compile_options(-Wno-c99-extensions)
-
- include_directories(
- ${PROJECT_SOURCE_DIR}/libswan/include
- ${PROJECT_SOURCE_DIR}/third_party)
- set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib;${CMAKE_INSTALL_PREFIX}/swan/libswan")
-
- add_subdirectory(libswan)
- add_subdirectory(core.mod)
-
- add_executable(swan src/main.cc)
- target_link_libraries(swan libswan ${LIBRARIES})
-
- set(assets
- assets/icon.png
- assets/music/happy-1.wav)
- foreach(a ${assets})
- configure_file("${a}" "${a}" COPYONLY)
- endforeach(a)
-
- install(TARGETS swan DESTINATION swan)
- install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/assets DESTINATION swan)
|