Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
0ef0e75
[civetweb] download instead of bundle and define proper CMake target,…
ferdymercury Apr 17, 2026
6c4416b
[ci] explicit enable in alma10clang-ninja even if it was getting on i…
ferdymercury Apr 17, 2026
868f2e4
todo list
ferdymercury Apr 17, 2026
f4946d2
fixes for SSL
ferdymercury Apr 20, 2026
6ee0bd1
fixes for SSL
ferdymercury Apr 20, 2026
bc1b463
cleanup
ferdymercury Apr 20, 2026
7e597b2
simplify
ferdymercury Apr 20, 2026
46c9702
try with installDir
ferdymercury Apr 20, 2026
a766751
fix asan
ferdymercury Apr 20, 2026
94b6ca5
fix default
ferdymercury Apr 20, 2026
8caf98c
mention deprecation
ferdymercury Apr 20, 2026
9b71c7c
try fix path
ferdymercury Apr 20, 2026
c740967
disable SSL dynamic loading
ferdymercury Apr 20, 2026
7ca3952
Update CMakeLists.txt
ferdymercury Apr 20, 2026
f3bcf6e
fix openssl include
ferdymercury Apr 21, 2026
12b683e
fix typo
ferdymercury Apr 21, 2026
3a9921b
fix builtin ssl name
ferdymercury Apr 21, 2026
65e312a
fix builtin name
ferdymercury Apr 21, 2026
461a8e0
rename builtin name
ferdymercury Apr 21, 2026
536b91f
try fix openssl mac include not found
ferdymercury Apr 21, 2026
2ee55c6
Update CMakeLists.txt
ferdymercury Apr 21, 2026
222664a
Update cmake/modules/SearchInstalledSoftware.cmake
ferdymercury Apr 21, 2026
177f76d
Apply suggestion from @ferdymercury
ferdymercury Apr 22, 2026
014ebc4
print some debug info
ferdymercury Apr 22, 2026
ed92de5
try more debugging
ferdymercury Apr 22, 2026
1551b64
another attempt
ferdymercury Apr 22, 2026
a724119
avoid cache vars
ferdymercury Apr 22, 2026
0473905
fix typo
ferdymercury Apr 22, 2026
c0c058d
more
ferdymercury Apr 22, 2026
89e98d8
verbose
ferdymercury Apr 22, 2026
31ca26c
vninja
ferdymercury Apr 22, 2026
ae7a543
crypto
ferdymercury Apr 22, 2026
ce08a24
more mssges
ferdymercury Apr 22, 2026
a652ac3
fix
ferdymercury Apr 22, 2026
5699658
Update CMakeLists.txt
ferdymercury Apr 22, 2026
6a750b3
Update CMakeLists.txt
ferdymercury Apr 23, 2026
c464716
Update CMakeLists.txt
ferdymercury Apr 23, 2026
1ad58d2
Update CMakeLists.txt
ferdymercury Apr 23, 2026
12734e6
print headers
ferdymercury Apr 23, 2026
e48cc3d
Update 0001-message-libs.patch
ferdymercury Apr 23, 2026
f52dcf9
Update CMakeLists.txt
ferdymercury Apr 23, 2026
8dd4855
undo
ferdymercury Apr 23, 2026
da2181e
[net] document civetweb builtin mechanism and version link
ferdymercury Apr 27, 2026
81a8030
[civetweb] add patches after 1.16 that solve several CVE
ferdymercury Apr 27, 2026
2a312ed
[cmake] force-enable builtin_civetweb since 1.16 version misses sever…
ferdymercury Apr 27, 2026
f2fe2af
fix patches
ferdymercury Apr 27, 2026
7c2e6c2
use git not patches
ferdymercury Apr 27, 2026
8a00d79
add patches
ferdymercury Apr 27, 2026
52c5e7a
fix path and comments
ferdymercury Apr 27, 2026
a51da42
commenting
ferdymercury Apr 27, 2026
8c0772b
fix indent warning
ferdymercury Apr 27, 2026
ef8bc0b
swap order, undefine update
ferdymercury Apr 27, 2026
0518eca
[ssl] missed one parent scope
ferdymercury Apr 27, 2026
8eb1f24
Update CMakeLists.txt
ferdymercury Apr 27, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
CMAKE_C_COMPILER=clang
CMAKE_CXX_COMPILER=clang++
CMAKE_GENERATOR=Ninja
builtin_civetweb=ON
builtin_freetype=ON
builtin_gif=ON
builtin_gl2ps=ON
Expand Down
45 changes: 45 additions & 0 deletions builtins/civetweb/1385.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
From 79077517e3d4ee648f47af12215dc1cf10e230a5 Mon Sep 17 00:00:00 2001
From: "V.Shkriabets" <vshcryabets@gmail.com>
Date: Wed, 22 Apr 2026 16:14:18 +0300
Subject: [PATCH] Fixed old variable names

