Skip to content

Commit 4ea1a92

Browse files
committed
[roottest] Remove unreachable or redundant code from CMakeLists.txt
Some configuration code branches are unreachable, now that `roottest` has been merged into ROOT. This also applies to the code that finds the Python interpreter and libraries, as Python is unconditionally found as a dependency already in the main `SearchIntalledSoftware.cmake`, even if `pyroot=OFF`. Another example of redundant code was re-setting the compression default. Specifying a separate project name and minimum CMake version is also not necessary anymore.
1 parent baee12d commit 4ea1a92

File tree

1 file changed

+30
-170
lines changed

1 file changed

+30
-170
lines changed

roottest/CMakeLists.txt

Lines changed: 30 additions & 170 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,3 @@
1-
cmake_minimum_required(VERSION 3.20 FATAL_ERROR)
2-
3-
project(roottest)
4-
5-
# If no explicit ROOTSYS is set, use ${ROOTSYS} environment variable to search
6-
# for ROOT. This may be set by sourcing thisroot.sh from an installation.
7-
if(NOT DEFINED ROOTSYS AND DEFINED ENV{ROOTSYS})
8-
cmake_path(CONVERT "$ENV{ROOTSYS}" TO_CMAKE_PATH_LIST ROOTSYS)
9-
list(INSERT CMAKE_PREFIX_PATH 0 ${ROOTSYS})
10-
endif()
11-
121
# Use ${ROOTSYS} CMake variable to search for ROOT. This is set when roottest is
132
# built as part of ROOT, i.e., when ROOT is configured with -Droottest=ON. It
143
# may also be set by passing -DROOTSYS=<PATH> to CMake when configuring a
@@ -20,12 +9,6 @@ if(DEFINED ROOTSYS)
209
list(INSERT CMAKE_PREFIX_PATH 0 ${ROOTSYS})
2110
endif()
2211

23-
find_package(ROOT REQUIRED CONFIG)
24-
25-
if(NOT DEFINED Python3_EXECUTABLE)
26-
find_package(Python3 ${ROOT_PYTHON_VERSION} REQUIRED QUIET COMPONENTS Interpreter)
27-
endif()
28-
2912
if(MSVC)
3013
set(CMAKE_SKIP_TEST_ALL_DEPENDENCY TRUE)
3114
set(CMAKE_SUPPRESS_REGENERATION TRUE)
@@ -49,72 +32,24 @@ if(MSVC)
4932
if(NOT win_broken_tests)
5033
set(WILLFAIL_ON_WIN32 WILLFAIL)
5134
endif()
52-
if (NOT Python3_EXECUTABLE)
53-
find_package(PythonInterp)
54-
endif()
5535

