Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
53 changes: 24 additions & 29 deletions roottest/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,23 @@
set(ROOT_CONFIG_EXECUTABLE $<TARGET_FILE:root-config>)
if(NOT EXISTS ${ROOT_CONFIG_EXECUTABLE})
message(FATAL_ERROR "root-config was not found in ${ROOT_CONFIG_EXECUTABLE}.")
endif()
set(ROOT_root_CMD $<TARGET_FILE:root>)
set(ROOT_hadd_CMD $<TARGET_FILE:hadd>)
set(ROOT_genreflex_CMD $<TARGET_FILE:genreflex>)
set(ROOT_rootcint_CMD $<TARGET_FILE:rootcint>)
set(ROOT_rootcling_CMD $<TARGET_FILE:rootcling>)

execute_process(COMMAND ${ROOT_CONFIG_EXECUTABLE} "--tutdir" OUTPUT_VARIABLE ROOT_TUTORIALS_DIR OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND ${ROOT_CONFIG_EXECUTABLE} "--incdir" OUTPUT_VARIABLE ROOT_INCLUDE_DIRS OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND ${ROOT_CONFIG_EXECUTABLE} "--incdir" OUTPUT_VARIABLE ROOT_LIBRARY_DIR OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND ${ROOT_CONFIG_EXECUTABLE} "--prefix" OUTPUT_VARIABLE ROOTSYS RESULT_VARIABLE RETVAR OUTPUT_STRIP_TRAILING_WHITESPACE)
# root-config --prefix helps to retrieve ROOTSYS env variable.
if(NOT IS_DIRECTORY ${ROOTSYS})
message(FATAL_ERROR "ROOTSYS should be set before configuring roottest.")
endif()


if(MSVC)
set(CMAKE_SKIP_TEST_ALL_DEPENDENCY TRUE)
set(CMAKE_SUPPRESS_REGENERATION TRUE)
Expand All @@ -21,52 +41,27 @@ if(MSVC)
set(WILLFAIL_ON_WIN32 WILLFAIL)
endif()

# ROOT_BINDIR is set by ROOTConfig.cmake
set(ROOT_CONFIG_EXECUTABLE ${ROOT_BINDIR}/root-config.bat)
execute_process(COMMAND ${ROOT_CONFIG_EXECUTABLE} "--prefix" OUTPUT_VARIABLE ROOTSYS RESULT_VARIABLE RETVAR OUTPUT_STRIP_TRAILING_WHITESPACE)
cmake_path(CONVERT "${ROOTSYS}" TO_CMAKE_PATH_LIST ROOTSYS)
set(ROOTSYS ${ROOTSYS} CACHE INTERNAL "")
execute_process(COMMAND ${ROOT_CONFIG_EXECUTABLE} "--tutdir" OUTPUT_VARIABLE ROOT_TUTORIALS_DIR OUTPUT_STRIP_TRAILING_WHITESPACE)
cmake_path(CONVERT "${ROOT_TUTORIALS_DIR}" TO_CMAKE_PATH_LIST ROOT_TUTORIALS_DIR)
set(ROOT_root_CMD ${ROOTSYS}/bin/root.exe)
set(ROOT_hadd_CMD ${ROOTSYS}/bin/hadd.exe)
set(ROOT_genreflex_CMD ${ROOTSYS}/bin/genreflex.exe)
set(ROOT_rootcint_CMD ${ROOTSYS}/bin/rootcint.exe)
set(ROOT_rootcling_CMD ${ROOTSYS}/bin/rootcling.exe)
cmake_path(CONVERT "${ROOT_INCLUDE_DIRS}" TO_CMAKE_PATH_LIST ROOT_INCLUDE_DIRS)
cmake_path(CONVERT "${ROOT_LIBRARY_DIR}" TO_CMAKE_PATH_LIST ROOT_LIBRARY_DIR)
if(CMAKE_GENERATOR MATCHES Ninja)
set(ROOT_LIBRARIES Core RIO Net Hist Gpad Graf Tree Rint Matrix MathCore)
else()
set(ROOT_LIBRARIES libCore libRIO libNet libHist libGpad libGraf libTree libRint libMatrix libMathCore)
endif()
else()

