Advertisement
Guest User

Untitled

a guest
Dec 8th, 2018
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
CMake 2.00 KB | None | 0 0
  1. cmake_minimum_required(VERSION 3.9)
  2.  
  3. project(graph VERSION 1.0.0 LANGUAGES CXX)
  4.  
  5. set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_HOME_DIRECTORY}/build)
  6. set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_HOME_DIRECTORY}/bin)
  7. set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_HOME_DIRECTORY}/lib)
  8.  
  9. ######################
  10. #    Source files    #
  11. ######################
  12.  
  13. file(GLOB SOURCE_FILES
  14.     "src/*.h"
  15.     "src/*.cpp"
  16. )
  17.  
  18. ######################
  19. #        SFML        #
  20. ######################
  21.  
  22. if(EXISTS ${CMAKE_HOME_DIRECTORY}/ext/SFML)
  23.     set(SFML_DIR ${CMAKE_HOME_DIRECTORY}/ext/SFML/lib/cmake/SFML)
  24. endif()
  25.  
  26. # set(SFML_STATIC_LIBRARIES TRUE)
  27.  
  28. find_package(SFML 2.5 COMPONENTS graphics audio REQUIRED)
  29.  
  30. include_directories(${CMAKE_HOME_DIRECTORY}/ext/SelbaWard)
  31.  
  32. ######################
  33. #     Executable     #
  34. ######################
  35.  
  36. add_executable(${PROJECT_NAME} ${SOURCE_FILES})
  37.  
  38. ######################
  39. #   Compiler flags   #
  40. ######################
  41.  
  42. set_target_properties(
  43.     ${PROJECT_NAME}
  44.     PROPERTIES CXX_STANDARD 17
  45.                CXX_STANDARD_REQUIRED YES
  46.                CXX_EXTENSIONS NO
  47. )
  48.  
  49. if(UNIX)
  50.     if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR
  51.        "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
  52.         target_compile_options(${PROJECT_NAME} PRIVATE -Wall -Wextra -pedantic)
  53.         target_compile_options(${PROJECT_NAME} PRIVATE -Werror)
  54.     endif()
  55. endif()
  56.  
  57. if(MSVC)
  58.     string(REGEX REPLACE "/W[0-9]" "/W4" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
  59.     target_compile_options(${PROJECT_NAME} PRIVATE /WX)
  60.     target_compile_options(${PROJECT_NAME} PRIVATE /permissive-)
  61.  
  62.     target_compile_options(${PROJECT_NAME} PRIVATE /diagnostics:caret)
  63.     target_compile_options(${PROJECT_NAME} PRIVATE /Zi)
  64.  
  65.     target_compile_options(${PROJECT_NAME} PRIVATE /Zc:rvalueCast)
  66.     # target_compile_options(${PROJECT_NAME} PRIVATE /Zc:referenceBinding)
  67.     # target_compile_options(${PROJECT_NAME} PRIVATE /Zc:stringStrings)
  68. endif()
  69.  
  70. target_link_libraries(${PROJECT_NAME} sfml-graphics sfml-audio)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement