diff options
author | Egor Tensin <Egor.Tensin@gmail.com> | 2020-01-07 03:26:04 +0300 |
---|---|---|
committer | Egor Tensin <Egor.Tensin@gmail.com> | 2020-01-07 03:26:04 +0300 |
commit | a2bc2333b474adfde66c6cd67315f227491f157c (patch) | |
tree | ec649e03f10e14f92258e68a1ecbe81febca2af3 /cmake/examples | |
parent | cmake/build: remove the --clean parameter (diff) | |
download | cmake-common-a2bc2333b474adfde66c6cd67315f227491f157c.tar.gz cmake-common-a2bc2333b474adfde66c6cd67315f227491f157c.zip |
cmake: add examples
Diffstat (limited to 'cmake/examples')
-rw-r--r-- | cmake/examples/boost/CMakeLists.txt | 11 | ||||
-rw-r--r-- | cmake/examples/boost/foo.cpp | 8 | ||||
-rw-r--r-- | cmake/examples/dynamic/CMakeLists.txt | 13 | ||||
-rw-r--r-- | cmake/examples/dynamic/bar.cpp | 7 | ||||
-rw-r--r-- | cmake/examples/dynamic/bar.hpp | 6 | ||||
-rw-r--r-- | cmake/examples/dynamic/foo.cpp | 6 | ||||
-rw-r--r-- | cmake/examples/simple/CMakeLists.txt | 9 | ||||
-rw-r--r-- | cmake/examples/simple/foo.cpp | 6 | ||||
-rw-r--r-- | cmake/examples/static/CMakeLists.txt | 13 | ||||
-rw-r--r-- | cmake/examples/static/bar.cpp | 7 | ||||
-rw-r--r-- | cmake/examples/static/bar.hpp | 3 | ||||
-rw-r--r-- | cmake/examples/static/foo.cpp | 6 |
12 files changed, 95 insertions, 0 deletions
diff --git a/cmake/examples/boost/CMakeLists.txt b/cmake/examples/boost/CMakeLists.txt new file mode 100644 index 0000000..87fcc4e --- /dev/null +++ b/cmake/examples/boost/CMakeLists.txt @@ -0,0 +1,11 @@ +cmake_minimum_required(VERSION 3.5) # for Boost::* imported targets + +project(example_boost) + +include(../../common.cmake) + +find_package(Boost REQUIRED COMPONENTS filesystem) +add_executable(foo foo.cpp) +target_link_libraries(foo PRIVATE Boost::filesystem) + +install(TARGETS foo RUNTIME DESTINATION bin) diff --git a/cmake/examples/boost/foo.cpp b/cmake/examples/boost/foo.cpp new file mode 100644 index 0000000..258115b --- /dev/null +++ b/cmake/examples/boost/foo.cpp @@ -0,0 +1,8 @@ +#include <boost/filesystem.hpp> + +#include <iostream> + +int main() { + std::cout << boost::filesystem::path{argv0}.absolute().string(); << "\n"; + return 0; +} diff --git a/cmake/examples/dynamic/CMakeLists.txt b/cmake/examples/dynamic/CMakeLists.txt new file mode 100644 index 0000000..013cde1 --- /dev/null +++ b/cmake/examples/dynamic/CMakeLists.txt @@ -0,0 +1,13 @@ +cmake_minimum_required(VERSION 3.1) + +project(example_dynamic) + +include(../../common.cmake) + +add_library(bar SHARED bar.cpp) +target_include_directories(bar PUBLIC .) + +add_executable(foo foo.cpp) +target_link_libraries(foo PRIVATE bar) + +install(TARGETS foo bar RUNTIME DESTINATION bin LIBRARY DESTINATION lib) diff --git a/cmake/examples/dynamic/bar.cpp b/cmake/examples/dynamic/bar.cpp new file mode 100644 index 0000000..37aa9b5 --- /dev/null +++ b/cmake/examples/dynamic/bar.cpp @@ -0,0 +1,7 @@ +#include "bar.hpp" + +#include <iostream> + +void bar() { + std::cout << "bar\n"; +} diff --git a/cmake/examples/dynamic/bar.hpp b/cmake/examples/dynamic/bar.hpp new file mode 100644 index 0000000..cf838ca --- /dev/null +++ b/cmake/examples/dynamic/bar.hpp @@ -0,0 +1,6 @@ +#pragma once + +#ifdef _MSC_VER +__declspec(dllexport) +#endif +void bar(); diff --git a/cmake/examples/dynamic/foo.cpp b/cmake/examples/dynamic/foo.cpp new file mode 100644 index 0000000..c6355a2 --- /dev/null +++ b/cmake/examples/dynamic/foo.cpp @@ -0,0 +1,6 @@ +#include <bar.hpp> + +int main() { + bar(); + return 0; +} diff --git a/cmake/examples/simple/CMakeLists.txt b/cmake/examples/simple/CMakeLists.txt new file mode 100644 index 0000000..5f42914 --- /dev/null +++ b/cmake/examples/simple/CMakeLists.txt @@ -0,0 +1,9 @@ +cmake_minimum_required(VERSION 3.1) + +project(example_simple) + +include(../../common.cmake) + +add_executable(foo foo.cpp) + +install(TARGETS foo RUNTIME DESTINATION bin) diff --git a/cmake/examples/simple/foo.cpp b/cmake/examples/simple/foo.cpp new file mode 100644 index 0000000..8b6a1d7 --- /dev/null +++ b/cmake/examples/simple/foo.cpp @@ -0,0 +1,6 @@ +#include <iostream> + +int main() { + std::cout << "Hello, world!\n"; + return 0; +} diff --git a/cmake/examples/static/CMakeLists.txt b/cmake/examples/static/CMakeLists.txt new file mode 100644 index 0000000..5b76e22 --- /dev/null +++ b/cmake/examples/static/CMakeLists.txt @@ -0,0 +1,13 @@ +cmake_minimum_required(VERSION 3.1) + +project(example_static) + +include(../../common.cmake) + +add_library(bar bar.cpp) +target_include_directories(bar PUBLIC .) + +add_executable(foo foo.cpp) +target_link_libraries(foo PRIVATE bar) + +install(TARGETS foo bar RUNTIME DESTINATION bin ARCHIVE DESTINATION lib) diff --git a/cmake/examples/static/bar.cpp b/cmake/examples/static/bar.cpp new file mode 100644 index 0000000..37aa9b5 --- /dev/null +++ b/cmake/examples/static/bar.cpp @@ -0,0 +1,7 @@ +#include "bar.hpp" + +#include <iostream> + +void bar() { + std::cout << "bar\n"; +} diff --git a/cmake/examples/static/bar.hpp b/cmake/examples/static/bar.hpp new file mode 100644 index 0000000..a3ea4c1 --- /dev/null +++ b/cmake/examples/static/bar.hpp @@ -0,0 +1,3 @@ +#pragma once + +void bar(); diff --git a/cmake/examples/static/foo.cpp b/cmake/examples/static/foo.cpp new file mode 100644 index 0000000..c6355a2 --- /dev/null +++ b/cmake/examples/static/foo.cpp @@ -0,0 +1,6 @@ +#include <bar.hpp> + +int main() { + bar(); + return 0; +} |