initial commit
This commit is contained in:
commit
0f02486d79
6 changed files with 69 additions and 0 deletions
14
.gitignore
vendored
Normal file
14
.gitignore
vendored
Normal 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
23
CMakeLists.txt
Normal 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
8
apps/CMakeLists.txt
Normal 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
4
apps/exe_entry.cpp
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
int main(void){
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
20
src/CMakeLists.txt
Normal file
20
src/CMakeLists.txt
Normal 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
0
src/lib.cpp
Normal file
Loading…
Reference in a new issue