Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- cmake_minimum_required(VERSION 3.9)
- project(graph VERSION 1.0.0 LANGUAGES CXX)
- set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_HOME_DIRECTORY}/build)
- set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_HOME_DIRECTORY}/bin)
- set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_HOME_DIRECTORY}/lib)
- ######################
- # Source files #
- ######################
- file(GLOB SOURCE_FILES
- "src/*.h"
- "src/*.cpp"
- )
- ######################
- # SFML #
- ######################
- if(EXISTS ${CMAKE_HOME_DIRECTORY}/ext/SFML)
- set(SFML_DIR ${CMAKE_HOME_DIRECTORY}/ext/SFML/lib/cmake/SFML)
- endif()
- # set(SFML_STATIC_LIBRARIES TRUE)
- find_package(SFML 2.5 COMPONENTS graphics audio REQUIRED)
- include_directories(${CMAKE_HOME_DIRECTORY}/ext/SelbaWard)
- ######################
- # Executable #
- ######################
- add_executable(${PROJECT_NAME} ${SOURCE_FILES})
- ######################
- # Compiler flags #
- ######################
- set_target_properties(
- ${PROJECT_NAME}
- PROPERTIES CXX_STANDARD 17
- CXX_STANDARD_REQUIRED YES
- CXX_EXTENSIONS NO
- )
- if(UNIX)
- if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR
- "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
- target_compile_options(${PROJECT_NAME} PRIVATE -Wall -Wextra -pedantic)
- target_compile_options(${PROJECT_NAME} PRIVATE -Werror)
- endif()
- endif()
- if(MSVC)
- string(REGEX REPLACE "/W[0-9]" "/W4" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
- target_compile_options(${PROJECT_NAME} PRIVATE /WX)
- target_compile_options(${PROJECT_NAME} PRIVATE /permissive-)
- target_compile_options(${PROJECT_NAME} PRIVATE /diagnostics:caret)
- target_compile_options(${PROJECT_NAME} PRIVATE /Zi)
- target_compile_options(${PROJECT_NAME} PRIVATE /Zc:rvalueCast)
- # target_compile_options(${PROJECT_NAME} PRIVATE /Zc:referenceBinding)
- # target_compile_options(${PROJECT_NAME} PRIVATE /Zc:stringStrings)
- endif()
- target_link_libraries(${PROJECT_NAME} sfml-graphics sfml-audio)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement