Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- cmake_minimum_required(VERSION 3.14)
- SET(CMAKE_C_COMPILER /usr/bin/gcc)
- SET(CMAKE_CXX_COMPILER /usr/bin/g++)
- # Build Types
- if(NOT CMAKE_BUILD_TYPE)
- set(CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE}
- CACHE STRING "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel tsan asan lsan msan ubsan"
- FORCE)
- endif()
- # ThreadSanitizer
- set(CMAKE_C_FLAGS_TSAN
- "-fsanitize=thread -g -O1"
- CACHE STRING "Flags used by the C compiler during ThreadSanitizer builds."
- FORCE)
- set(CMAKE_CXX_FLAGS_TSAN
- "-fsanitize=thread -g -O1"
- CACHE STRING "Flags used by the C++ compiler during ThreadSanitizer builds."
- FORCE)
- # AddressSanitize
- set(CMAKE_C_FLAGS_ASAN
- "-fsanitize=address -fno-optimize-sibling-calls -fsanitize-address-use-after-scope -fno-omit-frame-pointer -g -O1"
- CACHE STRING "Flags used by the C compiler during AddressSanitizer builds."
- FORCE)
- set(CMAKE_CXX_FLAGS_ASAN
- "-fsanitize=address -fno-optimize-sibling-calls -fsanitize-address-use-after-scope -fno-omit-frame-pointer -g -O1"
- CACHE STRING "Flags used by the C++ compiler during AddressSanitizer builds."
- FORCE)
- # LeakSanitizer
- set(CMAKE_C_FLAGS_LSAN
- "-fsanitize=leak -fno-omit-frame-pointer -g -O1"
- CACHE STRING "Flags used by the C compiler during LeakSanitizer builds."
- FORCE)
- set(CMAKE_CXX_FLAGS_LSAN
- "-fsanitize=leak -fno-omit-frame-pointer -g -O1"
- CACHE STRING "Flags used by the C++ compiler during LeakSanitizer builds."
- FORCE)
- # MemorySanitizer
- set(CMAKE_C_FLAGS_MSAN
- "-fsanitize=memory -fno-optimize-sibling-calls -fsanitize-memory-track-origins=2 -fno-omit-frame-pointer -g -O2"
- CACHE STRING "Flags used by the C compiler during MemorySanitizer builds."
- FORCE)
- set(CMAKE_CXX_FLAGS_MSAN
- "-fsanitize=memory -fno-optimize-sibling-calls -fsanitize-memory-track-origins=2 -fno-omit-frame-pointer -g -O2"
- CACHE STRING "Flags used by the C++ compiler during MemorySanitizer builds."
- FORCE)
- # UndefinedBehaviour
- set(CMAKE_C_FLAGS_UBSAN
- "-fsanitize=undefined"
- CACHE STRING "Flags used by the C compiler during UndefinedBehaviourSanitizer builds."
- FORCE)
- set(CMAKE_CXX_FLAGS_UBSAN
- "-fsanitize=undefined"
- CACHE STRING "Flags used by the C++ compiler during UndefinedBehaviourSanitizer builds."
- FORCE)
- project(run)
- set(EXECUTABLE_NAME "run")
- file(GLOB src ${PROJECT_SOURCE_DIR}/src/*.cpp)
- file(GLOB include ${PROJECT_SOURCE_DIR}/include/*.h)
- file(GLOB audio ${PROJECT_SOURCE_DIR}/audio/*)
- add_compile_options(-pedantic -Wall -g -Wextra -Wshadow -Wnon-virtual-dtor -Wold-style-cast -Wcast-align -Woverloaded-virtual -Wpedantic -Wconversion -Wsign-conversion -Wnull-dereference -Wdouble-promotion -Wformat=2 -Wduplicated-cond -Wduplicated-branches -Wlogical-op -Wuseless-cast)
- add_executable(${EXECUTABLE_NAME} ${main} ${include} ${src} ${audio} )
- include_directories(${PROJECT_SOURCE_DIR}/include ${GTEST_INCLUDE_DIRS})
- # set(SFML_STATIC_LIBRARIES TRUE) niewazne
- set(SFML_DIR "./library/frameworks/SFML-2.5.1/lib/cmake/SFML")
- find_package(GTest REQUIRED)
- target_link_libraries(run sfml-graphics sfml-audio sfml-window sfml-system)
- # testing
- enable_testing()
- file(GLOB test_src_files ${PROJECT_SOURCE_DIR}/tests/*.cpp)
- # add_executable(runAllTests ${test_src_files})
- # add_test(Tests runAllTests)
- # target_link_libraries(runAllTests sfml-graphics sfml-audio sfml-window sfml-system ${GTEST_LIBRARIES} pthread)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement