summaryrefslogtreecommitdiffstats
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorhybrid <hybrid@hybridlabs.cc>2026-08-21 17:26:49 +0300
committerhybrid <hybrid@hybridlabs.cc>2026-08-21 17:26:49 +0300
commitafd71cacbf324b2898220437c10b4db4228b70ce (patch)
tree02a646222cf880cd1ad87a283d8e2c5e2bbca8bb /CMakeLists.txt
downloadlearncpp-afd71cacbf324b2898220437c10b4db4228b70ce.tar.gz
learncpp-afd71cacbf324b2898220437c10b4db4228b70ce.tar.bz2
learncpp-afd71cacbf324b2898220437c10b4db4228b70ce.zip
add: alot
Diffstat (limited to '')
-rw-r--r--CMakeLists.txt27
1 files changed, 27 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..eea0bfc
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,27 @@
+cmake_minimum_required(VERSION 4.3.4)
+project(LearnCPP)
+
+set(CMAKE_CXX_STANDARD 23)
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+
+# where to put binaries
+set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
+
+# find all .cpp files inside src directory
+file(GLOB_RECURSE SOURCES "src/*.cpp")
+
+foreach(SOURCE_FILE ${SOURCES})
+ # get paths
+ file(RELATIVE_PATH REL_PATH ${CMAKE_SOURCE_DIR}/src ${SOURCE_FILE})
+
+ # form target names (substitute '/' to '_', remove '.cpp')
+ string(REPLACE "/" "_" TARGET_NAME ${REL_PATH})
+ string(REPLACE ".cpp" "" TARGET_NAME ${TARGET_NAME})
+
+ add_executable(${TARGET_NAME} ${SOURCE_FILE})
+ target_compile_options(${TARGET_NAME} PRIVATE
+ -Wall -Weffc++ -Wextra -Wpedantic
+ )
+
+ # link libs here
+endforeach()