aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/cmake
diff options
context:
space:
mode:
authorEgor Tensin <Egor.Tensin@gmail.com>2020-01-07 03:26:04 +0300
committerEgor Tensin <Egor.Tensin@gmail.com>2020-01-07 03:26:04 +0300
commita2bc2333b474adfde66c6cd67315f227491f157c (patch)
treeec649e03f10e14f92258e68a1ecbe81febca2af3 /cmake
parentcmake/build: remove the --clean parameter (diff)
downloadcmake-common-a2bc2333b474adfde66c6cd67315f227491f157c.tar.gz
cmake-common-a2bc2333b474adfde66c6cd67315f227491f157c.zip
cmake: add examples
Diffstat (limited to '')
-rw-r--r--cmake/examples/boost/CMakeLists.txt11
-rw-r--r--cmake/examples/boost/foo.cpp8
-rw-r--r--cmake/examples/dynamic/CMakeLists.txt13
-rw-r--r--cmake/examples/dynamic/bar.cpp7
-rw-r--r--cmake/examples/dynamic/bar.hpp6
-rw-r--r--cmake/examples/dynamic/foo.cpp6
-rw-r--r--cmake/examples/simple/CMakeLists.txt9
-rw-r--r--cmake/examples/simple/foo.cpp6
-rw-r--r--cmake/examples/static/CMakeLists.txt13
-rw-r--r--cmake/examples/static/bar.cpp7
-rw-r--r--cmake/examples/static/bar.hpp3
-rw-r--r--cmake/examples/static/foo.cpp6
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;
+}