56-
if(DEFINED ROOT_SOURCE_DIR)
57-
set(CMAKE_CXX_FLAGS ${ROOT_CXX_FLAGS})
58-
# ROOT_BINDIR is set by ROOTConfig.cmake
59-
set(ROOT_CONFIG_EXECUTABLE ${ROOT_BINDIR}/root-config.bat)
60-
execute_process(COMMAND ${ROOT_CONFIG_EXECUTABLE} "--prefix" OUTPUT_VARIABLE ROOTSYS RESULT_VARIABLE RETVAR OUTPUT_STRIP_TRAILING_WHITESPACE)
61-
cmake_path(CONVERT "${ROOTSYS}" TO_CMAKE_PATH_LIST ROOTSYS)
62-
set(ROOTSYS ${ROOTSYS} CACHE INTERNAL "")
63-
execute_process(COMMAND ${ROOT_CONFIG_EXECUTABLE} "--tutdir" OUTPUT_VARIABLE ROOT_TUTORIALS_DIR OUTPUT_STRIP_TRAILING_WHITESPACE)
64-
cmake_path(CONVERT "${ROOT_TUTORIALS_DIR}" TO_CMAKE_PATH_LIST ROOT_TUTORIALS_DIR)
65-
set(ROOT_root_CMD ${ROOTSYS}/bin/root.exe)
66-
set(ROOT_hadd_CMD ${ROOTSYS}/bin/hadd.exe)
67-
set(ROOT_genreflex_CMD ${ROOTSYS}/bin/genreflex.exe)
68-
set(ROOT_rootcint_CMD ${ROOTSYS}/bin/rootcint.exe)
69-
set(ROOT_rootcling_CMD ${ROOTSYS}/bin/rootcling.exe)
70-
if(CMAKE_GENERATOR MATCHES Ninja)
71-
set(ROOT_LIBRARIES Core RIO Net Hist Gpad Graf Tree Rint Matrix MathCore)
72-
else()
73-
set(ROOT_LIBRARIES libCore libRIO libNet libHist libGpad libGraf libTree libRint libMatrix libMathCore)
74-
endif()
36+
set(CMAKE_CXX_FLAGS ${ROOT_CXX_FLAGS})
37+
# ROOT_BINDIR is set by ROOTConfig.cmake
38+
set(ROOT_CONFIG_EXECUTABLE ${ROOT_BINDIR}/root-config.bat)
39+
execute_process(COMMAND ${ROOT_CONFIG_EXECUTABLE} "--prefix" OUTPUT_VARIABLE ROOTSYS RESULT_VARIABLE RETVAR OUTPUT_STRIP_TRAILING_WHITESPACE)
40+
cmake_path(CONVERT "${ROOTSYS}" TO_CMAKE_PATH_LIST ROOTSYS)
41+
set(ROOTSYS ${ROOTSYS} CACHE INTERNAL "")
42+
execute_process(COMMAND ${ROOT_CONFIG_EXECUTABLE} "--tutdir" OUTPUT_VARIABLE ROOT_TUTORIALS_DIR OUTPUT_STRIP_TRAILING_WHITESPACE)
43+
cmake_path(CONVERT "${ROOT_TUTORIALS_DIR}" TO_CMAKE_PATH_LIST ROOT_TUTORIALS_DIR)
44+
set(ROOT_root_CMD ${ROOTSYS}/bin/root.exe)
45+
set(ROOT_hadd_CMD ${ROOTSYS}/bin/hadd.exe)
46+
set(ROOT_genreflex_CMD ${ROOTSYS}/bin/genreflex.exe)
47+
set(ROOT_rootcint_CMD ${ROOTSYS}/bin/rootcint.exe)
48+
set(ROOT_rootcling_CMD ${ROOTSYS}/bin/rootcling.exe)
49+
if(CMAKE_GENERATOR MATCHES Ninja)
50+
set(ROOT_LIBRARIES Core RIO Net Hist Gpad Graf Tree Rint Matrix MathCore)
7551
else()
76-
include(${ROOT_USE_FILE})
77-
set(ROOT_CONFIG_EXECUTABLE root-config.bat)
78-
execute_process(COMMAND ${ROOT_CONFIG_EXECUTABLE} "--prefix" OUTPUT_VARIABLE ROOTSYS RESULT_VARIABLE RETVAR OUTPUT_STRIP_TRAILING_WHITESPACE)
79-
cmake_path(CONVERT "${ROOTSYS}" TO_CMAKE_PATH_LIST ROOTSYS)
80-
set(ROOTSYS ${ROOTSYS} CACHE INTERNAL "")
81-
execute_process(COMMAND ${ROOT_CONFIG_EXECUTABLE} "--srcdir" OUTPUT_VARIABLE ROOT_SOURCE_DIR OUTPUT_STRIP_TRAILING_WHITESPACE)
82-
cmake_path(CONVERT "${ROOT_SOURCE_DIR}" TO_CMAKE_PATH_LIST ROOT_SOURCE_DIR)
83-
execute_process(COMMAND ${ROOT_CONFIG_EXECUTABLE} "--tutdir" OUTPUT_VARIABLE ROOT_TUTORIALS_DIR OUTPUT_STRIP_TRAILING_WHITESPACE)
84-
cmake_path(CONVERT "${ROOT_TUTORIALS_DIR}" TO_CMAKE_PATH_LIST ROOT_TUTORIALS_DIR)
85-
execute_process(COMMAND ${ROOT_CONFIG_EXECUTABLE} "--features" OUTPUT_VARIABLE ROOT_FEATURES RESULT_VARIABLE RETVAR OUTPUT_STRIP_TRAILING_WHITESPACE)
86-
separate_arguments(ROOT_FEATURES)
87-
foreach(item ${ROOT_FEATURES})
88-
if("${item}" MATCHES "^cxx(.*)")
89-
string(REGEX REPLACE "^cxx(.*)" "\\1" CXX_VERSION ${item})
90-
set(CMAKE_CXX_STANDARD ${CXX_VERSION} CACHE INTERNAL "")
91-
endif()
92-
endforeach()
93-
# Some roottest.git tests are checking LZ4 and ZSTD, which has different references depends on its version.
94-
# We recover LZ4/ZSTD version used in ROOT, stored in root-config --config output.
95-
execute_process(COMMAND ${ROOT_CONFIG_EXECUTABLE} "--config" OUTPUT_VARIABLE ROOT_CONFIG_VARIABLES RESULT_VARIABLE RETVAR OUTPUT_STRIP_TRAILING_WHITESPACE)
96-
separate_arguments(ROOT_CONFIG_VARIABLES)
97-
foreach(item ${ROOT_CONFIG_VARIABLES})
98-
if("${item}" MATCHES "LZ4_VERSION=(.*)")
99-
string(REGEX REPLACE "LZ4_VERSION=(.*)" "\\1" LZ4 ${item})
100-
set(LZ4_VERSION ${LZ4} CACHE INTERNAL "")
101-
elseif("${item}" MATCHES "ZSTD_VERSION=(.*)")
102-
string(REGEX REPLACE "ZSTD_VERSION=(.*)" "\\1" ZSTD ${item})
103-
set(ZSTD_VERSION ${ZSTD} CACHE INTERNAL "")
104-
endif()
105-
endforeach()
106-
if(NOT LZ4_VERSION)
107-
message(FATAL_ERROR "LZ4_VERSION not found in ${ROOTSYS}/bin/root-config.bat")
108-
endif()
109-
if(NOT ZSTD_VERSION)
110-
message(FATAL_ERROR "ZSTD_VERSION not found in ${ROOTSYS}/bin/root-config.bat")
111-
endif()
112-
find_program(ROOT_root_CMD root.exe PATHS ${ROOTSYS}/bin)
113-
find_program(ROOT_hadd_CMD hadd.exe PATHS ${ROOTSYS}/bin)
114-
find_program(ROOT_genreflex_CMD genreflex.exe PATHS ${ROOTSYS}/bin)
115-
find_program(ROOT_rootcint_CMD rootcint.exe PATHS ${ROOTSYS}/bin)
116-
find_program(ROOT_rootcling_CMD rootcling.exe PATHS ${ROOTSYS}/bin)
117-
enable_testing()
52+
set(ROOT_LIBRARIES libCore libRIO libNet libHist libGpad libGraf libTree libRint libMatrix libMathCore)
11853
endif()
11954
else()
12055

