aboutsummaryrefslogtreecommitdiffstats
path: root/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt29
1 files changed, 25 insertions, 4 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6aaa0f0..3b18938 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -6,21 +6,42 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
set(CMAKE_TOOLCHAIN_FILE "${CMAKE_CURRENT_SOURCE_DIR}/vcpkg/scripts/buildsystems/vcpkg.cmake" CACHE STRING "Vcpkg toolchain file")
-if(WIN32)
+project(path-tracer VERSION 1.0 LANGUAGES CXX)
+
+if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
add_compile_options(
-msse4.1 -fcolor-diagnostics -fansi-escape-codes # colored output when using ninja
+ # https://github.com/cpp-best-practices/cppbestpractices/blob/master/02-Use_the_Tools_Available.md#gcc--clang
+ -Wall
+ -Wextra
+ -Wshadow
+ -Wcast-align
+ -Wnon-virtual-dtor
+ -Wpedantic
+ -Wunused
)
endif()
-project(path-tracer VERSION 1.0 LANGUAGES CXX)
-
find_package(imgui CONFIG REQUIRED)
-find_package(Vulkan REQUIRED)
find_package(nlohmann_json CONFIG REQUIRED)
+find_package(Vulkan REQUIRED)
if(UNIX AND NOT APPLE)
find_package(X11 REQUIRED)
endif()
+find_program(CMAKE_CXX_CPPCHECK NAMES cppcheck)
+if (CMAKE_CXX_CPPCHECK)
+ file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/cppcheck)
+
+ list(
+ APPEND CMAKE_CXX_CPPCHECK
+ "--project=${CMAKE_BINARY_DIR}/compile_commands.json"
+ "--cppcheck-build-dir=${CMAKE_BINARY_DIR}/cppcheck"
+ "--enable=all"
+ "-iinclude/thirdparty"
+ )
+endif()
+
add_subdirectory(src)
add_subdirectory(shaders)