# We can not use CMAKE_SHARED_LIBRARY_SUFFIX as on macos it uses the standard dylib rather than the .so
set(libsuffix .so)
set(grep_cmd grep)

# only for non-Windows platforms
set(OptionalMultiProc MultiProc)

# root-config --prefix helps to retrieve ROOTSYS env variable.
# ROOT_BINDIR is set by ROOTConfig.cmake
set(ROOT_CONFIG_EXECUTABLE ${ROOT_BINDIR}/root-config)
if(NOT EXISTS ${ROOT_CONFIG_EXECUTABLE})
message(FATAL_ERROR "root-config was not found in ${ROOT_CONFIG_EXECUTABLE}.")
endif()
if(NOT IS_DIRECTORY ${ROOTSYS})
message(FATAL_ERROR "ROOTSYS should be set before configuring roottest.")
endif()
execute_process(COMMAND ${ROOT_CONFIG_EXECUTABLE} "--tutdir" OUTPUT_VARIABLE ROOT_TUTORIALS_DIR OUTPUT_STRIP_TRAILING_WHITESPACE)
set(ROOT_LIBRARIES Core RIO Net Hist Gpad Tree Rint Matrix MathCore)
set(ROOT_root_CMD ${ROOTSYS}/bin/root.exe)
set(ROOT_hadd_CMD ${ROOTSYS}/bin/hadd)
set(ROOT_genreflex_CMD ${ROOTSYS}/bin/genreflex)
set(ROOT_rootcint_CMD ${ROOTSYS}/bin/rootcint)
set(ROOT_rootcling_CMD rootcling)
endif()

get_filename_component(ROOT_LIBRARY_DIR "${ROOTSYS}/lib" ABSOLUTE)

set(ref_suffix ".ref")

# Detect bitness.
Expand Down Expand Up @@ -107,8 +102,8 @@ find_library(OPENGL_gl_LIBRARY NAMES GL)

# Set global include dirs and library dirs for roottest.
# These are picked up in the old-style dictionary generation and when standard CMake targets are created.
include_directories(${ROOTSYS}/include ${CMAKE_CURRENT_SOURCE_DIR})
link_directories(${ROOTSYS}/lib)
include_directories(${ROOT_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR})
link_directories(${ROOT_LIBRARY_DIR})
set(CMAKE_MACOSX_RPATH TRUE) # use RPATH for MacOSX

include(RoottestCTest)
Expand Down
4 changes: 2 additions & 2 deletions roottest/main/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ configure_file(RootcpReplaceEntireFileCheck.C . COPYONLY)
# We should explicitly use the Python executable from the Python version that
# was used to build ROOT. Otherwise, we risk picking up a different Python
# version at test time.
set(PY_TOOLS_PREFIX ${Python3_EXECUTABLE} ${ROOTSYS}/bin)
set(TOOLS_PREFIX ${ROOTSYS}/bin)
set(PY_TOOLS_PREFIX ${Python3_EXECUTABLE} ${ROOT_BINDIR})
set(TOOLS_PREFIX ${ROOT_BINDIR})

if(MSVC)
set(pyext .py)
Expand Down
2 changes: 1 addition & 1 deletion roottest/python/JupyROOT/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ if(NOT MSVC OR win_broken_tests)
# Do not run with classic build or if tests are vetoed
if (pyroot AND NOT ROOT_CLASSIC_BUILD)

set(MODULES_LOCATION ${ROOTSYS}/lib/ROOT/_jupyroot/helpers)
set(MODULES_LOCATION ${ROOT_LIBRARY_DIR}/ROOT/_jupyroot/helpers)
set(NBDIFFUTIL ${CMAKE_CURRENT_SOURCE_DIR}/nbdiff.py )
set(DOCTEST_LAUNCHER ${CMAKE_CURRENT_SOURCE_DIR}/doctest_launcher.py)

Expand Down