Commit 2d3cc3ed by Vicent Marti

Merge pull request #2088 from scunz/cmake_path

Fixing #2017 and #2087
parents 66af8449 6e0ff093
...@@ -15,7 +15,7 @@ PROJECT(libgit2 C) ...@@ -15,7 +15,7 @@ PROJECT(libgit2 C)
CMAKE_MINIMUM_REQUIRED(VERSION 2.6) CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
# Add find modules to the path # Add find modules to the path
SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/") SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_LIST_DIR}/cmake/Modules/")
# Build options # Build options
# #
...@@ -202,8 +202,9 @@ IF (USE_ICONV) ...@@ -202,8 +202,9 @@ IF (USE_ICONV)
ENDIF() ENDIF()
IF (ICONV_FOUND) IF (ICONV_FOUND)
ADD_DEFINITIONS(-DGIT_USE_ICONV) ADD_DEFINITIONS(-DGIT_USE_ICONV)
INCLUDE_DIRECTORIES(${ICONV_INCLUDE_DIR})
IF(ICONV_LIBRARIES MATCHES "libiconv") IF(ICONV_LIBRARIES MATCHES "libiconv")
SET(LIBGIT2_PC_LIBS "${LIBGIT2_PC_LIBS} -liconv") SET(LIBGIT2_PC_LIBS "${LIBGIT2_PC_LIBS} ${ICONV_LIBRARIES}")
ELSE() ELSE()
SET(LIBGIT2_PC_REQUIRES "${LIBGIT2_PC_REQUIRES} iconv") SET(LIBGIT2_PC_REQUIRES "${LIBGIT2_PC_REQUIRES} iconv")
ENDIF() ENDIF()
......
...@@ -4,39 +4,40 @@ ...@@ -4,39 +4,40 @@
# ICONV_FOUND - system has Iconv # ICONV_FOUND - system has Iconv
# ICONV_INCLUDE_DIR - the Iconv include directory # ICONV_INCLUDE_DIR - the Iconv include directory
# ICONV_LIBRARIES - Link these to use Iconv # ICONV_LIBRARIES - Link these to use Iconv
# ICONV_SECOND_ARGUMENT_IS_CONST - the second argument for iconv() is const
# #
IF (ICONV_INCLUDE_DIR AND ICONV_LIBRARIES) IF(ICONV_INCLUDE_DIR AND ICONV_LIBRARIES)
# Already in cache, be silent # Already in cache, be silent
SET(ICONV_FIND_QUIETLY TRUE) SET(ICONV_FIND_QUIETLY TRUE)
ENDIF (ICONV_INCLUDE_DIR AND ICONV_LIBRARIES) ENDIF()
FIND_PATH(ICONV_INCLUDE_DIR iconv.h PATHS /opt/local/include NO_DEFAULT_PATH)
FIND_PATH(ICONV_INCLUDE_DIR iconv.h) FIND_PATH(ICONV_INCLUDE_DIR iconv.h)
FIND_LIBRARY(ICONV_LIBRARIES NAMES iconv libiconv libiconv-2 c PATH) FIND_LIBRARY(iconv_lib NAMES iconv libiconv libiconv-2 c NO_DEFAULT_PATH PATHS /opt/local/lib)
FIND_LIBRARY(iconv_lib NAMES iconv libiconv libiconv-2 c)
IF(ICONV_INCLUDE_DIR AND ICONV_LIBRARIES) IF(ICONV_INCLUDE_DIR AND iconv_lib)
SET(ICONV_FOUND TRUE) SET(ICONV_FOUND TRUE)
ENDIF(ICONV_INCLUDE_DIR AND ICONV_LIBRARIES) ENDIF()
set(CMAKE_REQUIRED_INCLUDES ${ICONV_INCLUDE_DIR})
set(CMAKE_REQUIRED_LIBRARIES ${ICONV_LIBRARIES})
set(CMAKE_REQUIRED_INCLUDES)
set(CMAKE_REQUIRED_LIBRARIES)
IF(ICONV_FOUND) IF(ICONV_FOUND)
# split iconv into -L and -l linker options, so we can set them for pkg-config
GET_FILENAME_COMPONENT(iconv_path ${iconv_lib} PATH)
GET_FILENAME_COMPONENT(iconv_name ${iconv_lib} NAME_WE)
STRING(REGEX REPLACE "^lib" "" iconv_name ${iconv_name})
SET(ICONV_LIBRARIES -L${iconv_path} -l${iconv_name})
IF(NOT ICONV_FIND_QUIETLY) IF(NOT ICONV_FIND_QUIETLY)
MESSAGE(STATUS "Found Iconv: ${ICONV_LIBRARIES}") MESSAGE(STATUS "Found Iconv: ${ICONV_LIBRARIES}")
ENDIF(NOT ICONV_FIND_QUIETLY) ENDIF(NOT ICONV_FIND_QUIETLY)
ELSE(ICONV_FOUND) ELSE()
IF(Iconv_FIND_REQUIRED) IF(Iconv_FIND_REQUIRED)
MESSAGE(FATAL_ERROR "Could not find Iconv") MESSAGE(FATAL_ERROR "Could not find Iconv")
ENDIF(Iconv_FIND_REQUIRED) ENDIF(Iconv_FIND_REQUIRED)
ENDIF(ICONV_FOUND) ENDIF()
MARK_AS_ADVANCED( MARK_AS_ADVANCED(
ICONV_INCLUDE_DIR ICONV_INCLUDE_DIR
ICONV_LIBRARIES ICONV_LIBRARIES
ICONV_SECOND_ARGUMENT_IS_CONST
) )
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment