aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/test/examples
diff options
context:
space:
mode:
Diffstat (limited to 'test/examples')
-rw-r--r--test/examples/boost/CMakeLists.txt12
-rw-r--r--test/examples/boost/foo.cpp13
-rw-r--r--test/examples/boost/run.ps124
-rw-r--r--test/examples/simple/CMakeLists.txt11
-rw-r--r--test/examples/simple/baz.cpp7
-rw-r--r--test/examples/simple/baz.hpp9
-rw-r--r--test/examples/simple/foo.cpp9
7 files changed, 85 insertions, 0 deletions
diff --git a/test/examples/boost/CMakeLists.txt b/test/examples/boost/CMakeLists.txt
new file mode 100644
index 0000000..0e92e38
--- /dev/null
+++ b/test/examples/boost/CMakeLists.txt
@@ -0,0 +1,12 @@
+cmake_minimum_required(VERSION 3.15)
+
+project(example_boost)
+
+set(CMAKE_CXX_STANDARD 11)
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+
+find_package(Boost REQUIRED COMPONENTS filesystem)
+add_executable(foo foo.cpp)
+target_link_libraries(foo PRIVATE Boost::disable_autolinking Boost::filesystem)
+
+install(TARGETS foo RUNTIME DESTINATION bin)
diff --git a/test/examples/boost/foo.cpp b/test/examples/boost/foo.cpp
new file mode 100644
index 0000000..6219e68
--- /dev/null
+++ b/test/examples/boost/foo.cpp
@@ -0,0 +1,13 @@
+#include <boost/filesystem.hpp>
+
+#include <iostream>
+
+int main(int argc, char* argv[]) {
+ namespace fs = boost::filesystem;
+ std::cout << argv[0] << '\n';
+ for (int i = 1; i < argc; ++i) {
+ std::cout << fs::absolute(boost::filesystem::path{argv[i]}).string()
+ << '\n';
+ }
+ return 0;
+}
diff --git a/test/examples/boost/run.ps1 b/test/examples/boost/run.ps1
new file mode 100644
index 0000000..578911f
--- /dev/null
+++ b/test/examples/boost/run.ps1
@@ -0,0 +1,24 @@
+param(
+ [Parameter(Mandatory=$true)]
+ [string] $FooPath
+)
+
+$foo_path = [System.IO.Path]::GetFullPath($FooPath)
+if ($IsWindows) {
+ $foo_path += '.exe'
+}
+
+$relative = 'test.txt'
+$absolute = Join-Path (Get-Location).Path $relative
+
+$actual = & $foo_path $relative
+echo 'Actual output:'
+echo $actual
+
+$expected = $foo_path,$absolute
+echo 'Expected output:'
+echo $expected
+
+if (Compare-Object $actual $expected -CaseSensitive) {
+ throw 'Unexpected output'
+}
diff --git a/test/examples/simple/CMakeLists.txt b/test/examples/simple/CMakeLists.txt
new file mode 100644
index 0000000..50a588b
--- /dev/null
+++ b/test/examples/simple/CMakeLists.txt
@@ -0,0 +1,11 @@
+cmake_minimum_required(VERSION 3.15)
+
+project(example_simple)
+
+add_library(baz SHARED baz.cpp)
+target_include_directories(baz PUBLIC .)
+
+add_executable(foo foo.cpp)
+target_link_libraries(foo PRIVATE baz)
+
+install(TARGETS foo baz RUNTIME DESTINATION bin LIBRARY DESTINATION lib)
diff --git a/test/examples/simple/baz.cpp b/test/examples/simple/baz.cpp
new file mode 100644
index 0000000..d108ae3
--- /dev/null
+++ b/test/examples/simple/baz.cpp
@@ -0,0 +1,7 @@
+#include "baz.hpp"
+
+#include <iostream>
+
+void baz() {
+ std::cout << "baz\n";
+}
diff --git a/test/examples/simple/baz.hpp b/test/examples/simple/baz.hpp
new file mode 100644
index 0000000..2fc9b2a
--- /dev/null
+++ b/test/examples/simple/baz.hpp
@@ -0,0 +1,9 @@
+#pragma once
+
+#ifdef _MSC_VER
+#define DLLEXPORT __declspec(dllexport)
+#else
+#define DLLEXPORT
+#endif
+
+DLLEXPORT void baz();
diff --git a/test/examples/simple/foo.cpp b/test/examples/simple/foo.cpp
new file mode 100644
index 0000000..7e928e1
--- /dev/null
+++ b/test/examples/simple/foo.cpp
@@ -0,0 +1,9 @@
+#include <baz.hpp>
+
+#include <iostream>
+
+int main() {
+ std::cout << "foo\n";
+ baz();
+ return 0;
+}