cmake_minimum_required(VERSION 3.30...4.0) #------------------------------------------------------------------------------ # Project setup project(Simple LANGUAGES CXX) set(CMAKE_CXX_STANDARD 20) # C++20 set(CMAKE_CXX_STANDARD_REQUIRED ON) # Don't allow fallback to earlier standards. set(CMAKE_CXX_EXTENSIONS OFF) # Disable compiler extensions (e.g. -std=gnu++20) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}") set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) set_property(GLOBAL PROPERTY USE_FOLDERS ON) # Install to a non-system location by default. if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/install) endif() #------------------------------------------------------------------------------ # Build targets add_library(shared SHARED main.cpp) target_link_libraries(shared) add_executable(main main.cpp) target_link_libraries(main shared) #------------------------------------------------------------------------------ # Install setup install(TARGETS main)