diff --git a/CMakeLists.txt b/CMakeLists.txt index 113794f90..c746f0bd8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -42,13 +42,13 @@ message(VERBOSE "* ${PROJECT_NAME} v${PROJECT_VERSION} (${CMAKE_BUILD_TYPE})") message(VERBOSE "* Copyright (c) 2017-2021 Michele Caini ") message(VERBOSE "*") -option(ENTT_USE_LIBCPP "Use libc++ by adding -stdlib=libc++ flag if availbale." OFF) -option(ENTT_USE_SANITIZER "Enable sanitizers by adding -fsanitize=address -fno-omit-frame-pointer -fsanitize=undefined flags if availbale." OFF) - # # Compiler stuff # +option(ENTT_USE_LIBCPP "Use libc++ by adding -stdlib=libc++ flag if availbale." OFF) +option(ENTT_USE_SANITIZER "Enable sanitizers by adding -fsanitize=address -fno-omit-frame-pointer -fsanitize=undefined flags if availbale." OFF) + if(ENTT_USE_LIBCPP) if(NOT WIN32) include(CheckCXXSourceCompiles) @@ -86,6 +86,17 @@ endif() # option(ENTT_INCLUDE_HEADERS "Add all EnTT headers to the EnTT target." OFF) +option(ENTT_INCLUDE_NATVIS "Add EnTT natvis files to the EnTT target." OFF) + +if(ENTT_INCLUDE_NATVIS) + if(MSVC) + set(ENTT_HAS_NATVIS TRUE CACHE INTERNAL "") + endif() + + if(NOT ENTT_HAS_NATVIS) + message(VERBOSE "The option ENTT_INCLUDE_NATVIS is set but natvis files are not supported. They will not be added to the target.") + endif() +endif() include(GNUInstallDirs) @@ -174,6 +185,24 @@ if(ENTT_INCLUDE_HEADERS) ) endif() +if(ENTT_HAS_NATVIS) + target_sources( + EnTT + INTERFACE + $ + $ + $ + $ + $ + $ + $ + $ + $ + $ + $ + ) +endif() + if(ENTT_HAS_SANITIZER) target_compile_options(EnTT INTERFACE $<$:-fsanitize=address -fno-omit-frame-pointer -fsanitize=undefined>) target_link_libraries(EnTT INTERFACE $<$:-fsanitize=address -fno-omit-frame-pointer -fsanitize=undefined>)