Skip to content

Commit

Permalink
Merge pull request obsproject#254 from BtbN/cmake-fix
Browse files Browse the repository at this point in the history
CMake fixes for iconv and Freetype finding
jp9000 committed Aug 21, 2014

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
2 parents ffe74f5 + 5101ca8 commit 83853a3
Showing 14 changed files with 101 additions and 69 deletions.
1 change: 1 addition & 0 deletions cmake/Modules/FindAppKit.cmake
Original file line number Diff line number Diff line change
@@ -11,6 +11,7 @@ else()

set(AppKit_LIBRARIES ${APPKIT_FRAMEWORK} CACHE STRING "AppKit framework")

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(AppKit DEFAULT_MSG APPKIT_FRAMEWORK)
mark_as_advanced(APPKIT_FRAMEWORK)
endif()
2 changes: 1 addition & 1 deletion cmake/Modules/FindCXX11.cmake
Original file line number Diff line number Diff line change
@@ -13,7 +13,6 @@ if(CXX11_FLAGS)
endif()

include(CheckCXXSourceCompiles)
include(FindPackageHandleStandardArgs)

if(MSVC)
set(CXX11_FLAG_CANDIDATES
@@ -64,5 +63,6 @@ endforeach(FLAG ${CXX11_FLAG_CANDIDATES})

set(CXX11_FLAGS "${CXX11_FLAGS_INTERNAL}" CACHE STRING "C++11 Flags")

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(CXX11 DEFAULT_MSG CXX11_FLAGS)
mark_as_advanced(CXX11_FLAGS)
89 changes: 55 additions & 34 deletions cmake/Modules/FindFreetype.cmake
Original file line number Diff line number Diff line change
@@ -1,16 +1,12 @@
# Once done these will be defined:
#
# LIBFREETYPE_FOUND
# LIBFREETYPE_INCLUDE_DIRS
# LIBFREETYPE_LIBRARIES
#
# For use in OBS:
#
# FREETYPE_INCLUDE_DIR
# FREETYPE_FOUND
# FREETYPE_INCLUDE_DIRS
# FREETYPE_LIBRARIES
#

if(LIBFREETYPE_INCLUDE_DIRS AND LIBFREETYPE_LIBRARIES)
set(LIBFREETYPE_FOUND TRUE)
if(FREETYPE_INCLUDE_DIRS AND FREETYPE_LIBRARIES)
set(FREETYPE_FOUND TRUE)
else()
find_package(PkgConfig QUIET)
if (PKG_CONFIG_FOUND)
@@ -23,38 +19,63 @@ else()
set(_lib_suffix 32)
endif()

set(FREETYPE_PATH_ARCH FreetypePath${_lib_suffix})
find_path(FREETYPE_INCLUDE_DIR_ft2build
NAMES
ft2build.h
HINTS
${_FREETYPE_INCLUDE_DIRS}
"${CMAKE_SOURCE_DIR}/additional_install_files/include"
"$ENV{obsAdditionalInstallFiles}/include"
ENV FreetypePath${_lib_suffix}
ENV FreetypePath
ENV FREETYPE_DIR
PATHS
/usr/include /usr/local/include /opt/local/include /sw/include
PATH_SUFFIXES
include/freetype2 include)

if (NOT _FREETYPE_INCLUDE_DIRS STREQUAL "")
set (FREETYPE_INCLUDE_DIR ${_FREETYPE_INCLUDE_DIRS})
else()
find_path(FREETYPE_INCLUDE_DIR
NAMES ft2build.h
HINTS
${_FREETYPE_INCLUDE_DIRS}
"${CMAKE_SOURCE_DIR}/additional_install_files/include"
"$ENV{obsAdditionalInstallFiles}/include"
ENV FreetypePath
ENV ${FREETYPE_PATH_ARCH}
PATHS
/usr/include /usr/local/include /opt/local/include /sw/include)
endif()
find_path(FREETYPE_INCLUDE_DIR_freetype2
NAMES
freetype/config/ftheader.h
config/ftheader.h
HINTS
${_FREETYPE_INCLUDE_DIRS}
"${CMAKE_SOURCE_DIR}/additional_install_files/include"
"$ENV{obsAdditionalInstallFiles}/include"
ENV FreetypePath${_lib_suffix}
ENV FreetypePath
ENV FREETYPE_DIR
PATHS
/usr/include /usr/local/include /opt/local/include /sw/include
PATH_SUFFIXES
include/freetype2 include)

find_library(FREETYPE_LIB
NAMES ${_FREETYPE_LIBRARIES} freetype libfreetype
HINTS
${_FREETYPE_LIBRARY_DIRS}
"${FREETYPE_INCLUDE_DIR}/../lib"
"${FREETYPE_INCLUDE_DIR}/../lib${_lib_suffix}"
"${FREETYPE_INCLUDE_DIR}/../libs${_lib_suffix}"
"${FREETYPE_INCLUDE_DIR}/lib"
"${FREETYPE_INCLUDE_DIR}/lib${_lib_suffix}"
"${FREETYPE_INCLUDE_DIR_ft2build}/../lib"
"${FREETYPE_INCLUDE_DIR_ft2build}/../lib${_lib_suffix}"
"${FREETYPE_INCLUDE_DIR_ft2build}/../libs${_lib_suffix}"
"${FREETYPE_INCLUDE_DIR_ft2build}/lib"
"${FREETYPE_INCLUDE_DIR_ft2build}/lib${_lib_suffix}"
ENV FREETYPE_DIR
PATHS
/usr/lib /usr/local/lib /opt/local/lib /sw/lib)
/usr/lib /usr/local/lib /opt/local/lib /sw/lib
PATH_SUFFIXES
lib${_lib_suffix} lib)