---
src/civetweb.c | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/src/civetweb.c b/src/civetweb.c
index f6a60e214..006fa7a2b 100644
--- a/src/civetweb.c
+++ b/src/civetweb.c
@@ -19201,15 +19201,15 @@ get_request(struct mg_connection *conn, char *ebuf, size_t ebuf_len, int *err)
conn->accept_gzip = 1;
}
#endif
- h_chunk = get_header(conn->request_info.http_headers,
+ h_chunk = get_header(conn->request_info.http_headers,
conn->request_info.num_headers,
"Transfer-Encoding");
- h_len = get_header(conn->request_info.http_headers,
+ h_len = get_header(conn->request_info.http_headers,
conn->request_info.num_headers,
"Content-Length");
- if (h_chunk != NULL)
- && mg_strcasecmp(cl, "identity")) {
- if ((0!=mg_strcasecmp(cl, "chunked")) || (h_len!=NULL)) {
+ if ((h_chunk != NULL)
+ && mg_strcasecmp(h_chunk, "identity")) {
+ if ((0!=mg_strcasecmp(h_chunk, "chunked")) || (h_len!=NULL)) {
mg_snprintf(conn,
NULL, /* No truncation check for ebuf */
ebuf,
@@ -19224,8 +19224,8 @@ get_request(struct mg_connection *conn, char *ebuf, size_t ebuf_len, int *err)
} else if (h_len != NULL) {
/* Request has content length set */
char *endptr = NULL;
- conn->content_len = strtoll(cl, &endptr, 10);
- if ((endptr == cl) || (conn->content_len < 0)) {
+ conn->content_len = strtoll(h_len, &endptr, 10);
+ if ((endptr == h_len) || (conn->content_len < 0)) {
mg_snprintf(conn,
NULL, /* No truncation check for ebuf */
ebuf,
26 changes: 26 additions & 0 deletions builtins/civetweb/1389.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
From b8f93aafd3229fff5acea786b74b573202b169f3 Mon Sep 17 00:00:00 2001
From: ferdymercury <ferdymercury@users.noreply.github.com>
Date: Mon, 27 Apr 2026 12:13:45 +0200
Subject: [PATCH] Only include deprecated header when really necessary

deprecated ENGINE API is only used #if !defined(OPENSSL_API_1_1) && !defined(OPENSSL_API_3_0)
---
src/civetweb.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/civetweb.c b/src/civetweb.c
index f6a60e214..ecbd1a8a4 100644
--- a/src/civetweb.c
+++ b/src/civetweb.c
@@ -1797,7 +1797,10 @@ typedef struct SSL_CTX SSL_CTX;
#include <openssl/conf.h>
#include <openssl/crypto.h>
#include <openssl/dh.h>
-#include <openssl/engine.h>
+
+#if defined(OPENSSL_API_1_0)
+#include <openssl/engine.h> // deprecated later on
+#endif
#include <openssl/err.h>
#include <openssl/opensslv.h>
#include <openssl/pem.h>
147 changes: 147 additions & 0 deletions builtins/civetweb/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,147 @@
# Copyright (C) 1995-2019, Rene Brun and Fons Rademakers.
# All rights reserved.
#
# For the licensing terms see $ROOTSYS/LICENSE.
# For the list of contributors see $ROOTSYS/README/CREDITS.

# **PLEASE UPDATE ALSO THE FOLLOWING LINE WHEN UPDATING THE VERSION**
# 10 Apr 2023, https://github.com/civetweb/civetweb/releases/tag/v1.16
set(ROOT_CIVETWEB_VERSION 1.16) # with some patches, so almost 1.17
# set(ROOT_CIVETWEB_HASH "f0e471c1bf4e7804a6cfb41ea9d13e7d623b2bcc7bc1e2a4dd54951a24d60285")
set(ROOT_CIVETWEB_PREFIX ${CMAKE_BINARY_DIR}/builtins/CIVETWEB-prefix)
set(ROOT_CIVETWEB_LIBRARY ${ROOT_CIVETWEB_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}civetweb${CMAKE_STATIC_LIBRARY_SUFFIX})

if (NOT DEFINED GIT_EXECUTABLE)
set(GIT_EXECUTABLE "git")
endif()

include(ExternalProject)

# Clear cache variables set by find_package(CIVETWEB)
# to ensure that we use the builtin version
foreach(var CIVETWEB_LIBRARIES CIVETWEB_LIBRARY CIVETWEB_LIBRARY_DEBUG CIVETWEB_LIBRARY_RELEASE CIVETWEB_FOUND CIVETWEB_VERSION CIVETWEB_INCLUDE_DIR CIVETWEB_LIBRARY CIVETWEB_LIBRARIES)
unset(${var})
unset(${var} CACHE)
endforeach()

if(WIN32 AND NOT CMAKE_GENERATOR MATCHES Ninja)
if(winrtdebug)
set(ROOT_CIVETWEB_BUILD_COMMAND_FLAGS "--config Debug")
else()
set(ROOT_CIVETWEB_BUILD_COMMAND_FLAGS "--config $<IF:$<CONFIG:Debug,RelWithDebInfo>,RelWithDebInfo,Release>")
endif()
endif()

if(ssl)
if(OPENSSL_VERSION)
string(REPLACE "." ";" lst ${OPENSSL_VERSION})
list(GET lst 0 ssl_major)
list(GET lst 1 ssl_minor)
else()
MESSAGE(SEND_ERROR "No openSSL version defined.")
endif()

if((${ssl_major} EQUAL "1") AND (${ssl_minor} EQUAL "1"))
MESSAGE(STATUS "Use SSL API VERSION 1.1 for civetweb")
set(ROOT_SSL_API "-DCIVETWEB_SSL_OPENSSL_API_1_1=ON" "-DCIVETWEB_SSL_OPENSSL_API_3_0=OFF" "-DCIVETWEB_SSL_OPENSSL_API_1_0=OFF" "-DCIVETWEB_ENABLE_SSL=ON")
elseif((${ssl_major} EQUAL "3"))
MESSAGE(STATUS "Use SSL API VERSION 3.${ssl_minor} for civetweb")
set(ROOT_SSL_API "-DCIVETWEB_SSL_OPENSSL_API_3_0=ON" "-DCIVETWEB_SSL_OPENSSL_API_1_1=OFF" "-DCIVETWEB_SSL_OPENSSL_API_1_0=OFF" "-DCIVETWEB_ENABLE_SSL=ON")
elseif((${ssl_major} EQUAL "1") AND (${ssl_minor} EQUAL "0"))
MESSAGE(STATUS "Use SSL API VERSION 1.0 for civetweb")
set(ROOT_SSL_API "-DCIVETWEB_SSL_OPENSSL_API_1_0=ON" "-DCIVETWEB_SSL_OPENSSL_API_3_0=OFF" "-DCIVETWEB_SSL_OPENSSL_API_1_1=OFF" "-DCIVETWEB_ENABLE_SSL=ON")
else()
MESSAGE(WARNING "Not able to recognize SSL version ${OPENSSL_VERSION}, disable SSL")
set(ROOT_SSL_API "-DCIVETWEB_ENABLE_SSL=OFF")
endif()
else()
set(ROOT_SSL_API "-DCIVETWEB_ENABLE_SSL=OFF")
endif()
if(NOT MSVC)
set(ROOT_C_FLAGS "${CMAKE_C_FLAGS} -DUSE_X_DOM_SOCKET")
else()
set(ROOT_C_FLAGS ${CMAKE_C_FLAGS})
endif()
if (CMAKE_OSX_SYSROOT)
set(ROOT_C_FLAGS "${ROOT_C_FLAGS} -isysroot ${CMAKE_OSX_SYSROOT}")
endif()

ExternalProject_Add(BUILTIN_CIVETWEB
PREFIX ${ROOT_CIVETWEB_PREFIX}
# URL ${lcgpackages}/civetweb-${ROOT_CIVETWEB_VERSION}.tar.gz
# URL https://github.com/civetweb/civetweb/archive/refs/tags/v${ROOT_CIVETWEB_VERSION}.tar.gz # TODO move to LCG
# URL_HASH SHA256=${ROOT_CIVETWEB_HASH}
# TODO: once 1.17 released, review _EXTERNAL_CIVETWEB workaround and bump SearchInstalledSoftware find_package to 1.17 plus remove builtin_ force-enable workaround with fail-on-missing
# and potentially install libcivetweb-dev in root-ci-images and change RootBuildOptions default builtin_civetweb to OFF, if random crashes seen by linev are gone
GIT_REPOSITORY https://github.com/civetweb/civetweb.git
GIT_TAG 588860e30721bf5453b0440c390865a8e85dcae5 # v1.17.0 not yet released, v1.16.0 has missing CVE fixes
PATCH_COMMAND ${GIT_EXECUTABLE} apply ${CMAKE_CURRENT_SOURCE_DIR}/1385.patch ${CMAKE_CURRENT_SOURCE_DIR}/1389.patch # https://github.com/civetweb/civetweb/pull/1385 and https://github.com/civetweb/civetweb/pull/1389
UPDATE_COMMAND ""
LOG_DOWNLOAD TRUE
LOG_CONFIGURE FALSE
LOG_BUILD FALSE
LOG_PATCH FALSE
LOG_INSTALL FALSE
LOG_OUTPUT_ON_FAILURE FALSE
USES_TERMINAL_DOWNLOAD true
USES_TERMINAL_UPDATE true
USES_TERMINAL_BUILD true
USES_TERMINAL_INSTALL true
USES_TERMINAL_TEST true
INSTALL_DIR ${ROOT_CIVETWEB_PREFIX}
CMAKE_ARGS -G ${CMAKE_GENERATOR}
-DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
-DCMAKE_INSTALL_LIBDIR:PATH=<INSTALL_DIR>/lib
-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
-DCMAKE_C_FLAGS=${ROOT_C_FLAGS}
-DCMAKE_CXX_FLAGS=${ROOT_EXTERNAL_CXX_FLAGS}
-DBUILD_SHARED_LIBS:BOOL=FALSE
-DBUILD_TESTING=FALSE
-DCIVETWEB_ENABLE_ASAN=OFF # If set to ON, you need to set below link_library interface to UBSAN libs
-DCIVETWEB_ENABLE_SSL_DYNAMIC_LOADING=OFF # If set to ON, you need to set below link_library interface to CMAKE_DL_LIBS
-DCIVETWEB_BUILD_TESTING=FALSE
-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=TRUE
-DCMAKE_POLICY_VERSION_MINIMUM=3.5
-DCIVETWEB_ENABLE_WEBSOCKETS=ON
-DOPENSSL_INCLUDE_DIR=${OPENSSL_INCLUDE_DIR}
-DOPENSSL_CRYPTO_LIBRARY=${OPENSSL_CRYPTO_LIBRARY}
-DOPENSSL_SSL_LIBRARY=${OPENSSL_SSL_LIBRARY}
-DOPENSSL_LIBRARIES=${OPENSSL_LIBRARIES}
#-DCMAKE_PREFIX_PATH:STRING=${OPENSSL_PREFIX}
-DOPENSSL_ROOT_DIR=${OPENSSL_ROOT_DIR}
#-DOPENSSL_FOUND=TRUE
#-DOpenSSL_FOUND=TRUE
#-DOpenSSL_ROOT=${OPENSSL_ROOT} #For CMake <3.27
#-DCMAKE_OSX_SYSROOT=${CMAKE_OSX_SYSROOT}
#-DCMAKE_OSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET}
# -DCMAKE_INSTALL_RPATH:STRING=${rpath_origin}
${ROOT_SSL_API}
BUILD_COMMAND ${CMAKE_COMMAND} --build . ${ROOT_CIVETWEB_BUILD_COMMAND_FLAGS}
INSTALL_COMMAND ${CMAKE_COMMAND} --build . ${ROOT_CIVETWEB_BUILD_COMMAND_FLAGS} --target install
BUILD_BYPRODUCTS
${ROOT_CIVETWEB_LIBRARY}
TIMEOUT 600
)

file(MAKE_DIRECTORY ${ROOT_CIVETWEB_PREFIX}/include)
add_library(civetweb::civetweb IMPORTED STATIC GLOBAL)
add_dependencies(civetweb::civetweb BUILTIN_CIVETWEB)
if(builtin_openssl)
add_dependencies(BUILTIN_CIVETWEB BUILTIN_OPENSSL)
endif()
set_target_properties(civetweb::civetweb PROPERTIES
IMPORTED_LOCATION ${ROOT_CIVETWEB_LIBRARY}
INTERFACE_INCLUDE_DIRECTORIES ${ROOT_CIVETWEB_PREFIX}/include)
target_compile_definitions(civetweb::civetweb INTERFACE CIVETWEB_LIBRARY_STATIC) # needed for Win32 since public flag is not correctly propagated to parent scope (BUILD_SHARED_LIBS works fine for building but when installing, flag info is lost)
if (ssl)
target_link_libraries(civetweb::civetweb INTERFACE OpenSSL::SSL)
endif()

# Set the canonical output of find_package according to
# https://cmake.org/cmake/help/latest/manual/cmake-developer.7.html#standard-variable-names
set(civetweb_INCLUDE_DIRS ${ROOT_CIVETWEB_PREFIX}/include PARENT_SCOPE)
set(civetweb_LIBRARIES ${ROOT_CIVETWEB_LIBRARY} PARENT_SCOPE)
set(civetweb_FOUND TRUE PARENT_SCOPE)
set(civetweb_VERSION ${ROOT_CIVETWEB_VERSION} PARENT_SCOPE)
33 changes: 20 additions & 13 deletions builtins/openssl/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ else()
set(OPENSSL_CONFIG_CMD ./config)
endif()

ExternalProject_Add(OPENSSL
ExternalProject_Add(BUILTIN_OPENSSL
URL ${OPENSSL_URL} URL_HASH ${OPENSSL_URLHASH}
INSTALL_DIR ${OPENSSL_PREFIX}
CONFIGURE_COMMAND ${OPENSSL_CONFIG_CMD} no-shared --prefix=<INSTALL_DIR> --openssldir=<INSTALL_DIR>
Expand All @@ -48,28 +48,24 @@ ExternalProject_Add(OPENSSL
BUILD_BYPRODUCTS ${OPENSSL_CRYPTO_LIBRARY} ${OPENSSL_SSL_LIBRARY}
TIMEOUT 600)

set(OPENSSL_FOUND TRUE CACHE BOOL "" FORCE)
set(OPENSSL_VERSION ${OPENSSL_VERSION} CACHE INTERNAL "" FORCE)
set(OPENSSL_VERSION_STRING "${OPENSSL_VERSION}" CACHE INTERNAL "" FORCE)
set(OPENSSL_INCLUDE_DIR ${OPENSSL_PREFIX}/include CACHE INTERNAL "" FORCE)
set(OPENSSL_INCLUDE_DIRS ${OPENSSL_PREFIX}/include CACHE INTERNAL "" FORCE)
set(OPENSSL_CRYPTO_LIBRARY ${OPENSSL_CRYPTO_LIBRARY} CACHE INTERNAL "" FORCE)
set(OPENSSL_SSL_LIBRARY ${OPENSSL_SSL_LIBRARY} CACHE INTERNAL "" FORCE)
set(OPENSSL_LIBRARIES ${OPENSSL_SSL_LIBRARY} ${OPENSSL_CRYPTO_LIBRARY} ${CMAKE_DL_LIBS} CACHE INTERNAL "" FORCE)
set(OPENSSL_ROOT ${OPENSSL_PREFIX} CACHE INTERNAL "Location of the builtin OpenSSL installation" FORCE)
set(OPENSSL_FOUND TRUE)
set(OPENSSL_INCLUDE_DIR ${OPENSSL_PREFIX}/include)
set(OPENSSL_INCLUDE_DIRS ${OPENSSL_PREFIX}/include)
set(OPENSSL_LIBRARIES ${OPENSSL_SSL_LIBRARY} ${OPENSSL_CRYPTO_LIBRARY} ${CMAKE_DL_LIBS})
set(OPENSSL_ROOT ${OPENSSL_PREFIX})

# Dependent libraries might check for the existence of the include directories
file(MAKE_DIRECTORY ${OPENSSL_INCLUDE_DIR})

add_library(builtin_crypto INTERFACE)
target_include_directories(builtin_crypto INTERFACE $<BUILD_INTERFACE:${OPENSSL_INCLUDE_DIR}>)
target_link_libraries(builtin_crypto INTERFACE $<BUILD_INTERFACE:${OPENSSL_CRYPTO_LIBRARY}>)
add_dependencies(builtin_crypto OPENSSL)
add_dependencies(builtin_crypto BUILTIN_OPENSSL)

add_library(builtin_ssl INTERFACE)
target_include_directories(builtin_ssl INTERFACE $<BUILD_INTERFACE:${OPENSSL_INCLUDE_DIR}>)
target_link_libraries(builtin_ssl INTERFACE $<BUILD_INTERFACE:${OPENSSL_LIBRARIES}>)
add_dependencies(builtin_ssl OPENSSL)
add_dependencies(builtin_ssl BUILTIN_OPENSSL)

add_library(OpenSSL::Crypto ALIAS builtin_crypto)
add_library(OpenSSL::SSL ALIAS builtin_ssl)
Expand All @@ -86,4 +82,15 @@ find_package_handle_standard_args(OpenSSL
OPENSSL_VERSION_STRING
)

set_property(GLOBAL APPEND PROPERTY ROOT_BUILTIN_TARGETS OPENSSL)
set_property(GLOBAL APPEND PROPERTY ROOT_BUILTIN_TARGETS BUILTIN_OPENSSL)

set(OPENSSL_FOUND TRUE)
set(OPENSSL_VERSION ${OPENSSL_VERSION} PARENT_SCOPE) # CMake 4.2 changes to small case
set(OPENSSL_VERSION_STRING ${OPENSSL_VERSION_STRING} PARENT_SCOPE)
set(OPENSSL_INCLUDE_DIR ${OPENSSL_INCLUDE_DIR} PARENT_SCOPE)
set(OPENSSL_INCLUDE_DIRS ${OPENSSL_INCLUDE_DIRS} PARENT_SCOPE)
set(OPENSSL_CRYPTO_LIBRARY ${OPENSSL_CRYPTO_LIBRARY} PARENT_SCOPE)
set(OPENSSL_SSL_LIBRARY ${OPENSSL_SSL_LIBRARY} PARENT_SCOPE)
set(OPENSSL_LIBRARIES ${OPENSSL_LIBRARIES} PARENT_SCOPE)
set(OPENSSL_ROOT ${OPENSSL_ROOT} PARENT_SCOPE)
set(OPENSSL_ROOT_DIR ${OPENSSL_ROOT} PARENT_SCOPE)
15 changes: 10 additions & 5 deletions builtins/xrootd/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@ set(XROOTD_PREFIX ${CMAKE_BINARY_DIR}/XROOTD-prefix)

message(STATUS "Downloading and building XROOTD version ${XROOTD_VERSION}")

set(XROOTD_INCLUDE_DIRS ${XROOTD_PREFIX}/include/xrootd CACHE INTERNAL "" FORCE)
set(XROOTD_INCLUDE_DIRS ${XROOTD_PREFIX}/include/xrootd)
set(XRDCL_NAME ${CMAKE_SHARED_LIBRARY_PREFIX}XrdCl${CMAKE_SHARED_LIBRARY_SUFFIX})
set(XRDUTILS_NAME ${CMAKE_SHARED_LIBRARY_PREFIX}XrdUtils${CMAKE_SHARED_LIBRARY_SUFFIX})
set(XROOTD_CLIENT_LIBRARIES ${XROOTD_PREFIX}/lib/${XRDCL_NAME} CACHE INTERNAL "" FORCE)
set(XROOTD_UTILS_LIBRARIES ${XROOTD_PREFIX}/lib/${XRDUTILS_NAME} CACHE INTERNAL "" FORCE)
set(XROOTD_LIBRARIES ${XROOTD_PREFIX}/lib/${XRDCL_NAME} CACHE INTERNAL "" FORCE)
set(XROOTD_CLIENT_LIBRARIES ${XROOTD_PREFIX}/lib/${XRDCL_NAME})
set(XROOTD_UTILS_LIBRARIES ${XROOTD_PREFIX}/lib/${XRDUTILS_NAME})
set(XROOTD_LIBRARIES ${XROOTD_PREFIX}/lib/${XRDCL_NAME})

if(APPLE)
set(rpath_origin "@loader_path")
Expand Down Expand Up @@ -57,11 +57,16 @@ ExternalProject_Add(
file(MAKE_DIRECTORY ${XROOTD_PREFIX}/include/xrootd)

if(builtin_openssl)
add_dependencies(BUILTIN_XROOTD OPENSSL)
add_dependencies(BUILTIN_XROOTD BUILTIN_OPENSSL)
endif()

install(DIRECTORY ${XROOTD_PREFIX}/lib/ DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT libraries FILES_MATCHING PATTERN "libXrd*")
install(DIRECTORY ${XROOTD_PREFIX}/include/xrootd/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/xrootd COMPONENT headers)
set(CMAKE_BUILD_RPATH ${CMAKE_BUILD_RPATH} ${XROOTD_PREFIX}/lib PARENT_SCOPE)

set_property(GLOBAL APPEND PROPERTY ROOT_BUILTIN_TARGETS BUILTIN_XROOTD)

set(XROOTD_INCLUDE_DIRS ${XROOTD_INCLUDE_DIRS} PARENT_SCOPE)
set(XROOTD_CLIENT_LIBRARIES ${XROOTD_CLIENT_LIBRARIES} PARENT_SCOPE)
set(XROOTD_UTILS_LIBRARIES ${XROOTD_UTILS_LIBRARIES} PARENT_SCOPE)
set(XROOTD_LIBRARIES ${XROOTD_LIBRARIES} PARENT_SCOPE)
7 changes: 7 additions & 0 deletions cmake/modules/FindFastCGI.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,11 @@ if(FASTCGI_FOUND)
if(NOT FASTCGI_LIBRARIES)
set(FASTCGI_LIBRARIES ${FASTCGI_LIBRARY})
endif()

if(NOT TARGET FastCGI::FastCGI)
add_library(FastCGI::FastCGI UNKNOWN IMPORTED)
set_target_properties(FastCGI::FastCGI PROPERTIES
IMPORTED_LOCATION "${FASTCGI_LIBRARY}"
INTERFACE_INCLUDE_DIRECTORIES "${FASTCGI_INCLUDE_DIR}")
endif()
endif()
2 changes: 1 addition & 1 deletion cmake/modules/RootBuildOptions.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ ROOT_BUILD_OPTION(builtin_cfitsio OFF "Build CFITSIO internally (requires networ
ROOT_BUILD_OPTION(builtin_clang ON "Build bundled copy of Clang")
ROOT_BUILD_OPTION(builtin_cling ON "Build bundled copy of Cling. Only build with an external cling if you know what you are doing: associating ROOT commits with cling commits is tricky.")
MARK_AS_ADVANCED(builtin_cling)
ROOT_BUILD_OPTION(builtin_civetweb ON "Use civetweb distributed with ROOT")
ROOT_BUILD_OPTION(builtin_civetweb ON "Build civetweb internally (requires network). Recommended, since sytem-wide versions older than 1.17 might be unstable.")
ROOT_BUILD_OPTION(builtin_fftw3 OFF "Build FFTW3 internally (requires network) [GPL]")
ROOT_BUILD_OPTION(builtin_freetype OFF "Build bundled copy of freetype")
ROOT_BUILD_OPTION(builtin_ftgl OFF "Build bundled copy of FTGL")
Expand Down
Loading
Loading