From 90fbf407f3e78048e95714dbfa3ec2a903262951 Mon Sep 17 00:00:00 2001 From: Wunkolo Date: Fri, 27 Jul 2018 18:01:09 -0700 Subject: [PATCH] Add Header-Only cmake project structure --- .gitignore | 1 + CMakeLists.txt | 42 ++++++++++++++++++++++++++++++++++++++++++ test/example.cpp | 2 +- test/test.cpp | 4 ++-- 4 files changed, 46 insertions(+), 3 deletions(-) create mode 100644 CMakeLists.txt diff --git a/.gitignore b/.gitignore index 2b513ca..6ec82c5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ test/** !test/test.cpp !test/example.cpp +build/ diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..11f6a75 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,42 @@ +cmake_minimum_required( VERSION 3.2.2 ) +project( mio ) + +### Standard +set( CMAKE_CXX_STANDARD 11 ) +set( CMAKE_CXX_STANDARD_REQUIRED ON ) +set( CMAKE_CXX_EXTENSIONS ON ) + +### Verbosity +set( CMAKE_COLOR_MAKEFILE ON ) +set( CMAKE_VERBOSE_MAKEFILE ON ) + +# Generate 'compile_commands.json' for clang_complete +set( CMAKE_EXPORT_COMPILE_COMMANDS ON ) + +### Flags +if( MSVC ) + add_compile_options( /W3 ) +elseif( CMAKE_COMPILER_IS_GNUCXX ) + add_compile_options( -Wall ) + add_compile_options( -Wextra ) +endif() + +### Library targets +add_library( mio INTERFACE) +target_include_directories( mio INTERFACE include ) + +### Test targets + +## test +add_executable( + test + test/test.cpp +) +target_link_libraries( test PRIVATE mio ) + +## example +add_executable( + example + test/example.cpp +) +target_link_libraries( example PRIVATE mio ) diff --git a/test/example.cpp b/test/example.cpp index 304e3e6..5385ffc 100644 --- a/test/example.cpp +++ b/test/example.cpp @@ -1,4 +1,4 @@ -#include "../include/mio/mmap.hpp" +#include #include // for std::error_code #include // for std::printf #include diff --git a/test/test.cpp b/test/test.cpp index 4284cd0..01536a6 100644 --- a/test/test.cpp +++ b/test/test.cpp @@ -1,5 +1,5 @@ -#include "../include/mio/mmap.hpp" -#include "../include/mio/shared_mmap.hpp" +#include +#include #include #include