if(FREETYPE_INCLUDE_DIR_ft2build AND FREETYPE_INCLUDE_DIR_freetype2)
set(FREETYPE_INCLUDE_DIR "${FREETYPE_INCLUDE_DIR_ft2build};${FREETYPE_INCLUDE_DIR_freetype2}")
list(REMOVE_DUPLICATES FREETYPE_INCLUDE_DIR)
else()
unset(FREETYPE_INCLUDE_DIR)
endif()

set(LIBFREETYPE_INCLUDE_DIRS ${FREETYPE_INCLUDE_DIR} CACHE PATH "freetype include dir")
set(LIBFREETYPE_LIBRARIES ${FREETYPE_LIB} CACHE STRING "freetype libraries")
set(FREETYPE_INCLUDE_DIRS ${FREETYPE_INCLUDE_DIR} CACHE PATH "freetype include dirs")
set(FREETYPE_LIBRARIES ${FREETYPE_LIB} CACHE STRING "freetype libraries")

find_package_handle_standard_args(Libfreetype DEFAULT_MSG FREETYPE_LIB FREETYPE_INCLUDE_DIR)
mark_as_advanced(FREETYPE_INCLUDE_DIR FREETYPE_LIB)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Freetype DEFAULT_MSG FREETYPE_LIB FREETYPE_INCLUDE_DIR_ft2build FREETYPE_INCLUDE_DIR_freetype2)
mark_as_advanced(FREETYPE_INCLUDE_DIR FREETYPE_INCLUDE_DIR_ft2build FREETYPE_INCLUDE_DIR_freetype2 FREETYPE_LIB)
endif()
27 changes: 12 additions & 15 deletions cmake/Modules/Findiconv.cmake → cmake/Modules/FindIconv.cmake
Original file line number Diff line number Diff line change
@@ -1,16 +1,12 @@
# Once done these will be defined:
#
# LIBICONV_FOUND
# LIBICONV_INCLUDE_DIRS
# LIBICONV_LIBRARIES
#
# For use in OBS:
#
# ICONV_INCLUDE_DIR
# ICONV_FOUND
# ICONV_INCLUDE_DIRS
# ICONV_LIBRARIES
#

