build: update Find cmake files to find 64-bit GStreamer

This commit is contained in:
Joshua M. Doe 2014-12-11 10:57:17 -05:00
parent a66d8ae243
commit 732e6a2d7e
6 changed files with 108 additions and 73 deletions

View File

@ -21,18 +21,24 @@ if (NOT WIN32)
pkg_check_modules(PKG_GLIB REQUIRED glib-2.0) pkg_check_modules(PKG_GLIB REQUIRED glib-2.0)
endif(NOT WIN32) endif(NOT WIN32)
if (CMAKE_SIZEOF_VOID_P MATCHES "8")
set(GSTREAMER_ROOT $ENV{GSTREAMER_1_0_ROOT_X86_64})
else ()
set(GSTREAMER_ROOT $ENV{GSTREAMER_1_0_ROOT_X86})
endif ()
find_path(GLIB2_MAIN_INCLUDE_DIR glib.h find_path(GLIB2_MAIN_INCLUDE_DIR glib.h
PATH_SUFFIXES glib-2.0 PATH_SUFFIXES glib-2.0
HINTS ${PKG_GLIB_INCLUDE_DIRS} ${PKG_GLIB_INCLUDEDIR} $ENV{GSTREAMER_1_0_ROOT_X86}/include) HINTS ${PKG_GLIB_INCLUDE_DIRS} ${PKG_GLIB_INCLUDEDIR} ${GSTREAMER_ROOT}/include)
# search the glibconfig.h include dir under the same root where the library is found # search the glibconfig.h include dir under the same root where the library is found
find_library(GLIB2_LIBRARIES find_library(GLIB2_LIBRARIES
NAMES glib-2.0 NAMES glib-2.0
HINTS ${PKG_GLIB_LIBRARY_DIRS} ${PKG_GLIB_LIBDIR} $ENV{GSTREAMER_1_0_ROOT_X86}/lib) HINTS ${PKG_GLIB_LIBRARY_DIRS} ${PKG_GLIB_LIBDIR} ${GSTREAMER_ROOT}/lib)
find_path(GLIB2_INTERNAL_INCLUDE_DIR glibconfig.h find_path(GLIB2_INTERNAL_INCLUDE_DIR glibconfig.h
PATH_SUFFIXES glib-2.0/include ../lib/glib-2.0/include PATH_SUFFIXES glib-2.0/include ../lib/glib-2.0/include
HINTS ${PKG_GLIB_INCLUDE_DIRS} ${PKG_GLIB_LIBRARIES} ${CMAKE_SYSTEM_LIBRARY_PATH} $ENV{GSTREAMER_1_0_ROOT_X86}/lib) HINTS ${PKG_GLIB_INCLUDE_DIRS} ${PKG_GLIB_LIBRARIES} ${CMAKE_SYSTEM_LIBRARY_PATH} ${GSTREAMER_ROOT}/lib)
set(GLIB2_INCLUDE_DIR ${GLIB2_MAIN_INCLUDE_DIR}) set(GLIB2_INCLUDE_DIR ${GLIB2_MAIN_INCLUDE_DIR})

View File

