summaryrefslogtreecommitdiffstats
path: root/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt26
1 files changed, 26 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..73ab94d
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,26 @@
+cmake_minimum_required(VERSION 3.16)
+project(Bobink LANGUAGES CXX)
+
+set(CMAKE_CXX_STANDARD 17)
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
+
+# Build external dependencies (open62541, qtopcua) if not already built
+include(cmake/BuildDeps.cmake)
+
+# Local QtOpcUa must come before system Qt so find_package picks up our
+# build instead of any system-installed QtOpcUa.
+list(PREPEND CMAKE_PREFIX_PATH "${QTOPCUA_BUILD_DIR}")
+list(PREPEND CMAKE_PREFIX_PATH "${OPEN62541_INSTALL_DIR}")
+
+find_package(Qt6 6.10.2 REQUIRED COMPONENTS Core Qml Quick OpcUa)
+qt_standard_project_setup(REQUIRES 6.10.2)
+
+# Ensure the local QtOpcUa and open62541 libs are findable at runtime
+# (needed because the Qt plugin loader dlopen's the open62541 backend).
+set(CMAKE_BUILD_RPATH
+ "${QTOPCUA_BUILD_DIR}/lib"
+ "${OPEN62541_INSTALL_DIR}/lib")
+
+add_subdirectory(src)
+add_subdirectory(demo)