FIND_PROGRAM(ICU_CONFIG NAMES icu-config) IF(ICU_CONFIG) SET(ICU_FOUND 1) ELSE(ICU_CONFIG) SET(ICU_FOUND 0) ENDIF(ICU_CONFIG) IF(ICU_FOUND) EXECUTE_PROCESS( COMMAND ${ICU_CONFIG} --cflags OUTPUT_VARIABLE ICU_CONFIG_CFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE RESULT_VARIABLE ICU_CONFIG_RESULT ) IF("${ICU_CONFIG_RESULT}" MATCHES "^0$") STRING(REGEX REPLACE " +" ";" ICU_CONFIG_CFLAGS "${ICU_CONFIG_CFLAGS}") # Look for -I options. SET(ICU_INCLUDE_DIRS) FOREACH(flag ${ICU_CONFIG_CFLAGS}) IF("${flag}" MATCHES "^-I") STRING(REGEX REPLACE "^-I" "" DIR "${flag}") FILE(TO_CMAKE_PATH "${DIR}" DIR) SET(ICU_INCLUDE_DIRS ${ICU_INCLUDE_DIRS} "${DIR}") ENDIF("${flag}" MATCHES "^-I") ENDFOREACH(flag) ELSE("${ICU_CONFIG_RESULT}" MATCHES "^0$") MESSAGE("Error running ${ICU_CONFIG}: [${ICU_CONFIG_RESULT}]") SET(ICU_FOUND 0) ENDIF("${ICU_CONFIG_RESULT}" MATCHES "^0$") ENDIF(ICU_FOUND) IF(ICU_FOUND) EXECUTE_PROCESS( COMMAND ${ICU_CONFIG} --ldflags OUTPUT_VARIABLE ICU_CONFIG_LDFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE RESULT_VARIABLE ICU_CONFIG_RESULT ) IF("${ICU_CONFIG_RESULT}" MATCHES "^0$") STRING(REGEX REPLACE " +" ";" ICU_CONFIG_LDFLAGS "${ICU_CONFIG_LDFLAGS}") # Look for -L flags for directories and -l flags for library names. SET(ICU_LIBRARY_DIRS) SET(ICU_LIBRARY_NAMES) FOREACH(flag ${ICU_CONFIG_LDFLAGS}) IF("${flag}" MATCHES "^-L") STRING(REGEX REPLACE "^-L" "" DIR "${flag}") FILE(TO_CMAKE_PATH "${DIR}" DIR) SET(ICU_LIBRARY_DIRS ${ICU_LIBRARY_DIRS} "${DIR}") ELSEIF("${flag}" MATCHES "^-l") STRING(REGEX REPLACE "^-l" "" NAME "${flag}") SET(ICU_LIBRARY_NAMES ${ICU_LIBRARY_NAMES} "${NAME}") ENDIF("${flag}" MATCHES "^-L") ENDFOREACH(flag) # Search for each library needed using the directories given. FOREACH(name ${ICU_LIBRARY_NAMES}) # Look for this library. FIND_LIBRARY(ICU_${name}_LIBRARY NAMES ${name} PATHS ${ICU_LIBRARY_DIRS} NO_DEFAULT_PATH ) FIND_LIBRARY(ICU_${name}_LIBRARY NAMES ${name}) MARK_AS_ADVANCED(ICU_${name}_LIBRARY) # If any library is not found then the whole package is not found. IF(NOT ICU_${name}_LIBRARY) SET(ICU_FOUND 0) ENDIF(NOT ICU_${name}_LIBRARY) # Build an ordered list of all the libraries needed. SET(ICU_LIBRARIES ${ICU_LIBRARIES} "${ICU_${name}_LIBRARY}") ENDFOREACH(name) ELSE("${ICU_CONFIG_RESULT}" MATCHES "^0$") MESSAGE("Error running ${ICU_CONFIG}: [${ICU_CONFIG_RESULT}]") SET(ICU_FOUND 0) ENDIF("${ICU_CONFIG_RESULT}" MATCHES "^0$") ENDIF(ICU_FOUND) # Report the results. IF(ICU_FOUND) MESSAGE(STATUS "Found ICU headers: ${ICU_INCLUDE_DIRS}") MESSAGE(STATUS "Found ICU libs: ${ICU_LIBRARIES}") ELSE(ICU_FOUND) SET(ICU_DIR_MESSAGE "ICU was not found.") IF(NOT ICU_FIND_QUIETLY) MESSAGE(STATUS "${ICU_DIR_MESSAGE}") ELSE(NOT ICU_FIND_QUIETLY) IF(ICU_FIND_REQUIRED) MESSAGE(FATAL_ERROR "${ICU_DIR_MESSAGE}") ENDIF(ICU_FIND_REQUIRED) ENDIF(NOT ICU_FIND_QUIETLY) ENDIF(ICU_FOUND)