Skip to content

Instantly share code, notes, and snippets.

@J4n1X
Last active November 12, 2022 21:37
Show Gist options
  • Save J4n1X/464a6492d884ca7efdebbb2fec54b646 to your computer and use it in GitHub Desktop.
Save J4n1X/464a6492d884ca7efdebbb2fec54b646 to your computer and use it in GitHub Desktop.
My preferred CMakeLists template for C++
cmake_minimum_required (VERSION 3.8)
project ("example")
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(PROJECT_SOURCE_DIR ${PROJECT_SOURCE_DIR}/src)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Werror -pedantic")
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
file(GLOB CXXFILES ${PROJECT_SOURCE_DIR}/*.cpp)
add_executable(example ${CXXFILES})
set_property(TARGET example PROPERTY CXX_STANDARD 17)
add_custom_target(
run
COMMAND example
DEPENDS example
WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment