--- CMakeLists.txt.orig 2026-07-18 10:09:58 UTC +++ CMakeLists.txt @@ -127,117 +127,8 @@ function(setup_external_dependencies) # BEECTL_LIBUV_INCLUDE_DIRS, BEECTL_CJSON_INCLUDE_DIRS, # BEECTL_EXTERNAL_TARGETS (list of targets) function(setup_external_dependencies) - message(STATUS "Downloading and building libuv and cJSON from source") - - # Configure cJSON build - set(cjson_cmake_args - -DCMAKE_INSTALL_PREFIX:PATH= - -DBUILD_SHARED_AND_STATIC_LIBS=On - -DBUILD_SHARED_LIBS=Off - -DENABLE_CJSON_TEST=Off - -DENABLE_CJSON_UTILS=On - -DENABLE_TARGET_EXPORT=On - -DCMAKE_POLICY_VERSION_MINIMUM=3.5 - -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} - -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} - -DCMAKE_EXE_LINKER_FLAGS=${CMAKE_EXE_LINKER_FLAGS} - -DCMAKE_SHARED_LINKER_FLAGS=${CMAKE_SHARED_LINKER_FLAGS} - -DCMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME} - -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES} - ) - if(CMAKE_TOOLCHAIN_FILE) - list(APPEND cjson_cmake_args - -DCMAKE_TOOLCHAIN_FILE:FILEPATH=${CMAKE_TOOLCHAIN_FILE} - ) - endif() - if(CMAKE_MSVC_RUNTIME_LIBRARY) - list(APPEND cjson_cmake_args - -DCMAKE_POLICY_DEFAULT_CMP0091=NEW - -DCMAKE_MSVC_RUNTIME_LIBRARY=${CMAKE_MSVC_RUNTIME_LIBRARY} - ) - endif() - if(uppercase_CMAKE_SYSTEM_NAME MATCHES WINDOWS) - list(APPEND cjson_cmake_args -DWIN32=ON) - endif() - - ExternalProject_Add(cjson - GIT_REPOSITORY "https://github.com/DaveGamble/cJSON" - GIT_TAG "v1.7.18" - PREFIX "${EXTERNAL_DIR}/cJSON" - BUILD_IN_SOURCE 1 - TEST_COMMAND "" - INSTALL_COMMAND "" - CMAKE_ARGS ${cjson_cmake_args} - ) - ExternalProject_Get_Property(cjson source_dir) - ExternalProject_Get_Property(cjson binary_dir) - ExternalProject_Get_Property(cjson download_dir) - set(CJSON_SOURCE_DIR "${source_dir}") - set(CJSON_BINARY_DIR "${binary_dir}") - set(CJSON_DOWNLOAD_DIR "${download_dir}") - if(MSVC) - set(CJSON_STATIC_NAME "$/libcjson.lib") - else() - set(CJSON_STATIC_NAME "libcjson.a") - endif() - set(CJSON_STATIC_LIB "${CJSON_BINARY_DIR}/${CJSON_STATIC_NAME}") - - # Configure libuv build - set(LIBUV_TAG v1.51.0) - set(libuv_cmake_args - -DCMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME} - -DCMAKE_SYSTEM_PROCESSOR=${CMAKE_SYSTEM_PROCESSOR} - -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} - -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} - -DCMAKE_EXE_LINKER_FLAGS=${CMAKE_EXE_LINKER_FLAGS} - -DCMAKE_INSTALL_PREFIX= - -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} - -DLIBUV_BUILD_TESTS=OFF - -DLIBUV_BUILD_EXAMPLES=OFF - -DLIBUV_INSTALL=OFF - -DCMAKE_POSITION_INDEPENDENT_CODE=ON - -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES} - ) - if(CMAKE_TOOLCHAIN_FILE) - list(APPEND libuv_cmake_args - -DCMAKE_TOOLCHAIN_FILE:FILEPATH=${CMAKE_TOOLCHAIN_FILE} - ) - endif() - if(CMAKE_MSVC_RUNTIME_LIBRARY) - list(APPEND libuv_cmake_args - -DCMAKE_POLICY_DEFAULT_CMP0091=NEW - -DCMAKE_MSVC_RUNTIME_LIBRARY=${CMAKE_MSVC_RUNTIME_LIBRARY} - ) - endif() - if(uppercase_CMAKE_SYSTEM_NAME MATCHES WINDOWS) - list(APPEND libuv_cmake_args -DWIN32=ON) - endif() - - ExternalProject_Add(libuv_ep - GIT_REPOSITORY "https://github.com/libuv/libuv.git" - GIT_TAG "${LIBUV_TAG}" - PREFIX "${EXTERNAL_DIR}/libuv" - CMAKE_ARGS ${libuv_cmake_args} - INSTALL_COMMAND "" - TEST_COMMAND "" - ) - ExternalProject_Get_Property(libuv_ep source_dir) - ExternalProject_Get_Property(libuv_ep binary_dir) - set(LIBUV_SOURCE_DIR "${source_dir}") - set(LIBUV_BINARY_DIR "${binary_dir}") - if(MSVC) - set(LIBUV_STATIC_NAME "$/libuv.lib") - else() - set(LIBUV_STATIC_NAME "libuv.a") - endif() - set(LIBUV_STATIC_LIB "${LIBUV_BINARY_DIR}/${LIBUV_STATIC_NAME}") - - # Set standardized output variables for parent scope - set(BEECTL_LIBUV_LIBRARIES "${LIBUV_STATIC_LIB}" PARENT_SCOPE) - set(BEECTL_CJSON_LIBRARIES "${CJSON_STATIC_LIB}" PARENT_SCOPE) - set(BEECTL_LIBUV_INCLUDE_DIRS "${LIBUV_SOURCE_DIR}/include" PARENT_SCOPE) - set(BEECTL_CJSON_INCLUDE_DIRS "${CJSON_DOWNLOAD_DIR}" PARENT_SCOPE) - set(BEECTL_EXTERNAL_TARGETS "cjson;libuv_ep" PARENT_SCOPE) +# cJSON and cJSONUtils installed from devel/libcjson +# libuv installed from devel/libuv endfunction() # ============================================================================ @@ -326,7 +217,7 @@ if(BEECTL_EXTERNAL_TARGETS) # Add external project dependencies if any (empty for system deps) if(BEECTL_EXTERNAL_TARGETS) - add_dependencies(beectl ${BEECTL_EXTERNAL_TARGETS}) + #add_dependencies(beectl ${BEECTL_EXTERNAL_TARGETS}) endif() # ExternalProject_Add() creates an independent CMake invocation. @@ -391,9 +282,9 @@ else() # On Linux/UNIX, use absolute system-wide paths if installing to a standard prefix. # Otherwise, use relative paths to support custom installation sandboxes and relocatable TGZ packaging. if(BEECTL_STANDARD_PREFIX) - set(default_chrome_manifest_dir "/etc/opt/chrome/native-messaging-hosts") - set(default_chromium_manifest_dir "/etc/chromium/native-messaging-hosts") - set(default_firefox_manifest_dir "/usr/lib/mozilla/native-messaging-hosts") + set(default_chrome_manifest_dir "etc/chrome/native-messaging-hosts") + set(default_chromium_manifest_dir "etc/chromium/native-messaging-hosts") + set(default_firefox_manifest_dir "lib/mozilla/native-messaging-hosts") set(default_firefox_manifest_dir_alt "/usr/lib64/mozilla/native-messaging-hosts") if(CMAKE_INSTALL_PREFIX STREQUAL "/")