Skip to content

Commit 7b17a40

Browse files
committed
Implement FindNabla.cmake, add NABLA_INSTALL_<COMPOMENT>_DIRECTORY_<LIBRARY_TYPE>_<CONFIG> install package variable, perform tests
1 parent 36696ed commit 7b17a40

File tree

4 files changed

+53
-4
lines changed

4 files changed

+53
-4
lines changed

CMakeLists.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -362,3 +362,6 @@ option(NBL_CPACK_INCLUDE_EXAMPLES "CPack with examples and media" ON)
362362
include(cpack/package)
363363

364364
export(TARGETS ${_NBL_3RDPARTY_TARGETS_} Nabla NAMESPACE Nabla:: APPEND FILE ${NBL_ROOT_PATH_BINARY}/NablaExport.cmake)
365+
366+
#set(NBL_CONFIG_ROOT_DIRECTORY "C:/Users/arekl/Desktop/ci-nabla-amd64-mt-s-15381bac3a7365231d75b6a000d4064a3ef820cd-win64")
367+
#find_package(Nabla REQUIRED)

cmake/FindNabla.cmake

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# Define NBL_CONFIG_ROOT_DIRECTORY
2+
# variable to help the module find
3+
# Nabla package
4+
5+
if(NOT DEFINED CMAKE_CONFIGURATION_TYPES)
6+
set(CMAKE_CONFIGURATION_TYPES Release;RelWithDebInfo;Debug)
7+
endif()
8+
9+
if(NOT DEFINED NBL_PACKAGE_STATIC) # turn ON NBL_PACKAGE_STATIC to look for package with STATIC library type, turn off to look for DYNAMIC
10+
if(${NBL_STATIC_BUILD}) # internal, if called with Nabla's build system it will get detected autoamtically
11+
set(NBL_PACKAGE_STATIC ON)
12+
else()
13+
message(FATAL_ERROR "NBL_PACKAGE_STATIC must be defined!")
14+
endif()
15+
endif()
16+
17+
if(NBL_PACKAGE_STATIC)
18+
set(NBL_LIBRARY_TYPE static)
19+
else()
20+
set(NBL_LIBRARY_TYPE dynamic)
21+
endif()
22+
23+
foreach(X IN LISTS CMAKE_CONFIGURATION_TYPES)
24+
if(NOT "${X}" STREQUAL "")
25+
string(TOLOWER "nabla-${NBL_LIBRARY_TYPE}-${X}" _NBL_TARGET_PACKAGE_)
26+
27+
if(DEFINED NBL_CONFIG_ROOT_DIRECTORY)
28+
file(GLOB_RECURSE _NBL_G_CONFIG_ROOT_DIRECTORY_ "${NBL_CONFIG_ROOT_DIRECTORY}/*/${_NBL_TARGET_PACKAGE_}Config.cmake")
29+
cmake_path(GET _NBL_G_CONFIG_ROOT_DIRECTORY_ PARENT_PATH _NBL_G_CONFIG_ROOT_DIRECTORY_)
30+
else()
31+
unset(_NBL_G_CONFIG_ROOT_DIRECTORY_)
32+
endif()
33+
34+
find_package(${_NBL_TARGET_PACKAGE_} QUIET
35+
GLOBAL
36+
PATHS ${_NBL_G_CONFIG_ROOT_DIRECTORY_}
37+
)
38+
endif()
39+
endforeach()
Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
list(TRANSFORM @_NBL_PROXY_@ PREPEND "${CMAKE_CURRENT_LIST_DIR}/")
22

3+
set(@_NBL_COMPOMENT_D_@ "${CMAKE_CURRENT_LIST_DIR}/@_NBL_COMPOMENT_D_V_@")
4+
35
include(FindPackageHandleStandardArgs)
4-
find_package_handle_standard_args(@_NBL_PACKAGE_@ DEFAULT_MSG @_NBL_PROXY_@)
6+
find_package_handle_standard_args(@_NBL_PACKAGE_@ DEFAULT_MSG @_NBL_PROXY_@ @_NBL_COMPOMENT_D_@)

cmake/cpack/find/nabla.cmake

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ endif()
1515
string(TOUPPER "${_COMPOMENT_}" _Cu_)
1616
string(TOLOWER "${_COMPOMENT_}" _Cl_)
1717
18+
string(TOUPPER "${_SPATH_}" _Su_)
19+
string(TOLOWER "${_SPATH_}" _Sl_)
20+
1821
string(TOUPPER "${CMAKE_INSTALL_CONFIG_NAME}" _NBL_CONFIG_)
1922
string(TOLOWER "${CMAKE_INSTALL_CONFIG_NAME}" _NBL_CONFIG_L_)
2023
@@ -43,19 +46,21 @@ set(NBL_CMAKE_CONFIG_OUTPUT_FILE "${NBL_CMAKE_OUTPUT_DIRECTORY}/${_NBL_COMPLETE_
4346
4447
cmake_path(RELATIVE_PATH CMAKE_INSTALL_PREFIX BASE_DIRECTORY "${NBL_CMAKE_COMPOMENT_OUTPUT_DIRECTORY}" OUTPUT_VARIABLE _NBL_REL_TO_PREFIX_)
4548
49+
set(_NBL_PROXY_ NABLA_INSTALL_${_Cu_}_${_LTu_}_${_NBL_CONFIG_})
50+
set(_NBL_COMPOMENT_D_ "NABLA_INSTALL_${_Cu_}_DIRECTORY_${_LTu_}_${_NBL_CONFIG_}")
51+
set(_NBL_COMPOMENT_D_V_ "${_NBL_REL_TO_PREFIX_}")
52+
4653
foreach(_MANIFEST_INSTALL_REL_FILE_ IN LISTS NBL_CMAKE_INSTALL_MANIFEST_CONTENT)
4754
string(FIND "${_MANIFEST_INSTALL_REL_FILE_}" "/${_SPATH_}/" _NBL_FOUND_)
4855
4956
if(NOT "${_NBL_FOUND_}" STREQUAL "-1")
5057
set(_X_ "${_NBL_REL_TO_PREFIX_}/${_MANIFEST_INSTALL_REL_FILE_}")
5158
cmake_path(NORMAL_PATH _X_ OUTPUT_VARIABLE _X_)
5259
53-
list(APPEND NABLA_INSTALL_${_Cu_}_${_LTu_}_${_NBL_CONFIG_} "${_X_}")
60+
list(APPEND ${_NBL_PROXY_} "${_X_}")
5461
endif()
5562
endforeach()
5663
57-
set(_NBL_PROXY_ NABLA_INSTALL_${_Cu_}_${_LTu_}_${_NBL_CONFIG_})
58-
5964
string(APPEND NBL_MANIFEST_IMPL "set(${_NBL_PROXY_}\n\t${${_NBL_PROXY_}}\n)")
6065
string(REPLACE ";" "\n\t" NBL_MANIFEST_IMPL "${NBL_MANIFEST_IMPL}")
6166
string(CONFIGURE "${NBL_MANIFEST_IMPL}" NBL_MANIFEST_IMPL_CONF)

0 commit comments

Comments
 (0)