CGII/framework/cmake/unix/plotConfig.cmake
2018-05-17 16:01:02 +02:00

229 lines
6.9 KiB
CMake

####### Expanded from @PACKAGE_INIT@ by configure_package_config_file() #######
####### Any changes to this file will be overwritten by the next CMake run ####
####### The input file was PkgLibConfig.cmake.in ########
get_filename_component(PACKAGE_PREFIX_DIR "${CMAKE_CURRENT_LIST_DIR}/../../../" ABSOLUTE)
macro(set_and_check _var _file)
set(${_var} "${_file}")
if(NOT EXISTS "${_file}")
message(FATAL_ERROR "File or directory ${_file} referenced by variable ${_var} does not exist !")
endif()
endmacro()
macro(check_required_components _NAME)
foreach(comp ${${_NAME}_FIND_COMPONENTS})
if(NOT ${_NAME}_${comp}_FOUND)
if(${_NAME}_FIND_REQUIRED_${comp})
set(${_NAME}_FOUND FALSE)
endif()
endif()
endforeach()
endmacro()
####################################################################################
find_package(cgv COMPONENTS cgv_utils cgv_type cgv_reflect cgv_data cgv_base cgv_media cgv_os cgv_gui cgv_render)
set(FIND_NAMES cgv)
set(plot_INCLUDE_DIR "" "")
set(plot_LIBRARIES "")
set(plot_SHARED_DEFINITIONS "")
set(plot_STATIC_DEFINITIONS "")
set(plot_COMMON_DEFINITIONS "")
set(plot_IS_MODULE )
# Append the found information to our local information if possible
foreach(fn ${FIND_NAMES})
if (NOT ${fn}_FOUND)
string(TOUPPER ${fn} fn)
endif()
if (NOT ${fn}_FOUND)
string(TOLOWER ${fn} fn)
endif()
if (${fn}_FOUND)
# Try to append the include directories with different names
list(APPEND plot_INCLUDE_DIR
${${fn}_INCLUDE_DIR}
${${fn}_INCLUDE_DIRS}
${${fn}_INCLUDE_PATH}
${${fn}_INCLUDES}
"")
# Try to append the library names with different names
list(APPEND plot_LIBRARIES
${${fn}_LIBRARIES}
${${fn}_LIBRARY}
"")
# Try to append the definitions
list(APPEND plot_SHARED_DEFINITIONS ${${fn}_SHARED_DEFINITIONS} "")
list(APPEND plot_STATIC_DEFINITIONS ${${fn}_STATIC_DEFINITIONS} "")
list(APPEND plot_COMMON_DEFINITIONS ${${fn}_COMMON_DEFINITIONS} "")
endif()
endforeach()
#list(APPEND plot_INCLUDE_DIR "")
if (EXISTS "/home/hodasemi/Documents/Workspace/CGII/framework/cgv/libs/plot")
list(APPEND plot_INCLUDE_DIR "/home/hodasemi/Documents/Workspace/CGII/framework/cgv/libs/plot")
list(APPEND plot_INCLUDE_DIR "/home/hodasemi/Documents/Workspace/CGII/framework/cgv/libs/plot/..")
else()
list(APPEND plot_INCLUDE_DIR "${PACKAGE_PREFIX_DIR}/framework/include/libs")
list(APPEND plot_INCLUDE_DIR "${PACKAGE_PREFIX_DIR}/framework/include/libs/plot")
endif()
# Remove duplicates from the include dirs
list(REMOVE_DUPLICATES plot_INCLUDE_DIR)
# For compatibility also set the plot_INCLUDE_DIR and plot_INCLUDE_PATH variable
set(plot_INCLUDE_DIRS "${plot_INCLUDE_DIR}")
set(plot_INCLUDES "${plot_INCLUDE_DIR}")
set(plot_INCLUDE_PATH "${plot_INCLUDE_DIR}")
# Make a list of all configurations
set(CONFIGS "")
foreach(conf ${CMAKE_CONFIGURATION_TYPES})
string(TOUPPER "${conf}" UPPER_CONF)
list(APPEND CONFIGS "${UPPER_CONF}")
endforeach()
# On unix systems the CMAKE_CONFIGURATION_TYPES variable is not set
if (NOT CONFIGS)
set(CONFIGS RELEASE DEBUG)
endif()
# Construct the library names
if (BUILD_SHARED_LIBS)
set(plot_OUTPUT_NAME_RELEASE "plot")
set(plot_OUTPUT_NAME_DEBUG "plot_d")
if (plot_IS_MODULE)
set(TARGET_POSTFIX "MODULE")
else()
set(TARGET_POSTFIX "SHARED")
endif()
else()
set(plot_OUTPUT_NAME_RELEASE "plot_static")
set(plot_OUTPUT_NAME_DEBUG "plot_static_d")
set(TARGET_POSTFIX "STATIC")
endif()
# See if we can go the easy way when our dependency is also a target to be built
if (TARGET plot)
set(plot_LIBRARIES plot)
set(plot_FOUND TRUE)
endif()
# See if the imported target already exists
if (TARGET plot_IMPORTED_${TARGET_POSTFIX})
set(plot_LIBRARIES plot_IMPORTED_${TARGET_POSTFIX})
set(plot_FOUND TRUE)
endif()
# If our variable is not set then we generate a new target
# where we collect names for every configuration
if (NOT plot_FOUND)
set(FIND_PATHS "${PACKAGE_PREFIX_DIR}/framework/lib/unix"
"${PACKAGE_PREFIX_DIR}/framework/bin/unix"
"${PACKAGE_PREFIX_DIR}/build/bin/unix"
"${PACKAGE_PREFIX_DIR}/build/lib/unix")
# Try to find libraries for all configurations
if (plot_IS_MODULE AND BUILD_SHARED_LIBS AND WIN32)
foreach(conf ${CONFIGS})
find_file(plot_LIB_${conf} ${plot_OUTPUT_NAME_${conf}}.dll PATHS ${FIND_PATHS})
endforeach()
else()
foreach(conf ${CONFIGS})
find_library(plot_LIB_${conf} ${plot_OUTPUT_NAME_${conf}} PATHS ${FIND_PATHS})
endforeach()
endif()
# Check if all library types could be found
set(ALL_LIBS_FOUND TRUE)
foreach(conf ${CONFIGS})
if (NOT plot_LIB_${conf})
set(ALL_LIBS_FOUND FALSE)
break()
endif()
endforeach()
# If some libraries could not be found then substitute their name with the
# first library name that could be found
if (NOT ALL_LIBS_FOUND)
set(FIRST_FOUND_NAME FALSE)
foreach(conf ${CONFIGS})
if(plot_LIB_${conf})
set(FIRST_FOUND_NAME ${plot_LIB_${conf}})
break()
endif()
endforeach()
# If no library was found then we failed
if (NOT FIRST_FOUND_NAME)
# FIXME: add better error handling here
message(FATAL_ERROR "Could not find library plot")
set(plot_FOUND FALSE)
return()
endif()
# Set all library names that were not found
foreach(conf ${CONFIGS})
if(NOT plot_LIB_${conf})
set(plot_LIB_${conf} ${FIRST_FOUND_NAME})
endif()
endforeach()
endif()
# Generate an imported target which each location for different configurations set accordingly
add_library(plot_IMPORTED_${TARGET_POSTFIX} ${TARGET_POSTFIX} IMPORTED GLOBAL)
foreach(conf ${CONFIGS})
set_target_properties(plot_IMPORTED_${TARGET_POSTFIX} PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES_${conf} "CXX"
IMPORTED_LINK_INTERFACE_LIBRARIES_${conf} "${plot_LIBRARIES}"
IMPORTED_LOCATION_${conf} "${plot_LIB_${conf}}"
IMPORTED_IMPLIB_${conf} "${plot_LIB_${conf}}")
endforeach()
# Also add definitions if no build type was specified. Set this to be the release type
set_target_properties(plot_IMPORTED_${TARGET_POSTFIX} PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
IMPORTED_LINK_INTERFACE_LIBRARIES "${plot_LIBRARIES}"
IMPORTED_LOCATION "${plot_LIB_RELEASE}"
IMPORTED_IMPLIB "${plot_LIB_RELEASE}")
# Finally set the libraries info to be exported
set(plot_LIBRARIES "plot_IMPORTED_${TARGET_POSTFIX}")
set(plot_FOUND TRUE)
endif()
# Set definitions
set(plot_NEW_SHARED_DEFINITIONS "UNICODE;_UNICODE;PLOT_EXPORTS")
set(plot_NEW_STATIC_DEFINITIONS "UNICODE;_UNICODE;PLOT_FORCE_STATIC;CGV_FORCE_STATIC")
set(plot_NEW_COMMON_DEFINITIONS "UNICODE;_UNICODE;PLOT_FORCE_STATIC;CGV_FORCE_STATIC")
list(APPEND plot_COMMON_DEFINITIONS "${plot_NEW_COMMON_DEFINITIONS}")
list(APPEND plot_STATIC_DEFINITIONS "${plot_COMMON_DEFINITIONS}${plot_NEW_STATIC_DEFINITIONS}")
list(REMOVE_DUPLICATES plot_COMMON_DEFINITIONS)
list(REMOVE_DUPLICATES plot_STATIC_DEFINITIONS)
if (BUILD_SHARED_LIBS)
set(plot_DEFINITIONS "${plot_COMMON_DEFINITIONS};${plot_NEW_SHARED_DEFINITIONS}")
else()
set(plot_DEFINITIONS "${plot_STATIC_DEFINITIONS}")
endif()