if(LIBICONV_INCLUDE_DIRS AND LIBICONV_LIBRARIES)
set(LIBICONV_FOUND TRUE)
if(ICONV_INCLUDE_DIRS AND ICONV_LIBRARIES)
set(ICONV_FOUND TRUE)
else()
find_package(PkgConfig QUIET)
if (PKG_CONFIG_FOUND)
@@ -23,15 +19,15 @@ else()
set(_lib_suffix 32)
endif()

set(ICONV_PATH_ARCH IConvPath${_lib_suffix})
set(ICONV_PATH_ARCH IconvPath${_lib_suffix})

find_path(ICONV_INCLUDE_DIR
NAMES iconv.h
HINTS
${_ICONV_INCLUDE_DIRS}
"${CMAKE_SOURCE_DIR}/additional_install_files/include"
"$ENV{obsAdditionalInstallFiles}/include"
ENV IConvPath
ENV IconvPath
ENV ${ICONV_PATH_ARCH}
PATHS
/usr/include /usr/local/include /opt/local/include /sw/include)
@@ -40,17 +36,18 @@ else()
NAMES ${_ICONV_LIBRARIES} iconv libiconv
HINTS
${_ICONV_LIBRARY_DIRS}
"${ICONV_INCLUDE_DIR}/../lib"
"${ICONV_INCLUDE_DIR}/../lib${_lib_suffix}"
"${ICONV_INCLUDE_DIR}/../lib"
"${ICONV_INCLUDE_DIR}/../libs${_lib_suffix}"
"${ICONV_INCLUDE_DIR}/lib"
"${ICONV_INCLUDE_DIR}/lib${_lib_suffix}"
PATHS
/usr/lib /usr/local/lib /opt/local/lib /sw/lib)

set(LIBICONV_INCLUDE_DIRS ${ICONV_INCLUDE_DIR} CACHE PATH "iconv include dir")
set(LIBICONV_LIBRARIES ${ICONV_LIB} CACHE STRING "iconv libraries")
set(ICONV_INCLUDE_DIRS ${ICONV_INCLUDE_DIR} CACHE PATH "iconv include dir")
set(ICONV_LIBRARIES ${ICONV_LIB} CACHE STRING "iconv libraries")

