@@ -31,8 +31,8 @@ message(STATUS "Building xtensor-fftw v${${PROJECT_NAME}_VERSION}")
3131
3232#--------------------------------------- cmake modules
3333
34- set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR } /cmake/Modules/" )
35- set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR } /cmake/Modules/findFFTW/" )
34+ set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR } /cmake/Modules/" )
35+ set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR } /cmake/Modules/findFFTW/" )
3636
3737#--------------------------------------- user options
3838set (FFTW_ROOT "" CACHE STRING "The FFTW prefix, i.e. the base directory under which FFTW is installed (see README.md)." )
@@ -67,15 +67,33 @@ include_directories(${XTENSOR_FFTW_INCLUDE_DIR})
6767
6868# .. xtensor
6969set (xtensor_REQUIRED_VERSION 0.20.9)
70- find_package (xtensor ${xtensor_REQUIRED_VERSION} REQUIRED )
71- message (STATUS "Found xtensor: ${xtensor_INCLUDE_DIRS} /xtensor" )
72- include_directories (${xtensor_INCLUDE_DIRS} )
70+ if (TARGET xtensor)
71+ set (xtensor_VERSION ${XTENSOR_VERSION_MAJOR} .${XTENSOR_VERSION_MINOR} .${XTENSOR_VERSION_PATCH} )
72+ # Note: This is not SEMVER compatible comparison
73+ if ( NOT ${xtensor_VERSION} VERSION_GREATER_EQUAL ${xtensor_REQUIRED_VERSION} )
74+ message (ERROR "Mismatch xtensor versions. Found '${xtensor_VERSION} ' but requires: '${xtensor_REQUIRED_VERSION} '" )
75+ else ()
76+ message (STATUS "Found xtensor v${xtensor_VERSION} " )
77+ endif ()
78+ else ()
79+ find_package (xtensor ${xtensor_REQUIRED_VERSION} REQUIRED )
80+ message (STATUS "Found xtensor: ${xtensor_INCLUDE_DIRS} /xtensor" )
81+ endif ()
7382
7483# .. xtl
7584set (xtl_REQUIRED_VERSION 0.6.9)
76- find_package (xtl ${xtl_REQUIRED_VERSION} REQUIRED )
77- message (STATUS "Found xtl: ${xtl_INCLUDE_DIRS} /xtl" )
78- include_directories (${xtl_INCLUDE_DIRS} )
85+ if (TARGET xtl)
86+ set (xtl_VERSION ${XTL_VERSION_MAJOR} .${XTL_VERSION_MINOR} .${XTL_VERSION_PATCH} )
87+ # Note: This is not SEMVER compatible comparison
88+ if ( NOT ${xtl_VERSION} VERSION_GREATER_EQUAL ${xtl_REQUIRED_VERSION} )
89+ message (ERROR "Mismatch xtl versions. Found '${xtl_VERSION} ' but requires: '${xtl_REQUIRED_VERSION} '" )
90+ else ()
91+ message (STATUS "Found xtl v${xtl_VERSION} " )
92+ endif ()
93+ else ()
94+ find_package (xtl ${xtl_REQUIRED_VERSION} REQUIRED )
95+ message (STATUS "Found xtl: ${xtl_INCLUDE_DIRS} /xtl" )
96+ endif ()
7997
8098# .. fftw
8199if (MSVC )
0 commit comments