@ -28,9 +28,15 @@ IF (NOT WIN32)
SET(GOBJECT_DEFINITIONS ${PKG_GOBJECT2_CFLAGS}) SET(GOBJECT_DEFINITIONS ${PKG_GOBJECT2_CFLAGS})
ENDIF (NOT WIN32) ENDIF (NOT WIN32)
if (CMAKE_SIZEOF_VOID_P MATCHES "8")
set(GSTREAMER_ROOT $ENV{GSTREAMER_1_0_ROOT_X86_64})
else ()
set(GSTREAMER_ROOT $ENV{GSTREAMER_1_0_ROOT_X86})
endif ()
FIND_PATH(GOBJECT_INCLUDE_DIR gobject/gobject.h FIND_PATH(GOBJECT_INCLUDE_DIR gobject/gobject.h
HINTS ${PKG_GOBJECT2_INCLUDE_DIRS} ${PKG_GOBJECT2_INCLUDEDIR} HINTS ${PKG_GOBJECT2_INCLUDE_DIRS} ${PKG_GOBJECT2_INCLUDEDIR}
PATHS /usr/include/glib-2.0/ $ENV{GSTREAMER_1_0_ROOT_X86}/include PATHS /usr/include/glib-2.0/ ${GSTREAMER_ROOT}/include
PATH_SUFFIXES glib-2.0 PATH_SUFFIXES glib-2.0
) )
@ -38,25 +44,25 @@ FIND_LIBRARY(_GObjectLibs NAMES gobject-2.0
HINTS HINTS
${PKG_GOBJECT2_LIBRARY_DIRS} ${PKG_GOBJECT2_LIBRARY_DIRS}
${PKG_GOBJECT2_LIBDIR} ${PKG_GOBJECT2_LIBDIR}
$ENV{GSTREAMER_1_0_ROOT_X86}/lib ${GSTREAMER_ROOT}/lib
) )
FIND_LIBRARY(_GModuleLibs NAMES gmodule-2.0 FIND_LIBRARY(_GModuleLibs NAMES gmodule-2.0
HINTS HINTS
${PKG_GOBJECT2_LIBRARY_DIRS} ${PKG_GOBJECT2_LIBRARY_DIRS}
${PKG_GOBJECT2_LIBDIR} ${PKG_GOBJECT2_LIBDIR}
$ENV{GSTREAMER_1_0_ROOT_X86}/lib ${GSTREAMER_ROOT}/lib
) )
FIND_LIBRARY(_GThreadLibs NAMES gthread-2.0 FIND_LIBRARY(_GThreadLibs NAMES gthread-2.0
HINTS HINTS
${PKG_GOBJECT2_LIBRARY_DIRS} ${PKG_GOBJECT2_LIBRARY_DIRS}
${PKG_GOBJECT2_LIBDIR} ${PKG_GOBJECT2_LIBDIR}
$ENV{GSTREAMER_1_0_ROOT_X86}/lib ${GSTREAMER_ROOT}/lib
) )
FIND_LIBRARY(_GLibs NAMES glib-2.0 FIND_LIBRARY(_GLibs NAMES glib-2.0
HINTS HINTS
${PKG_GOBJECT2_LIBRARY_DIRS} ${PKG_GOBJECT2_LIBRARY_DIRS}
${PKG_GOBJECT2_LIBDIR} ${PKG_GOBJECT2_LIBDIR}
$ENV{GSTREAMER_1_0_ROOT_X86}/lib ${GSTREAMER_ROOT}/lib
) )
SET (GOBJECT_LIBRARIES ${_GObjectLibs} ${_GModuleLibs} ${_GThreadLibs} ${_GLibs}) SET (GOBJECT_LIBRARIES ${_GObjectLibs} ${_GModuleLibs} ${_GThreadLibs} ${_GLibs})

View File

@ -38,13 +38,19 @@ if (PKG_CONFIG_FOUND)
OUTPUT_VARIABLE PKG_GSTREAMER_PLUGIN_DIR) OUTPUT_VARIABLE PKG_GSTREAMER_PLUGIN_DIR)
endif() endif()
if (CMAKE_SIZEOF_VOID_P MATCHES "8")
set(GSTREAMER_ROOT $ENV{GSTREAMER_1_0_ROOT_X86_64})
else ()
set(GSTREAMER_ROOT $ENV{GSTREAMER_1_0_ROOT_X86})
endif ()
find_library(GSTREAMER_LIBRARY find_library(GSTREAMER_LIBRARY
NAMES gstreamer-${GSTREAMER_ABI_VERSION} NAMES gstreamer-${GSTREAMER_ABI_VERSION}
HINTS ${PKG_GSTREAMER_LIBRARY_DIRS} ${PKG_GSTREAMER_LIBDIR} $ENV{GSTREAMER_1_0_ROOT_X86}/lib) HINTS ${PKG_GSTREAMER_LIBRARY_DIRS} ${PKG_GSTREAMER_LIBDIR} ${GSTREAMER_ROOT}/lib)
find_path(GSTREAMER_INCLUDE_DIR find_path(GSTREAMER_INCLUDE_DIR
gst/gst.h gst/gst.h
HINTS ${PKG_GSTREAMER_INCLUDE_DIRS} ${PKG_GSTREAMER_INCLUDEDIR} $ENV{GSTREAMER_1_0_ROOT_X86}/include HINTS ${PKG_GSTREAMER_INCLUDE_DIRS} ${PKG_GSTREAMER_INCLUDEDIR} ${GSTREAMER_ROOT}/include
PATH_SUFFIXES gstreamer-${GSTREAMER_ABI_VERSION}) PATH_SUFFIXES gstreamer-${GSTREAMER_ABI_VERSION})
if (PKG_GSTREAMER_PLUGIN_DIR) if (PKG_GSTREAMER_PLUGIN_DIR)

