From 3e8111aaee070dc9b5d51cab3fd44ff88841f63e Mon Sep 17 00:00:00 2001 From: Thomas Vanbesien Date: Tue, 24 Feb 2026 17:41:35 +0100 Subject: 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. --- cmake/BuildDeps.cmake | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'cmake') 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}) -- cgit v1.2.3