initial commit

This commit is contained in:
Pagwin 2024-04-08 13:46:02 -04:00
commit 0f02486d79
6 changed files with 69 additions and 0 deletions

14
.gitignore vendored Normal file
View file

@ -0,0 +1,14 @@
CMakeCache.txt
CMakeFiles/
_deps/
*.a
*.o
Makefile
apps/cmake_install.cmake
cmake_install.cmake
src/cmake_install.cmake
.ninja_deps
.ninja_log
build.ninja
build
.cache

23
CMakeLists.txt Normal file
View file

@ -0,0 +1,23 @@
# This is a template I intend to use to create C++ cmake projects going forwards
# the structure takes heavily after https://cliutils.gitlab.io/modern-cmake/chapters/basics/structure.html
# This file takes heavily from https://gitlab.com/CLIUtils/modern-cmake/-/blob/master/examples/extended-project/CMakeLists.txt
cmake_minimum_required(VERSION 3.10)
project(project_name_here
VERSION 0.1
LANGUAGES CXX)
# setting this so compile_commands.json is generated for clangd
set(CMAKE_EXPORT_COMPILE_COMMANDS 1)
# for convenience if they're needed
#find_package(Boost REQUIRED)
#find_package(fmt REQUIRED)
# lib src code
add_subdirectory(src)
# app source code
add_subdirectory(apps)

8
apps/CMakeLists.txt Normal file
View file

@ -0,0 +1,8 @@
# based heavily on https://gitlab.com/CLIUtils/modern-cmake/-/blob/master/examples/extended-project/apps/CMakeLists.txt
add_executable(exe_name exe_entry.cpp)
# example library link
#target_link_libraries(exe_name fmt::fmt)
target_compile_features(exe_name PRIVATE cxx_std_20)

4
apps/exe_entry.cpp Normal file
View file

@ -0,0 +1,4 @@
int main(void){
return 0;
}

20
src/CMakeLists.txt Normal file
View file

@ -0,0 +1,20 @@
# based heavily on https://gitlab.com/CLIUtils/modern-cmake/-/blob/master/examples/extended-project/src/CMakeLists.txt
# example from when I was doing raft cpp impl
#set(HEADER_LIST "${raft_cpp_impl_SOURCE_DIR}/include/raft/lib.hpp")
add_library(example_lib lib.cpp ${HEADER_LIST})
# We need this directory, and users of our library will need it too
target_include_directories(exaple_lib PUBLIC ../include)
#target_link_libraries(example_lib PRIVATE Boost::boost)
target_compile_features(example_lib PUBLIC cxx_std_17)
# IDEs should put the headers in a nice place
source_group(
TREE "${PROJECT_SOURCE_DIR}/include"
PREFIX "Header Files"
FILES ${HEADER_LIST})

0
src/lib.cpp Normal file
View file