From 6f76fccfa5b57e571c0967b6397d88bef5923411 Mon Sep 17 00:00:00 2001 From: Gene VanMeter Date: Thu, 6 Apr 2023 08:40:07 -0400 Subject: [PATCH] Updated FindXCLIB to work on Linux --- cmake/modules/FindXCLIB.cmake | 57 +++++++++++++++++++++-------------- sys/pixci/gstpixcisrc.h | 4 +++ 2 files changed, 38 insertions(+), 23 deletions(-) diff --git a/cmake/modules/FindXCLIB.cmake b/cmake/modules/FindXCLIB.cmake index fa075bd..971a25b 100644 --- a/cmake/modules/FindXCLIB.cmake +++ b/cmake/modules/FindXCLIB.cmake @@ -8,44 +8,55 @@ # Redistribution and use is allowed according to the terms of the BSD license. # For details see the accompanying COPYING-CMAKE-SCRIPTS file. -# TODO: properly handle Linux - if (NOT XCLIB_DIR) - # 32-bit dir on win32 - file(TO_CMAKE_PATH "$ENV{ProgramFiles}" _PROG_FILES) - # 32-bit dir on win64 - set(_PROG_FILES_X86 "ProgramFiles(x86)") - file(TO_CMAKE_PATH "$ENV{${_PROG_FILES_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) - set(_PROGFILESDIR "${_PROG_FILES_X86}") + if (WIN32) + # 32-bit dir on win32 + file(TO_CMAKE_PATH "$ENV{ProgramFiles}" _PROG_FILES) + # 32-bit dir on win64 + set(_PROG_FILES_X86 "ProgramFiles(x86)") + file(TO_CMAKE_PATH "$ENV{${_PROG_FILES_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 () - set(_PROGFILESDIR "${_PROG_FILES}") + if (_PROG_FILES_X86) + set(_PROGFILESDIR "${_PROG_FILES_X86}") + else () + 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 (WIN32) + + if (UNIX) + find_path(XCLIB_DIR + "inc/xclibver.h" + HINTS + "/usr/local/xclib" + DOC "Directory containing EPIX PIXCI XCLIB includes and libraries") + endif (UNIX) endif (NOT XCLIB_DIR) find_path (XCLIB_INCLUDE_DIR xcliball.h - PATHS + HINTS "${XCLIB_DIR}" + "${XCLIB_DIR}/inc" DOC "Directory containing xcliball.h include file") if (CMAKE_SIZEOF_VOID_P MATCHES "8") - find_library (XCLIB_LIBRARIES NAMES XCLIBW64 - PATHS + find_library (XCLIB_LIBRARIES NAMES XCLIBW64 xclib_x86_64_pic.a xclib_aarch64_pic.a + HINTS "${XCLIB_DIR}" + "${XCLIB_DIR}/lib" DOC "XCLIB 64-bit library to link with") else () - find_library (XCLIB_LIBRARIES NAMES XCLIBWNT - PATHS + find_library (XCLIB_LIBRARIES NAMES XCLIBWNT xclib_i386_pic.a + HINTS "${XCLIB_DIR}" + "${XCLIB_DIR}/lib" DOC "XCLIB 32-bit library to link with") endif () diff --git a/sys/pixci/gstpixcisrc.h b/sys/pixci/gstpixcisrc.h index 8cd52ea..edf2c8f 100644 --- a/sys/pixci/gstpixcisrc.h +++ b/sys/pixci/gstpixcisrc.h @@ -22,7 +22,9 @@ #include +#ifdef WIN32 #include +#endif #include G_BEGIN_DECLS @@ -44,9 +46,11 @@ typedef struct _GstPixciSrcClass GstPixciSrcClass; * * Identifies the connector that the camera is connected to. */ +#ifndef __GNUC__ typedef enum { } GstPixciSrcConnector; +#endif typedef enum { GST_PIXCI_VIDEO_FORMAT_CCIR,