1
1
function (NBL_GEN_FIND_NABLA_COMPONENT_CODE_IMPL _COMPOMENT_ _SPATH_ )
2
- string (APPEND NBL_FIND_NABLA_IMPL "set(_COMPOMENT_ ${_COMPOMENT_} )\n set(_SPATH_ ${_SPATH_} )\n\ n set(NBL_ROOT_PATH ${NBL_ROOT_PATH} )\n\n " )
2
+ string (APPEND NBL_FIND_NABLA_IMPL "set(_COMPOMENT_ ${_COMPOMENT_} )\n set(_SPATH_ ${_SPATH_} )\n set(NBL_ROOT_PATH ${NBL_ROOT_PATH} ) \n set(NBL_STATIC_BUILD ${NBL_STATIC_BUILD } )\n\n " )
3
3
string (APPEND NBL_FIND_NABLA_IMPL
4
4
[=[
5
5
if(CMAKE_INSTALL_CONFIG_NAME MATCHES "^([Dd][Ee][Bb][Uu][Gg])$")
@@ -12,20 +12,34 @@ else()
12
12
message(FATAL_ERROR "Internal error, requested \"${CMAKE_INSTALL_CONFIG_NAME}\" configuration is invalid!")
13
13
endif()
14
14
15
+ string(TOUPPER "${_COMPOMENT_}" _Cu_)
16
+ string(TOLOWER "${_COMPOMENT_}" _Cl_)
17
+
15
18
string(TOUPPER "${CMAKE_INSTALL_CONFIG_NAME}" _NBL_CONFIG_)
16
- set(_NBL_PACKAGE_ Nabla${_COMPOMENT_})
19
+ string(TOLOWER "${CMAKE_INSTALL_CONFIG_NAME}" _NBL_CONFIG_L_)
20
+
21
+ if(NBL_STATIC_BUILD)
22
+ set(NBL_LIBRARY_TYPE STATIC)
23
+ else()
24
+ set(NBL_LIBRARY_TYPE DYNAMIC)
25
+ endif()
26
+
27
+ string(TOUPPER "${NBL_LIBRARY_TYPE}" _LTu_)
28
+ string(TOLOWER "${NBL_LIBRARY_TYPE}" _LTl_)
29
+
30
+ set(_NBL_PACKAGE_ nabla-${_Cl_}-${_LTl_}-${_NBL_CONFIG_L_})
31
+ set(_NBL_COMPLETE_P_CONFIG_ nabla-${_LTl_}-${_NBL_CONFIG_L_})
17
32
18
33
set(NBL_CMAKE_OUTPUT_DIRECTORY "${CMAKE_INSTALL_PREFIX}/${NBL_CONFIG_PREFIX_PATH}/cmake")
19
- set(NBL_CMAKE_COMPOMENT_OUTPUT_DIRECTORY "${NBL_CMAKE_OUTPUT_DIRECTORY}/component ")
34
+ set(NBL_CMAKE_COMPOMENT_OUTPUT_DIRECTORY "${NBL_CMAKE_OUTPUT_DIRECTORY}/compoment ")
20
35
21
36
string(REPLACE "${CMAKE_INSTALL_PREFIX}" "" NBL_CMAKE_INSTALL_MANIFEST_CONTENT "${CMAKE_INSTALL_MANIFEST_FILES}")
22
37
list(REMOVE_DUPLICATES NBL_CMAKE_INSTALL_MANIFEST_CONTENT)
23
38
24
39
set(_NBL_PREFIX_ "${CMAKE_INSTALL_PREFIX}/${NBL_CONFIG_PREFIX_PATH}")
25
- string(TOUPPER "${_COMPOMENT_}" _Cu_)
26
- string(TOLOWER "${_COMPOMENT_}" _Cl_)
27
40
28
41
set(NBL_CMAKE_COMPOMENT_OUTPUT_FILE "${NBL_CMAKE_COMPOMENT_OUTPUT_DIRECTORY}/${_NBL_PACKAGE_}Config.cmake")
42
+ set(NBL_CMAKE_CONFIG_OUTPUT_FILE "${NBL_CMAKE_OUTPUT_DIRECTORY}/${_NBL_COMPLETE_P_CONFIG_}Config.cmake")
29
43
30
44
cmake_path(RELATIVE_PATH CMAKE_INSTALL_PREFIX BASE_DIRECTORY "${NBL_CMAKE_COMPOMENT_OUTPUT_DIRECTORY}" OUTPUT_VARIABLE _NBL_REL_TO_PREFIX_)
31
45
@@ -36,11 +50,11 @@ foreach(_MANIFEST_INSTALL_REL_FILE_ IN LISTS NBL_CMAKE_INSTALL_MANIFEST_CONTENT)
36
50
set(_X_ "${_NBL_REL_TO_PREFIX_}/${_MANIFEST_INSTALL_REL_FILE_}")
37
51
cmake_path(NORMAL_PATH _X_ OUTPUT_VARIABLE _X_)
38
52
39
- list(APPEND NABLA_INSTALL_${_Cu_}_${_NBL_CONFIG_} "${_X_}")
53
+ list(APPEND NABLA_INSTALL_${_Cu_}_${_LTu_}_${ _NBL_CONFIG_} "${_X_}")
40
54
endif()
41
55
endforeach()
42
56
43
- set(_NBL_PROXY_ NABLA_INSTALL_${_Cu_}_${_NBL_CONFIG_})
57
+ set(_NBL_PROXY_ NABLA_INSTALL_${_Cu_}_${_LTu_}_${ _NBL_CONFIG_})
44
58
45
59
string(APPEND NBL_MANIFEST_IMPL "set(${_NBL_PROXY_}\n\t${${_NBL_PROXY_}}\n)")
46
60
string(REPLACE ";" "\n\t" NBL_MANIFEST_IMPL "${NBL_MANIFEST_IMPL}")
@@ -49,32 +63,30 @@ file(WRITE "${NBL_CMAKE_COMPOMENT_OUTPUT_FILE}" "${NBL_MANIFEST_IMPL_CONF}")
49
63
50
64
# the reason behind this weird looking thing is you cannot nest bracket arguments https://cmake.org/cmake/help/latest/manual/cmake-language.7.html#bracket-argument
51
65
# some variables need evaluation but some not and must be literals, to make this code read-able & work we do a small workaround
66
+
67
+ # Compoment
52
68
configure_file("${NBL_ROOT_PATH}/cmake/cpack/find/compoment/template.cmake" "${NBL_CMAKE_COMPOMENT_OUTPUT_FILE}.tmp" @ONLY)
53
69
file(READ "${NBL_CMAKE_COMPOMENT_OUTPUT_FILE}.tmp" _NBL_COMPOMENT_INCLUDE_LIST_TRANFORM_)
54
70
file(REMOVE "${NBL_CMAKE_COMPOMENT_OUTPUT_FILE}.tmp")
55
71
file(APPEND "${NBL_CMAKE_COMPOMENT_OUTPUT_FILE}" "\n${_NBL_COMPOMENT_INCLUDE_LIST_TRANFORM_}")
56
72
57
73
# Config
74
+ if(NOT EXISTS "${NBL_CMAKE_CONFIG_OUTPUT_FILE}")
75
+ file(READ "${NBL_ROOT_PATH}/cmake/cpack/find/licence/template.cmake" _NBL_LICENCE_)
76
+ file(APPEND "${NBL_CMAKE_CONFIG_OUTPUT_FILE}" "${_NBL_LICENCE_}")
77
+ endif()
58
78
79
+ configure_file("${NBL_ROOT_PATH}/cmake/cpack/find/config/template.cmake" "${NBL_CMAKE_CONFIG_OUTPUT_FILE}.tmp" @ONLY)
80
+ file(READ "${NBL_CMAKE_CONFIG_OUTPUT_FILE}.tmp" _NBL_CONFIG_FILE_CONTENT_)
81
+ file(REMOVE "${NBL_CMAKE_CONFIG_OUTPUT_FILE}.tmp")
82
+ file(APPEND "${NBL_CMAKE_CONFIG_OUTPUT_FILE}" "\n\n${_NBL_CONFIG_FILE_CONTENT_}")
59
83
]=]
60
84
)
61
85
62
86
install (CODE "${NBL_FIND_NABLA_IMPL} " COMPONENT ${_COMPOMENT_} )
63
87
endfunction ()
64
88
65
- function (NBL_GEN_FIND_NABLA_CONFIG_CODE_IMPL )
66
- string (APPEND NBL_FIND_NABLA_IMPL
67
- [=[
68
-
69
- ]=]
70
-
71
- install (CODE "${NBL_FIND_NABLA_IMPL} " ALL_COMPONENTS )
72
- endfunction ()
73
-
74
- # Generate component configurations
89
+ # Generate compoment configurations
75
90
NBL_GEN_FIND_NABLA_COMPONENT_CODE_IMPL (Headers include )
76
91
NBL_GEN_FIND_NABLA_COMPONENT_CODE_IMPL (Libraries lib )
77
- NBL_GEN_FIND_NABLA_COMPONENT_CODE_IMPL (Runtimes runtime )
78
-
79
- # Generate config file
80
- NBL_GEN_FIND_NABLA_CONFIG_CODE_IMPL ()
92
+ NBL_GEN_FIND_NABLA_COMPONENT_CODE_IMPL (Runtimes runtime )
0 commit comments