|
4 | 4 |
|
5 | 5 | cmake_minimum_required (VERSION 3.19) |
6 | 6 |
|
7 | | -set (OSL_VERSION "1.14.3.0") |
| 7 | +set (OSL_VERSION "1.14.4.0") |
8 | 8 | set (OSL_VERSION_OVERRIDE "" CACHE STRING |
9 | 9 | "Version override (use with caution)!") |
10 | 10 | mark_as_advanced (OSL_VERSION_OVERRIDE) |
@@ -163,22 +163,32 @@ add_compile_definitions (OSL_INTERNAL=1) |
163 | 163 | # OIIO_DISABLE_DEPRECATED before including any OIIO headers. |
164 | 164 | add_compile_definitions (OIIO_DISABLE_DEPRECATED=900000) |
165 | 165 |
|
166 | | -# Set the default namespace. For symbol hiding reasons, it's important that |
167 | | -# the project name is a subset of the namespace name. |
168 | | -set (${PROJ_NAME}_NAMESPACE ${PROJECT_NAME} CACHE STRING |
169 | | - "Customized outer namespace base name (version will be added)") |
170 | | -option (${PROJ_NAME}_NAMESPACE_INCLUDE_PATCH |
171 | | - "Should the inner namespace include the patch number" ${${PROJECT_NAME}_DEV_RELEASE}) |
172 | | -set (PROJ_NAMESPACE "${${PROJ_NAME}_NAMESPACE}") |
173 | | -string(REGEX MATCH ${PROJECT_NAME} NAMESPACE_HAS_PROJECT_NAME ${PROJ_NAMESPACE}) |
174 | | -if (NOT NAMESPACE_HAS_PROJECT_NAME) |
175 | | - set (PROJ_NAMESPACE ${PROJECT_NAME}_${PROJ_NAMESPACE}) |
| 166 | +# Namespace settings |
| 167 | +# |
| 168 | +# The "outer namespace" defaults to the project name, but it can be overridden |
| 169 | +# to allow custom builds that put everything inside a unique namespace that |
| 170 | +# can't conflict with default builds. |
| 171 | +set (${PROJ_NAME}_OUTER_NAMESPACE ${PROJECT_NAME} CACHE STRING |
| 172 | + "Customized outer namespace") |
| 173 | +set (PROJ_NAMESPACE "${${PROJ_NAME}_OUTER_NAMESPACE}") # synonym |
| 174 | +if (NOT ${PROJ_NAME}_OUTER_NAMESPACE STREQUAL ${PROJECT_NAME}) |
| 175 | + set (${PROJ_NAME}_CUSTOM_OUTER_NAMESPACE 1) |
176 | 176 | endif () |
177 | | -set (PROJ_NAMESPACE_V "${PROJ_NAMESPACE}_v${PROJECT_VERSION_MAJOR}_${PROJECT_VERSION_MINOR}") |
178 | | -if (${PROJ_NAME}_NAMESPACE_INCLUDE_PATCH) |
179 | | - set (PROJ_NAMESPACE_V "${PROJ_NAMESPACE_V}_${PROJECT_VERSION_PATCH}") |
| 177 | +# There is also an inner namespace that is either vMAJ_MIN or vMAJ_MIN_PATCH, |
| 178 | +# depending on the setting of ${PROJ_NAME}_INNER_NAMESPACE_INCLUDE_PATCH. |
| 179 | +option (${PROJ_NAME}_INNER_NAMESPACE_INCLUDE_PATCH |
| 180 | + "Should the inner namespace include the patch number" ${${PROJECT_NAME}_DEV_RELEASE}) |
| 181 | +if (${PROJ_NAME}_INNER_NAMESPACE_INCLUDE_PATCH) |
| 182 | + set (PROJ_VERSION_NAMESPACE "v${PROJECT_VERSION_MAJOR}_${PROJECT_VERSION_MINOR}_${PROJECT_VERSION_PATCH}") |
| 183 | +else () |
| 184 | + set (PROJ_VERSION_NAMESPACE "v${PROJECT_VERSION_MAJOR}_${PROJECT_VERSION_MINOR}") |
180 | 185 | endif () |
181 | | -message(STATUS "Setting Namespace to: ${PROJ_NAMESPACE_V}") |
| 186 | +# PROJ_NAMESPACE_V combines the outer and inner namespaces into one symbol |
| 187 | +set (PROJ_NAMESPACE_V "${PROJ_NAMESPACE}_${PROJ_VERSION_NAMESPACE}") |
| 188 | +message(STATUS "Outer namespace PROJ_OUTER_NAMESPACE: ${PROJ_NAMESPACE}") |
| 189 | +message(STATUS "Inner namespace PROJ_VERSION_NAMESPACE: ${PROJ_VERSION_NAMESPACE}") |
| 190 | +message(STATUS "Joint namespace PROJ_NAMESPACE_V: ${PROJ_NAMESPACE_V}") |
| 191 | + |
182 | 192 |
|
183 | 193 | # Define OSL_INTERNAL symbol only when building OSL itself, will not be |
184 | 194 | # defined for downstream projects using OSL. |
|
0 commit comments