HDFFV-10385 refactor CMAKE_BUILD_TYPE usage
This commit is contained in:
@@ -9,6 +9,37 @@
|
||||
# If you do not have access to either file, you may request a copy from
|
||||
# help@hdfgroup.org.
|
||||
#
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
macro (SET_HDF5_BUILD_TYPE)
|
||||
get_property(_isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
|
||||
if(_isMultiConfig)
|
||||
set(HDF5_BUILD_TYPE ${CMAKE_CFG_INTDIR})
|
||||
else()
|
||||
if(CMAKE_BUILD_TYPE)
|
||||
set(HDF5_BUILD_TYPE ${CMAKE_BUILD_TYPE})
|
||||
else()
|
||||
set(HDF5_BUILD_TYPE)
|
||||
endif()
|
||||
endif()
|
||||
endmacro ()
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
macro (CREATE_CONFIG_DIR path)
|
||||
get_property(_isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
|
||||
if(_isMultiConfig)
|
||||
foreach(c ${CMAKE_CONFIGURATION_TYPES} ${CMAKE_BUILD_TYPE})
|
||||
file(MAKE_DIRECTORY "${path}/${c}")
|
||||
endforeach()
|
||||
else()
|
||||
if(CMAKE_BUILD_TYPE)
|
||||
file(MAKE_DIRECTORY "${path}/${CMAKE_BUILD_TYPE}")
|
||||
else()
|
||||
file(MAKE_DIRECTORY "${path}")
|
||||
endif()
|
||||
endif()
|
||||
endmacro ()
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
macro (SET_GLOBAL_VARIABLE name value)
|
||||
set (${name} ${value} CACHE INTERNAL "Used to pass variables between directories" FORCE)
|
||||
@@ -145,7 +176,7 @@ macro (HDF_IMPORT_SET_LIB_OPTIONS libtarget libname libtype libversion)
|
||||
if (${importtype} MATCHES "IMPORT")
|
||||
set (importprefix "${CMAKE_STATIC_LIBRARY_PREFIX}")
|
||||
endif ()
|
||||
if (${CMAKE_BUILD_TYPE} MATCHES "Debug")
|
||||
if (${HDF5_BUILD_TYPE} MATCHES "Debug")
|
||||
set (IMPORT_LIB_NAME ${LIB_DEBUG_NAME})
|
||||
else ()
|
||||
set (IMPORT_LIB_NAME ${LIB_RELEASE_NAME})
|
||||
@@ -160,8 +191,8 @@ macro (HDF_IMPORT_SET_LIB_OPTIONS libtarget libname libtype libversion)
|
||||
)
|
||||
else ()
|
||||
set_target_properties (${libtarget} PROPERTIES
|
||||
IMPORTED_IMPLIB "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_BUILD_TYPE}/${CMAKE_IMPORT_LIBRARY_PREFIX}${IMPORT_LIB_NAME}${CMAKE_IMPORT_LIBRARY_SUFFIX}"
|
||||
IMPORTED_LOCATION "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_BUILD_TYPE}/${CMAKE_IMPORT_LIBRARY_PREFIX}${IMPORT_LIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}"
|
||||
IMPORTED_IMPLIB "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${HDF5_BUILD_TYPE}/${CMAKE_IMPORT_LIBRARY_PREFIX}${IMPORT_LIB_NAME}${CMAKE_IMPORT_LIBRARY_SUFFIX}"
|
||||
IMPORTED_LOCATION "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${HDF5_BUILD_TYPE}/${CMAKE_IMPORT_LIBRARY_PREFIX}${IMPORT_LIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}"
|
||||
)
|
||||
endif ()
|
||||
else ()
|
||||
@@ -181,7 +212,7 @@ macro (HDF_IMPORT_SET_LIB_OPTIONS libtarget libname libtype libversion)
|
||||
else ()
|
||||
if (WIN32 AND NOT MINGW)
|
||||
set_target_properties (${libtarget} PROPERTIES
|
||||
IMPORTED_LOCATION "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_BUILD_TYPE}/${IMPORT_LIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}"
|
||||
IMPORTED_LOCATION "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${HDF5_BUILD_TYPE}/${IMPORT_LIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}"
|
||||
IMPORTED_LINK_INTERFACE_LANGUAGES "C"
|
||||
)
|
||||
else ()
|
||||
|
||||
@@ -15,6 +15,14 @@
|
||||
#-------------------------------------------------------------------------------
|
||||
ENABLE_LANGUAGE (Fortran)
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# Fix Fortran flags if we are compiling staticly on Windows using
|
||||
# Windows_MT.cmake from config/cmake/UserMacros
|
||||
#-------------------------------------------------------------------------------
|
||||
if (BUILD_STATIC_CRT_LIBS)
|
||||
TARGET_STATIC_CRT_FLAGS ()
|
||||
endif ()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Detect name mangling convention used between Fortran and C
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user