aboutsummaryrefslogtreecommitdiffstats
path: root/cmake
diff options
context:
space:
mode:
authorThomas Vanbesien <tvanbesi@proton.me>2026-02-24 17:41:35 +0100
committerThomas Vanbesien <tvanbesi@proton.me>2026-02-24 18:18:31 +0100
commit3e8111aaee070dc9b5d51cab3fd44ff88841f63e (patch)
tree887ca52741c8f9b62a950f2670ddfb4bee348c5d /cmake
parentc47f6a35ea0cb14936bb0d6470d6543965a6b5e2 (diff)
downloadBobinkQtOpcUa-3e8111aaee070dc9b5d51cab3fd44ff88841f63e.tar.gz
BobinkQtOpcUa-3e8111aaee070dc9b5d51cab3fd44ff88841f63e.zip
Make build system usable as a git submodule
Replace CMAKE_SOURCE_DIR/CMAKE_BINARY_DIR with PROJECT_SOURCE_DIR/ PROJECT_BINARY_DIR so paths resolve correctly from add_subdirectory(). Guard global settings (CMAKE_CXX_STANDARD, CMAKE_BUILD_RPATH, qt_standard_project_setup, demo) behind PROJECT_IS_TOP_LEVEL. Export OPEN62541_INSTALL_DIR and QTOPCUA_INSTALL_DIR as CACHE INTERNAL so parent projects can set up RPATH and plugin paths.
Diffstat (limited to 'cmake')
-rw-r--r--cmake/BuildDeps.cmake16
1 files changed, 9 insertions, 7 deletions
diff --git a/cmake/BuildDeps.cmake b/cmake/BuildDeps.cmake
index 8f819f3..83791a2 100644
--- a/cmake/BuildDeps.cmake
+++ b/cmake/BuildDeps.cmake
@@ -8,12 +8,14 @@
# skipped. Delete the file to rebuild.
# ======================================
-set(OPEN62541_SOURCE_DIR "${CMAKE_SOURCE_DIR}/deps/open62541")
-set(OPEN62541_BUILD_DIR "${CMAKE_BINARY_DIR}/deps/open62541-build")
-set(OPEN62541_INSTALL_DIR "${CMAKE_BINARY_DIR}/deps/open62541-install")
-set(QTOPCUA_SOURCE_DIR "${CMAKE_SOURCE_DIR}/deps/qtopcua")
-set(QTOPCUA_BUILD_DIR "${CMAKE_BINARY_DIR}/deps/qtopcua-build")
-set(QTOPCUA_INSTALL_DIR "${CMAKE_BINARY_DIR}/deps/qtopcua-install")
+set(OPEN62541_SOURCE_DIR "${PROJECT_SOURCE_DIR}/deps/open62541")
+set(OPEN62541_BUILD_DIR "${PROJECT_BINARY_DIR}/deps/open62541-build")
+set(OPEN62541_INSTALL_DIR "${PROJECT_BINARY_DIR}/deps/open62541-install"
+ CACHE INTERNAL "open62541 install prefix")
+set(QTOPCUA_SOURCE_DIR "${PROJECT_SOURCE_DIR}/deps/qtopcua")
+set(QTOPCUA_BUILD_DIR "${PROJECT_BINARY_DIR}/deps/qtopcua-build")
+set(QTOPCUA_INSTALL_DIR "${PROJECT_BINARY_DIR}/deps/qtopcua-install"
+ CACHE INTERNAL "QtOpcUa install prefix")
# Verify submodules are initialized
if(NOT EXISTS "${OPEN62541_SOURCE_DIR}/CMakeLists.txt")
@@ -150,7 +152,7 @@ endif()
if(WIN32)
# On Windows DLLs must be next to the .exe (no RPATH). Copy them to bin/.
- file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/bin")
+ file(MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/bin")
file(GLOB _dep_dlls "${OPEN62541_INSTALL_DIR}/bin/*.dll"
"${QTOPCUA_INSTALL_DIR}/bin/*.dll")
foreach(_dll ${_dep_dlls})