Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- cmake_minimum_required(VERSION 3.9)
- set(CMAKE_CONFIGURATION_TYPES Debug Release CACHE STRING "" FORCE)
- set(CMAKE_BUILD_TYPE Debug CACHE STRING "")
- set(CMAKE_BUILD_RPATH_USE_ORIGIN TRUE)
- set(CMAKE_SKIP_INSTALL_RPATH TRUE)
- set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
- set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
- set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
- project(projectname)
- set(CMAKE_CXX_STANDARD 20)
- if (MSVC)
- set(CMAKE_CXX_FLAGS "/DWIN32 /D_WINDOWS -utf-8 -permissive- -EHs-c- -D_HAS_EXCEPTIONS=0 -GR- -GS- -Zc:inline -arch:AVX2 -MP -Z7")
- string(APPEND CMAKE_CXX_FLAGS "-W4 -WX -wd4100 -wd4996 -wd4505 -w44062")
- set(CMAKE_CXX_FLAGS_DEBUG "-O1 -Zo -JMC -MDd") # /Oy- ?
- set(CMAKE_CXX_FLAGS_RELEASE "/MD /O2 /Ob3 /UNDEBUG /GL -fp:fast")
- link_libraries(optimized -DEBUG -OPT:REF -OPT:ICF -LTCG:INCREMENTAL)
- elseif (CMAKE_CXX_COMPILER_ID MATCHES "GNU")
- set(CMAKE_CXX_FLAGS "-march=native -fno-exceptions -fno-rtti -fvisibility=hidden")
- string(APPEND CMAKE_CXX_FLAGS "-Werror -Wall -Wextra -Wno-unused-parameter -Wconversion -Wcast-qual -Wsign-conversion -Wfloat-conversion -Wmultiple-inheritance -Werror=virtual-inheritance -Wshadow=local")
- set(CMAKE_CXX_FLAGS_RELEASE "-O3 -UNDEBUG -ffast-math")
- add_link_options(-Wl,--as-needed,--no-undefined,--gc-sections -fsanitize=leak)
- endif()
- file(GLOB SRCS CONFIGURE_DEPENDS *.cpp *.h)
- add_library(projectname ${SRCS})
- #target_include_directories(projectname SYSTEM PRIVATE ${CMAKE_BINARY_DIR}/include)
- #target_link_directories(projectname PRIVATE ${CMAKE_BINARY_DIR}/lib)
- #target_link_libraries(projectname debug libd optimized lib)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement