cmake_minimum_required(VERSION 3.26) project(Bin2CPP VERSION 0.1.0 DESCRIPTION "Bin2CPP" LANGUAGES CXX) set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED True) set(CMAKE_POLICY_DEFAULT_CMP0077 NEW) get_property(IS_MULTI_CONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) set(CMAKE_CONFIGURATION_TYPES "Release;RelWithDebInfo;Debug" CACHE STRING "" FORCE) option(BUILD_TESTS OFF) option(ASAN OFF) include(${CMAKE_SOURCE_DIR}/CMake/FindDependencies.cmake) foreach(CONFIG DEBUG RELWITHDEBINFO) if("${CMAKE_EXE_LINKER_FLAGS_${CONFIG}}" MATCHES "/INCREMENTAL:NO") string(REGEX REPLACE "/INCREMENTAL([^:]|$)" "" CMAKE_EXE_LINKER_FLAGS_${CONFIG} "${CMAKE_EXE_LINKER_FLAGS_${CONFIG}}") endif() endforeach() set(CMAKE_EXPORT_COMPILE_COMMANDS ON) set(CMAKE_OPTIMIZE_DEPENDENCIES 1) add_compile_options(${BIN2CPP_CXX_FLAGS}) add_link_options(${BIN2CPP_EXE_LINK_FLAGS}) add_compile_definitions( $<$:BIN2CPP_OPTIMIZED> $<$:BIN2CPP_NOT_OPTIMIZED> $<$:BIN2CPP_WINDOWS> $<$:BIN2CPP_LINUX> $<$:NOMINMAX> $<$:WIN32_LEAN_AND_MEAN>) if(BUILD_TESTS) enable_testing() endif() set_property(GLOBAL PROPERTY USE_FOLDERS ON) SET(CMAKE_SKIP_BUILD_RPATH FALSE) SET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) SET(CMAKE_INSTALL_RPATH "\${ORIGIN}") add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/Bin2CPP/Sources) if(${BUILD_TESTS}) add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/Bin2CPP/Tests) endif() add_custom_target(NatVis SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/Vendor/NatVis/EASTL/EASTL.natvis)