# VERSION 1.2 ############# # CHANGES from 1.1 to 1.2: # - updated MARK_AS_ADVANCED to only display values in GUI if something was not found (correctly) # CHANGES from 1.0 to 1.1: # - added MARK_AS_ADVANCED to avoid listing of variables in Simple View (in GUI) # - renamed CHECK_XXX variables to XXX_CHECK to collect them in one group in Grouped View (in GUI) if (NOT FIND_HELPER_MACROS) # This macro provides commands for finding include directories and libraries MACRO (FIND_INCLUDE_DIR_MACRO XXX_NAME XXX_CAPITAL_NAME XXX_HEADER_FILE XXX_PREDEFINED_PATHS XXX_PREDEFINED_SUFFIXES) set (XXX_INCLUDE_DIR ${XXX_CAPITAL_NAME}_INCLUDE_DIR) set (CHECK_XXX_INCLUDE_DIR ${XXX_CAPITAL_NAME}_CHECK_INCLUDE_DIR) message (STATUS "Check for ${XXX_NAME} include directory: ${${XXX_INCLUDE_DIR}}") find_path (${XXX_INCLUDE_DIR} ${XXX_HEADER_FILE} PATHS ${${XXX_INCLUDE_DIR}} ${${XXX_PREDEFINED_PATHS}} PATH_SUFFIXES ${${XXX_PREDEFINED_SUFFIXES}}) find_file (${CHECK_XXX_INCLUDE_DIR} ${XXX_HEADER_FILE} PATHS ${${XXX_INCLUDE_DIR}}) MARK_AS_ADVANCED(${CHECK_XXX_INCLUDE_DIR}) if (NOT ${XXX_INCLUDE_DIR}) MARK_AS_ADVANCED(CLEAR ${XXX_INCLUDE_DIR}) elseif (NOT ${CHECK_XXX_INCLUDE_DIR}) MARK_AS_ADVANCED(CLEAR ${XXX_INCLUDE_DIR}) else (NOT ${XXX_INCLUDE_DIR}) MARK_AS_ADVANCED(FORCE ${XXX_INCLUDE_DIR}) message (STATUS "Check for ${XXX_NAME} include directory: ${${XXX_INCLUDE_DIR}}") endif (NOT ${XXX_INCLUDE_DIR}) ENDMACRO (FIND_INCLUDE_DIR_MACRO) MACRO (FIND_LIBRARY_MACRO XXX_NAME XXX_CAPITAL_NAME XXX_LIBRARY_NAME XXX_PREDEFINED_PATHS XXX_PREDEFINED_SUFFIXES) set (XXX_LIBRARY_FILE ${XXX_CAPITAL_NAME}_${XXX_LIBRARY_NAME}_LIBRARY) set (XXX_LIBRARY_DIR ${XXX_CAPITAL_NAME}_LIBRARY_DIR) set (XXX_LIBRARY_SPECIFIC_DIR ${XXX_CAPITAL_NAME}_${XXX_LIBRARY_NAME}_LIBRARY_DIR) # set (CHECK_XXX_LIBRARY_FILE ${XXX_CAPITAL_NAME}_CHECK_${XXX_LIBRARY_NAME}_LIBRARY) message (STATUS "Check for ${XXX_NAME} - ${XXX_LIBRARY_NAME} library: ${${XXX_LIBRARY_FILE}}") find_library (${XXX_LIBRARY_FILE} ${XXX_LIBRARY_NAME} PATHS ${${XXX_PREDEFINED_PATHS}} ${${XXX_LIBRARY_SPECIFIC_DIR}} ${${XXX_LIBRARY_DIR}} PATH_SUFFIXES ${${XXX_PREDEFINED_SUFFIXES}}) # find_file (${CHECK_XXX_LIBRARY_FILE} ${${XXX_LIBRARY_FILE}} # PATHS /) # MARK_AS_ADVANCED(${CHECK_XXX_LIBRARY_FILE}) if (NOT ${XXX_LIBRARY_FILE}) set (${XXX_LIBRARY_DIR} ${${XXX_LIBRARY_DIR}} CACHE PATH "Path to the ${XXX_NAME} libraries" FORCE) set (${XXX_LIBRARY_SPECIFIC_DIR} ${${XXX_LIBRARY_SPECIFIC_DIR}} CACHE PATH "Path to the ${XXX_LIBRARY_DIR} library" FORCE) MARK_AS_ADVANCED(CLEAR ${XXX_LIBRARY_FILE} ${XXX_LIBRARY_DIR} ${XXX_LIBRARY_SPECIFIC_DIR}) # elseif (NOT ${CHECK_XXX_LIBRARY_FILE}) # set (${XXX_LIBRARY_DIR} ${${XXX_LIBRARY_DIR}} CACHE PATH "Path to the ${XXX_NAME} libraries" FORCE) # set (${XXX_LIBRARY_SPECIFIC_DIR} ${${XXX_LIBRARY_SPECIFIC_DIR}} CACHE PATH "Path to the ${XXX_LIBRARY_DIR} library" FORCE) # MARK_AS_ADVANCED(CLEAR ${XXX_LIBRARY_FILE} ${XXX_LIBRARY_DIR} ${XXX_LIBRARY_SPECIFIC_DIR}) else (NOT ${XXX_LIBRARY_FILE}) MARK_AS_ADVANCED(FORCE ${XXX_LIBRARY_FILE} ${XXX_LIBRARY_DIR} ${XXX_LIBRARY_SPECIFIC_DIR}) message (STATUS "Check for ${XXX_NAME} - ${XXX_LIBRARY_NAME} library: ${${XXX_LIBRARY_FILE}}") endif (NOT ${XXX_LIBRARY_FILE}) ENDMACRO (FIND_LIBRARY_MACRO) MACRO (FIND_DIR_MACRO XXX_NAME XXX_DIR XXX_FILE XXX_PREDEFINED_PATHS XXX_PREDEFINED_SUFFIXES) set (CHECK_XXX_DIR ${XXX_DIR}_CHECK) message (STATUS "Check for ${XXX_NAME} directory: ${${XXX_DIR}}") find_path (${XXX_DIR} ${XXX_FILE} PATHS ${${XXX_DIR}} ${${XXX_PREDEFINED_PATHS}} PATH_SUFFIXES ${${XXX_PREDEFINED_SUFFIXES}}) find_file (${CHECK_XXX_DIR} ${XXX_FILE} PATHS ${${XXX_DIR}}) MARK_AS_ADVANCED(${CHECK_XXX_DIR}) if (NOT ${XXX_DIR}) MARK_AS_ADVANCED(CLEAR ${XXX_DIR}) elseif (NOT ${CHECK_XXX_DIR}) MARK_AS_ADVANCED(CLEAR ${XXX_DIR}) else (NOT ${XXX_DIR}) MARK_AS_ADVANCED(FORCE ${XXX_DIR}) message (STATUS "Check for ${XXX_NAME} directory: ${${XXX_DIR}}") endif (NOT ${XXX_DIR}) ENDMACRO (FIND_DIR_MACRO) SET (FIND_HELPER_MACROS ON) ENDIF (NOT FIND_HELPER_MACROS)