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..72ef501 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,36 @@ +cmake_minimum_required( VERSION 3.2.2 ) +project( mio ) + +### Standard +set( CMAKE_CXX_STANDARD 11 ) + +# Generate 'compile_commands.json' for clang_complete +set( CMAKE_EXPORT_COMPILE_COMMANDS ON ) + +### Flags/Options +option( BUILD_TESTS "Enable the building of mio unit tests" OFF ) + +### Library targets +add_library( mio INTERFACE) +target_include_directories( mio INTERFACE include ) +install( + DIRECTORY include/ + DESTINATION include +) + +### Test targets +if( BUILD_TESTS ) + ## 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 ) +endif() diff --git a/README.md b/README.md index 8499935..cd955f5 100644 --- a/README.md +++ b/README.md @@ -140,3 +140,17 @@ Though generally not needed, since mio maps users requested offsets to page boun ### Installation mio is a header-only library, so just copy the contents in `mio/include` into your system wide include path, such as `/usr/include`, or into your project's lib folder. + +## CMake +A `CMakeLists.txt` is provided to allow easy git submodule usage or installation. + +To use as a submodule, clone mio within your project's dependencies/externals folder and add: +``` +add_subdirectory( dependencies_folder/mio ) +target_link_libraries( MyCoolProject mio ) +``` +to your project's `CMakeLists.txt` to add mio into `MyCoolProject`'s include-space. + +To install, do an out-of-source build(such as making a `build` folder and running `cmake ..` inside of it) and then run `sudo make install` to copy relevant include files to + +The optional `BUILD_TESTS` option can be used to build unit tests(off by default) by instead using `cmake -DBUILD_TESTS=ON ..` 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