@@ -125,83 +60,23 @@ else()
12560
# only for non-Windows platforms
12661
set(OptionalMultiProc MultiProc)
12762

128-
# If ROOT_SOURCE_DIR is set, roottest is built as part of the root build.
129-
# If ROOT_SOURCE_DIR is not set, search for an installation.
130-
if(DEFINED ROOT_SOURCE_DIR)
131-
# root-config --prefix helps to retrieve ROOTSYS env variable.
132-
# ROOT_BINDIR is set by ROOTConfig.cmake
133-
find_program(ROOT_CONFIG_EXECUTABLE root-config PATHS ${ROOT_BINDIR})
134-
if(NOT ROOT_CONFIG_EXECUTABLE)
135-
message(ERROR "root-config is not found, please rerun configuration step.")
136-
endif()
137-
execute_process(COMMAND ${ROOT_CONFIG_EXECUTABLE} "--prefix" OUTPUT_VARIABLE ROOTSYS RESULT_VARIABLE RETVAR OUTPUT_STRIP_TRAILING_WHITESPACE)
138-
set(ROOTSYS ${ROOTSYS} CACHE INTERNAL "")
139-
execute_process(COMMAND ${ROOT_CONFIG_EXECUTABLE} "--tutdir" OUTPUT_VARIABLE ROOT_TUTORIALS_DIR OUTPUT_STRIP_TRAILING_WHITESPACE)
140-
set(ROOT_LIBRARIES Core RIO Net Hist Gpad Tree Rint Matrix MathCore)
141-
set(ROOT_root_CMD ${ROOTSYS}/bin/root.exe)
142-
set(ROOT_hadd_CMD ${ROOTSYS}/bin/hadd)
143-
set(ROOT_genreflex_CMD ${ROOTSYS}/bin/genreflex)
144-
set(ROOT_rootcint_CMD ${ROOTSYS}/bin/rootcint)
145-
set(ROOT_rootcling_CMD rootcling)
146-
else() # standalone roottest.git
147-
include(${ROOT_USE_FILE})
148-
# root-config --prefix helps to retrieve ROOTSYS env variable.
149-
find_program(ROOT_CONFIG_EXECUTABLE root-config)
150-
execute_process(COMMAND ${ROOT_CONFIG_EXECUTABLE} "--prefix" OUTPUT_VARIABLE ROOTSYS RESULT_VARIABLE RETVAR OUTPUT_STRIP_TRAILING_WHITESPACE)
151-
set(ROOTSYS ${ROOTSYS} CACHE INTERNAL "")
152-
# Some roottest.git tests are checking LZ4 and ZSTD, which has different references depends on its version.
153-
# We recover LZ4/ZSTD version used in ROOT, stored in root-config --config output.
154-
execute_process(COMMAND ${ROOT_CONFIG_EXECUTABLE} "--srcdir" OUTPUT_VARIABLE ROOT_SOURCE_DIR OUTPUT_STRIP_TRAILING_WHITESPACE)
155-
execute_process(COMMAND ${ROOT_CONFIG_EXECUTABLE} "--tutdir" OUTPUT_VARIABLE ROOT_TUTORIALS_DIR OUTPUT_STRIP_TRAILING_WHITESPACE)
156-
execute_process(COMMAND ${ROOT_CONFIG_EXECUTABLE} "--config" OUTPUT_VARIABLE ROOT_CONFIG_VARIABLES RESULT_VARIABLE RETVAR OUTPUT_STRIP_TRAILING_WHITESPACE)
157-
separate_arguments(ROOT_CONFIG_VARIABLES)
158-
foreach(item ${ROOT_CONFIG_VARIABLES})
159-
if("${item}" MATCHES "LZ4_VERSION=(.*)")
160-
string(REGEX REPLACE "LZ4_VERSION=(.*)" "\\1" LZ4 ${item})
161-
set(LZ4_VERSION ${LZ4} CACHE INTERNAL "")
162-
elseif("${item}" MATCHES "ZSTD_VERSION=(.*)")
163-
string(REGEX REPLACE "ZSTD_VERSION=(.*)" "\\1" ZSTD ${item})
164-
set(ZSTD_VERSION ${ZSTD} CACHE INTERNAL "")
165-
endif()
166-
endforeach()
167-
# If we didn't manage to find LZ4_VERSION/ZSTD_VERSION in "root-config --config" output,
168-
# we consider that ROOT had used system LZ4/ZSTD and we can find it via find_package().
169-
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake/modules ${ROOTSYS}/cmake/modules ${ROOT_SOURCE_DIR}/cmake/modules)
170-
if(NOT LZ4_VERSION)
171-
find_package(LZ4)
172-
if(NOT LZ4_FOUND)
173-
message(FATAL_ERROR "lz4 is required to be installed before running roottest.git")
174-
endif()
175-
endif()
176-
if(NOT ZSTD_VERSION)
177-
find_package(ZSTD)
178-
if(NOT ZSTD_FOUND)
179-
message(FATAL_ERROR "zstd is required to be installed before running roottest.git")
180-
endif()
181-
endif()
182-
# To be able to use the same C++ standard as used in ROOT, we can try to retrieve it from root-config --features
183-
execute_process(COMMAND ${ROOT_CONFIG_EXECUTABLE} "--features" OUTPUT_VARIABLE ROOT_FEATURES RESULT_VARIABLE RETVAR OUTPUT_STRIP_TRAILING_WHITESPACE)
184-
separate_arguments(ROOT_FEATURES)
185-
foreach(item ${ROOT_FEATURES})
186-
if("${item}" MATCHES "^cxx(.*)")
187-
string(REGEX REPLACE "^cxx(.*)" "\\1" CXX_VERSION ${item})
188-
set(CMAKE_CXX_STANDARD ${CXX_VERSION} CACHE INTERNAL "")
189-
endif()
190-
endforeach()
191-
find_program(ROOT_root_CMD root.exe PATHS ${ROOTSYS}/bin)
192-
find_program(ROOT_hadd_CMD hadd PATHS ${ROOTSYS}/bin)
193-
find_program(ROOT_genreflex_CMD genreflex PATHS ${ROOTSYS}/bin)
194-
find_program(ROOT_rootcint_CMD rootcint PATHS ${ROOTSYS}/bin)
195-
find_program(ROOT_rootcling_CMD rootcling PATHS ${ROOTSYS}/bin)
196-
enable_testing()
63+
# root-config --prefix helps to retrieve ROOTSYS env variable.
64+
# ROOT_BINDIR is set by ROOTConfig.cmake
65+
find_program(ROOT_CONFIG_EXECUTABLE root-config PATHS ${ROOT_BINDIR})
66+
if(NOT ROOT_CONFIG_EXECUTABLE)
67+
message(ERROR "root-config is not found, please rerun configuration step.")
19768
endif()
69+
execute_process(COMMAND ${ROOT_CONFIG_EXECUTABLE} "--prefix" OUTPUT_VARIABLE ROOTSYS RESULT_VARIABLE RETVAR OUTPUT_STRIP_TRAILING_WHITESPACE)
70+
set(ROOTSYS ${ROOTSYS} CACHE INTERNAL "")
71+
execute_process(COMMAND ${ROOT_CONFIG_EXECUTABLE} "--tutdir" OUTPUT_VARIABLE ROOT_TUTORIALS_DIR OUTPUT_STRIP_TRAILING_WHITESPACE)
72+
set(ROOT_LIBRARIES Core RIO Net Hist Gpad Tree Rint Matrix MathCore)
73+
set(ROOT_root_CMD ${ROOTSYS}/bin/root.exe)
74+
set(ROOT_hadd_CMD ${ROOTSYS}/bin/hadd)
75+
set(ROOT_genreflex_CMD ${ROOTSYS}/bin/genreflex)
76+
set(ROOT_rootcint_CMD ${ROOTSYS}/bin/rootcint)
77+
set(ROOT_rootcling_CMD rootcling)
19878
endif()
19979