View File

@ -6,45 +6,47 @@
# NIIMAQ_LIBRARIES - the libraries needed to use NI-IMAQ # NIIMAQ_LIBRARIES - the libraries needed to use NI-IMAQ
# Copyright (c) 2006, Tim Beaulen <tbscope@gmail.com> # Copyright (c) 2006, Tim Beaulen <tbscope@gmail.com>
# Copyright (c) 2010, United States Government, Joshua M. Doe <oss@nvl.army.mil> # Copyright (c) 2014, United States Government, Joshua M. Doe <oss@nvl.army.mil>
# #
# Redistribution and use is allowed according to the terms of the BSD license. # Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file. # For details see the accompanying COPYING-CMAKE-SCRIPTS file.
IF (NIIMAQ_INCLUDE_DIR AND NIIMAQ_LIBRARIES) if (NOT NIIMAQ_DIR)
# in cache already # 32-bit dir on win32
SET(NIIMAQ_FIND_QUIETLY TRUE) file(TO_CMAKE_PATH "$ENV{ProgramFiles}" _PROG_FILES)
ELSE (NIIMAQ_INCLUDE_DIR AND NIIMAQ_LIBRARIES) # 32-bit dir on win64
SET(NIIMAQ_FIND_QUIETLY FALSE) file(TO_CMAKE_PATH "$ENV{ProgramFiles(x86)}" _PROG_FILES_X86)
ENDIF (NIIMAQ_INCLUDE_DIR AND NIIMAQ_LIBRARIES) # 64-bit dir on win64
file(TO_CMAKE_PATH "$ENV{ProgramW6432}" _PROG_FILES_W6432)
IF (NOT NIIMAQ_DIR) # NI puts 64-bit lib in 32-bit Program Files directory
SET (NIIMAQ_DIR "C:/Program Files/National Instruments" CACHE PATH "Directory containing NI includes and libraries") if (_PROG_FILES_X86)
ENDIF (NOT NIIMAQ_DIR) set(_PROGFILESDIR "${_PROG_FILES_X86}")
else ()
set(_PROGFILESDIR "${_PROG_FILES}")
endif ()
FIND_PATH (NIIMAQ_INCLUDE_DIR niimaq.h set(NIIMAQ_DIR "${_PROGFILESDIR}/National Instruments" CACHE PATH "Top level National Instruments directory")
endif (NOT NIIMAQ_DIR)
find_path(NIIMAQ_INCLUDE_DIR niimaq.h
PATHS PATHS
"${NIIMAQ_DIR}/Shared/ExternalCompilerSupport/C/Include" "${NIIMAQ_DIR}/Shared/ExternalCompilerSupport/C/Include"
DOC "Directory containing niimaq.h include file") DOC "Directory containing niimaq.h include file")
FIND_LIBRARY (NIIMAQ_LIBRARIES NAMES imaq if (CMAKE_SIZEOF_VOID_P MATCHES "8")
find_library(NIIMAQ_LIBRARIES NAMES imaq
PATHS
"${NIIMAQ_DIR}/Shared/ExternalCompilerSupport/C/Lib64/MSVC"
DOC "niimaq library to link with")
else ()
find_library(NIIMAQ_LIBRARIES NAMES imaq
PATHS PATHS
"${NIIMAQ_DIR}/Shared/ExternalCompilerSupport/C/Lib32/MSVC" "${NIIMAQ_DIR}/Shared/ExternalCompilerSupport/C/Lib32/MSVC"
DOC "niimaq library to link with") DOC "niimaq library to link with")
endif ()
IF (NIIMAQ_INCLUDE_DIR) include(FindPackageHandleStandardArgs)
#MESSAGE(STATUS "DEBUG: Found NI-IMAQ include dir: ${NIIMAQ_INCLUDE_DIR}") find_package_handle_standard_args(NIIMAQ DEFAULT_MSG NIIMAQ_INCLUDE_DIR NIIMAQ_LIBRARIES)
ELSE (NIIMAQ_INCLUDE_DIR)
MESSAGE(STATUS "NI-IMAQ: WARNING: include dir not found")
ENDIF (NIIMAQ_INCLUDE_DIR)
IF (NIIMAQ_LIBRARIES) mark_as_advanced(NIIMAQ_INCLUDE_DIR NIIMAQ_LIBRARIES)
#MESSAGE(STATUS "DEBUG: Found NI-IMAQ library: ${NIIMAQ_LIBRARIES}")
ELSE (NIIMAQ_LIBRARIES)
MESSAGE(STATUS "NI-IMAQ: WARNING: library not found")
ENDIF (NIIMAQ_LIBRARIES)
INCLUDE (FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS (NIIMAQ DEFAULT_MSG NIIMAQ_INCLUDE_DIR NIIMAQ_LIBRARIES)
MARK_AS_ADVANCED(NIIMAQ_INCLUDE_DIR NIIMAQ_LIBRARIES)

View File

@ -8,50 +8,59 @@
# Redistribution and use is allowed according to the terms of the BSD license. # Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file. # For details see the accompanying COPYING-CMAKE-SCRIPTS file.
# TODO: properly handle 32-/64-bit differences, and Linux # TODO: properly handle Linux
IF (XCLIB_INCLUDE_DIR AND XCLIB_LIBRARIES) if (NOT XCLIB_DIR)
# in cache already # 32-bit dir on win32
SET(XCLIB_FIND_QUIETLY TRUE)
ELSE (XCLIB_INCLUDE_DIR AND XCLIB_LIBRARIES)
SET(XCLIB_FIND_QUIETLY FALSE)
ENDIF (XCLIB_INCLUDE_DIR AND XCLIB_LIBRARIES)
IF (NOT XCLIB_DIR)
file(TO_CMAKE_PATH "$ENV{ProgramFiles}" _PROG_FILES) file(TO_CMAKE_PATH "$ENV{ProgramFiles}" _PROG_FILES)
# 32-bit dir on win64
file(TO_CMAKE_PATH "$ENV{ProgramFiles(x86)}" _PROG_FILES_X86) file(TO_CMAKE_PATH "$ENV{ProgramFiles(x86)}" _PROG_FILES_X86)
# 64-bit dir on win64
file(TO_CMAKE_PATH "$ENV{ProgramW6432}" _PROG_FILES_W6432)
if (CMAKE_SIZEOF_VOID_P MATCHES "8")
set(_PROGFILESDIR "${_PROG_FILES_W6432}")
else ()
if (_PROG_FILES_X86) if (_PROG_FILES_X86)
set(_PROGFILESDIR "${_PROG_FILES_X86}") set(_PROGFILESDIR "${_PROG_FILES_X86}")
else () else ()
set(_PROGFILESDIR "${_PROG_FILES}") set(_PROGFILESDIR "${_PROG_FILES}")
endif () endif ()
endif ()
set (XCLIB_DIR "${_PROGFILESDIR}/EPIX/XCLIB" CACHE PATH "Directory containing EPIX PIXCI XCLIB includes and libraries") set (XCLIB_DIR "${_PROGFILESDIR}/EPIX/XCLIB" CACHE PATH "Directory containing EPIX PIXCI XCLIB includes and libraries")
ENDIF (NOT XCLIB_DIR) endif (NOT XCLIB_DIR)
FIND_PATH (XCLIB_INCLUDE_DIR xcliball.h find_path (XCLIB_INCLUDE_DIR xcliball.h
PATHS PATHS
"${XCLIB_DIR}" "${XCLIB_DIR}"
DOC "Directory containing xcliball.h include file") DOC "Directory containing xcliball.h include file")
FIND_LIBRARY (XCLIB_LIBRARIES NAMES XCLIBWNT if (CMAKE_SIZEOF_VOID_P MATCHES "8")
find_library (XCLIB_LIBRARIES NAMES XCLIBW64
PATHS PATHS
"${XCLIB_DIR}" "${XCLIB_DIR}"
DOC "XCLIB library to link with") DOC "XCLIB 64-bit library to link with")
else ()
find_library (XCLIB_LIBRARIES NAMES XCLIBWNT
PATHS
"${XCLIB_DIR}"
DOC "XCLIB 32-bit library to link with")
endif ()
IF (XCLIB_INCLUDE_DIR) if (XCLIB_INCLUDE_DIR)
#MESSAGE(STATUS "DEBUG: Found EPIX XCLIB include dir: ${XCLIB_INCLUDE_DIR}") #message(STATUS "DEBUG: Found EPIX XCLIB include dir: ${XCLIB_INCLUDE_DIR}")
ELSE (XCLIB_INCLUDE_DIR) else (XCLIB_INCLUDE_DIR)
MESSAGE(STATUS "XCLIB: WARNING: include dir not found") message(STATUS "XCLIB: WARNING: include dir not found")
ENDIF (XCLIB_INCLUDE_DIR) endif (XCLIB_INCLUDE_DIR)
IF (XCLIB_LIBRARIES) if (XCLIB_LIBRARIES)
#MESSAGE(STATUS "DEBUG: Found EPIX XCLIB library: ${XCLIB_LIBRARIES}") #message(STATUS "DEBUG: Found EPIX XCLIB library: ${XCLIB_LIBRARIES}")
ELSE (XCLIB_LIBRARIES) else (XCLIB_LIBRARIES)
MESSAGE(STATUS "XCLIB: WARNING: library not found") message(STATUS "XCLIB: WARNING: library not found")
ENDIF (XCLIB_LIBRARIES) endif (XCLIB_LIBRARIES)
INCLUDE (FindPackageHandleStandardArgs) include (FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS (XCLIB DEFAULT_MSG XCLIB_INCLUDE_DIR XCLIB_LIBRARIES) find_package_handle_standard_args (XCLIB DEFAULT_MSG XCLIB_INCLUDE_DIR XCLIB_LIBRARIES)
MARK_AS_ADVANCED(XCLIB_INCLUDE_DIR XCLIB_LIBRARIES) mark_as_advanced(XCLIB_INCLUDE_DIR XCLIB_LIBRARIES)

View File

@ -20,18 +20,24 @@ macro(find_gstreamer_library _name _header _abi_version)
pkg_check_modules(PKG_GSTREAMER_${_upper_name} gstreamer-${_lower_name}-${_abi_version}) pkg_check_modules(PKG_GSTREAMER_${_upper_name} gstreamer-${_lower_name}-${_abi_version})
endif() endif()
if (CMAKE_SIZEOF_VOID_P MATCHES "8")
set(GSTREAMER_ROOT $ENV{GSTREAMER_1_0_ROOT_X86_64})
else ()
set(GSTREAMER_ROOT $ENV{GSTREAMER_1_0_ROOT_X86})
endif ()
find_library(GSTREAMER_${_upper_name}_LIBRARY find_library(GSTREAMER_${_upper_name}_LIBRARY
NAMES gst${_lower_name}-${_abi_version} NAMES gst${_lower_name}-${_abi_version}
HINTS ${PKG_GSTREAMER_${_upper_name}_LIBRARY_DIRS} HINTS ${PKG_GSTREAMER_${_upper_name}_LIBRARY_DIRS}
${PKG_GSTREAMER_${_upper_name}_LIBDIR} ${PKG_GSTREAMER_${_upper_name}_LIBDIR}
$ENV{GSTREAMER_1_0_ROOT_X86}/lib ${GSTREAMER_ROOT}/lib
) )
find_path(GSTREAMER_${_upper_name}_INCLUDE_DIR find_path(GSTREAMER_${_upper_name}_INCLUDE_DIR
gst/${_lower_name}/${_header} gst/${_lower_name}/${_header}
HINTS ${PKG_GSTREAMER_${_upper_name}_INCLUDE_DIRS} HINTS ${PKG_GSTREAMER_${_upper_name}_INCLUDE_DIRS}
${PKG_GSTREAMER_${_upper_name}_INCLUDEDIR} ${PKG_GSTREAMER_${_upper_name}_INCLUDEDIR}
$ENV{GSTREAMER_1_0_ROOT_X86}/include ${GSTREAMER_ROOT}/include
PATH_SUFFIXES gstreamer-${_abi_version} PATH_SUFFIXES gstreamer-${_abi_version}
) )