find_package_handle_standard_args(Libiconv DEFAULT_MSG ICONV_LIB ICONV_INCLUDE_DIR)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Iconv DEFAULT_MSG ICONV_LIB ICONV_INCLUDE_DIR)
mark_as_advanced(ICONV_INCLUDE_DIR ICONV_LIB)
endif()
1 change: 1 addition & 0 deletions cmake/Modules/FindJansson.cmake
Original file line number Diff line number Diff line change
@@ -61,6 +61,7 @@ else()
set(JANSSON_LIBRARIES ${Jansson_LIB} CACHE STRING "Jansson libraries")
set(JANSSON_VERSION "${_JANSSON_VERSION_STRING}" CACHE STRING "Jansson version")

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Jansson
FOUND_VAR JANSSON_FOUND
REQUIRED_VARS Jansson_LIB Jansson_INCLUDE_DIR
1 change: 1 addition & 0 deletions cmake/Modules/FindLibavcodec.cmake
Original file line number Diff line number Diff line change
@@ -52,6 +52,7 @@ else()
set(LIBAVCODEC_INCLUDE_DIRS ${FFMPEG_INCLUDE_DIR} CACHE PATH "Libavcodec include dir")
set(LIBAVCODEC_LIBRARIES ${AVCODEC_LIB} CACHE STRING "Libavcodec libraries")

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Libavcodec DEFAULT_MSG AVCODEC_LIB FFMPEG_INCLUDE_DIR)
mark_as_advanced(FFMPEG_INCLUDE_DIR AVCODEC_LIB)
endif()
1 change: 1 addition & 0 deletions cmake/Modules/FindLibavformat.cmake
Original file line number Diff line number Diff line change
@@ -48,6 +48,7 @@ else()
set(LIBAVFORMAT_INCLUDE_DIRS ${FFMPEG_INCLUDE_DIR} CACHE PATH "Libavformat include dir")
set(LIBAVFORMAT_LIBRARIES ${AVFORMAT_LIB} CACHE STRING "Libavformat libraries")

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Libavformat DEFAULT_MSG AVFORMAT_LIB FFMPEG_INCLUDE_DIR)
mark_as_advanced(FFMPEG_INCLUDE_DIR AVFORMAT_LIB)
endif()
1 change: 1 addition & 0 deletions cmake/Modules/FindLibavutil.cmake
Original file line number Diff line number Diff line change
@@ -48,6 +48,7 @@ else()
set(LIBAVUTIL_INCLUDE_DIRS ${FFMPEG_INCLUDE_DIR} CACHE PATH "Libavutil include dir")
set(LIBAVUTIL_LIBRARIES ${AVUTIL_LIB} CACHE STRING "Libavutil libraries")

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Libavutil DEFAULT_MSG AVUTIL_LIB FFMPEG_INCLUDE_DIR)
mark_as_advanced(FFMPEG_INCLUDE_DIR AVUTIL_LIB)
endif()
1 change: 1 addition & 0 deletions cmake/Modules/FindLibfdk.cmake
Original file line number Diff line number Diff line change
@@ -54,6 +54,7 @@ else()
set(LIBFDK_INCLUDE_DIRS ${Libfdk_INCLUDE_DIR} CACHE PATH "Libfdk include dir")
set(LIBFDK_LIBRARIES ${Libfdk_LIB} CACHE STRING "Libfdk libraries")

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Libfdk DEFAULT_MSG Libfdk_LIB Libfdk_INCLUDE_DIR)
mark_as_advanced(Libfdk_INCLUDE_DIR Libfdk_LIB)
endif()
1 change: 1 addition & 0 deletions cmake/Modules/FindLibswresample.cmake
Original file line number Diff line number Diff line change
@@ -48,6 +48,7 @@ else()
set(LIBSWRESAMPLE_INCLUDE_DIRS ${FFMPEG_INCLUDE_DIR} CACHE PATH "Libswresample include dir")
set(LIBSWRESAMPLE_LIBRARIES ${SWRESAMPLE_LIB} CACHE STRING "Libswresample libraries")

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Libswresample DEFAULT_MSG SWRESAMPLE_LIB FFMPEG_INCLUDE_DIR)
mark_as_advanced(FFMPEG_INCLUDE_DIR SWRESAMPLE_LIB)
endif()
1 change: 1 addition & 0 deletions cmake/Modules/FindLibswscale.cmake
Original file line number Diff line number Diff line change
@@ -48,6 +48,7 @@ else()
set(LIBSWSCALE_INCLUDE_DIRS ${FFMPEG_INCLUDE_DIR} CACHE PATH "Libswscale include dir")
set(LIBSWSCALE_LIBRARIES ${SWSCALE_LIB} CACHE STRING "Libswscale libraries")

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Libswscale DEFAULT_MSG SWSCALE_LIB FFMPEG_INCLUDE_DIR)
mark_as_advanced(FFMPEG_INCLUDE_DIR SWSCALE_LIB)
endif()
13 changes: 9 additions & 4 deletions cmake/Modules/FindLibv4l2.cmake
Original file line number Diff line number Diff line change
@@ -15,19 +15,24 @@ else()

find_path(V4L2_INCLUDE_DIR
NAMES libv4l2.h
HINTS ${_V4L2_INCLUDE_DIRS} /usr/include /usr/local/include
/opt/local/include)
HINTS
${_V4L2_INCLUDE_DIRS}
PATHS
/usr/include /usr/local/include /opt/local/include)

find_library(V4L2_LIB
NAMES v4l2
HINTS ${_V4L2_LIBRARY_DIRS} /usr/lib /usr/local/lib
/opt/local/lib)
HINTS
${_V4L2_LIBRARY_DIRS}
PATHS
/usr/lib /usr/local/lib /opt/local/lib)