200-
# Synchronizing default compression algorithm used for ROOT.
201-
# We need to have it for CMake settings for switching tests references.
202-
# FIXME: it should be exported from ROOT build.
203-
set(compression_default "zlib" CACHE STRING "" FORCE)
204-
20580
get_filename_component(ROOT_LIBRARY_DIR "${ROOTSYS}/lib" ABSOLUTE)
20681

20782
set(ref_suffix ".ref")
@@ -252,21 +127,6 @@ set(CMAKE_ROOTTEST_DICT ON)
252127
# Set the CMake module path. Here are all the custom CMake modules.
253128
set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH};${ROOT_SOURCE_DIR}/roottest/cmake/modules")
254129

255-
# Find python.
256-
if(ROOT_pyroot_FOUND)
257-
if (NOT Python3_EXECUTABLE)
258-
find_package(PythonInterp)
259-
if(PYTHONINTERP_FOUND)
260-
execute_process(COMMAND ${Python3_EXECUTABLE} -c "import sys;sys.stdout.write(sys.prefix)"
261-
OUTPUT_VARIABLE PYTHON_PREFIX)
262-
set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} ${PYTHON_PREFIX})
263-
endif()
264-
if (NOT Python3_LIBRARIES)
265-
find_package(PythonLibs)
266-
endif()
267-
endif()
268-
endif()
269-
270130
#---Set flag for PyROOT tests that are expected to fail
271131
if(ROOT_pyroot_FOUND)
272132
set(PYTESTS_WILLFAIL WILLFAIL)

0 commit comments

Comments
 (0)