set(LIBV4L2_INCLUDE_DIRS ${V4L2_INCLUDE_DIR}
CACHE PATH "v4l2 include dir")
set(LIBV4L2_LIBRARIES "${V4L2_LIB}"
CACHE STRING "v4l2 libraries")

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(LibV4L2 DEFAULT_MSG V4L2_LIB
V4L2_INCLUDE_DIR)
mark_as_advanced(V4L2_INCLUDE_DIR V4L2_LIB)
1 change: 1 addition & 0 deletions cmake/Modules/FindLibx264.cmake
Original file line number Diff line number Diff line change
@@ -54,6 +54,7 @@ else()
set(LIBX264_INCLUDE_DIRS ${X264_INCLUDE_DIR} CACHE PATH "x264 include dir")
set(LIBX264_LIBRARIES ${X264_LIB} CACHE STRING "x264 libraries")

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Libx264 DEFAULT_MSG X264_LIB X264_INCLUDE_DIR)
mark_as_advanced(X264_INCLUDE_DIR X264_LIB)
endif()
30 changes: 15 additions & 15 deletions plugins/text-freetype2/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
project(text-freetype2)

find_package(Freetype QUIET)
if(NOT LIBFREETYPE_FOUND)
if(NOT FREETYPE_FOUND)
message(STATUS "Freetype library not found, Freetype text plugin disabled")
return()
endif()

if(APPLE)
find_package(iconv QUIET)
if(NOT LIBICONV_FOUND)
message(STATUS "IConv library not found, Freetype text plugin disabled")
find_package(Iconv QUIET)
if(NOT ICONV_FOUND)
message(STATUS "Iconv library not found, Freetype text plugin disabled")
return()
endif()

@@ -20,11 +20,11 @@ if(APPLE)
find-font-iconv.c)

include_directories(${COCOA}
${LIBICONV_INCLUDE_DIRS})
${ICONV_INCLUDE_DIRS})

set(text-freetype2_PLATFORM_DEPS
${COCOA}
${LIBICONV_LIBRARIES})
${ICONV_LIBRARIES})

set_source_files_properties(find-font-cocoa.m
PROPERTIES LANGUAGE C)
@@ -35,20 +35,19 @@ else()
message(STATUS "Linux-specific code has yet to be written for the text plugin, just needs load_os_font_list written.. which, er, may or may not be a pain. (My apologies in advance, please don't strangle me)")
return()

find_package(iconv QUIET)
if(NOT LIBICONV_FOUND)
message(STATUS "IConv library not found, Freetype text plugin disabled")
find_package(Iconv QUIET)
if(NOT ICONV_FOUND)
message(STATUS "Iconv library not found, Freetype text plugin disabled")
return()
endif()

set(text-freetype2_PLATFORM_SOURCES
find-font-iconv.c)

include_directories(${LIBICONV_INCLUDE_DIR})
include_directories(${ICONV_INCLUDE_DIR})
endif()

include_directories(${LIBFREETYPE_INCLUDE_DIRS})
add_definitions(${LIBFREETYPE_DEFINITIONS})
include_directories(${FREETYPE_INCLUDE_DIRS})

set(text-freetype2_SOURCES
find-font.h
@@ -65,9 +64,10 @@ add_library(text-freetype2 MODULE
target_link_libraries(text-freetype2
libobs
${text-freetype2_PLATFORM_DEPS}
${LIBFREETYPE_LIBRARIES})
if(UNIX AND LIBICONV_FOUND)
target_link_libraries(text-freetype2 ${LIBICONV_LIBRARIES})
${FREETYPE_LIBRARIES})

if(UNIX AND ICONV_FOUND)
target_link_libraries(text-freetype2 ${ICONV_LIBRARIES})
endif()

install_obs_plugin_with_data(text-freetype2 data)

0 comments on commit 83853a3

Please sign in to comment.