Trying to build freerdp from git-head, I ended up needing the first two
of the attached patches. Now I am stuck with cmake:

[ 92%] Building C object client/common/CMakeFiles/freerdp-client.dir/cmdline.c.o
Linking C shared library libfreerdp-client.so
ld: cannot find -lgstreamer-0.10
ld: cannot find -lgobject-2.0
...

I have tried to improve matters with the third patch:

-include_directories(${GSTREAMER_INCLUDE_DIRS})
+include_directories(${GSTREAMER_INCLUDE_DIRS} ${X11_INCLUDE_DIR})

means that X11/Xlib.h is found, and the addition of GSTREAMER_LIBRARY_DIRS
and

+message(STATUS "gstreamer_library_dirs=${GSTREAMER_LIBRARY_DIRS}")

show that GSTREAMER_LIBRARY_DIRS is correctly set to /usr/pkg/lib.

I thought that

+link_directories(${GSTREAMER_LIBRARY_DIRS})

would be all that it took to fix, but apparently not. (What exactly is
set_complex_link_libraries() meant to do?)

Comments?

Cheers,

Patrick
>From 79db1298bc38bc02d7acfccdee3072210b164c88 Mon Sep 17 00:00:00 2001
From: Patrick Welche <pr...@cam.ac.uk>
Date: Tue, 14 Jan 2014 15:56:04 +0000
Subject: [PATCH 1/2] GetNumberOfProcessors portability fixes

- Test for features (#defines) not OS names
- Only check hw.availcpu if HW_AVAILCPU is defined
- On NetBSD HW_AVAILCPU is called HW_NCPUONLINE
---
 winpr/libwinpr/sysinfo/sysinfo.c | 25 +++++++++++++++++--------
 1 file changed, 17 insertions(+), 8 deletions(-)

diff --git a/winpr/libwinpr/sysinfo/sysinfo.c b/winpr/libwinpr/sysinfo/sysinfo.c
index c03500e..7d8d207 100644
--- a/winpr/libwinpr/sysinfo/sysinfo.c
+++ b/winpr/libwinpr/sysinfo/sysinfo.c
@@ -119,33 +119,42 @@ static DWORD GetNumberOfProcessors()
 
        /* TODO: iOS */
 
-#if defined(__linux__) || defined(__sun) || defined(_AIX)
+#if defined(_SC_NPROCESSORS_ONLN)
+       /* e.g., linux, sun, AIX */
        numCPUs = (DWORD) sysconf(_SC_NPROCESSORS_ONLN);
-#elif defined(__MACOSX__) || \
-       defined(__FreeBSD__) || defined(__NetBSD__) || \
-       defined(__OpenBSD__) || defined(__DragonFly__)
+#elif defined(_SC_NPROC_ONLN)
+       /* e.g, sgi */
+       numCPUs = (DWORD) sysconf(_SC_NPROC_ONLN);
+#elif defined(MPC_GETNUMSPUS)
+       /* e.g, hpux */
+       numCPUs = (DWORD) mpctl(MPC_GETNUMSPUS, NULL, NULL);
+#elif defined(HW_NCPU)
+       /* e.g., MacOSX, BSDs */
        {
                int mib[4];
                size_t length = sizeof(numCPUs);
 
                mib[0] = CTL_HW;
+#if !defined(HW_AVAILCPU) && defined(HW_NCPUONLINE)
+#define HW_AVAILCPU HW_NCPUONLINE
+#endif
+#ifdef HW_AVAILCPU
                mib[1] = HW_AVAILCPU;
 
                sysctl(mib, 2, &numCPUs, &length, NULL, 0);
 
                if (numCPUs < 1)
                {
+#endif
                        mib[1] = HW_NCPU;
                        sysctl(mib, 2, &numCPUs, &length, NULL, 0);
 
                        if (numCPUs < 1)
                                numCPUs = 1;
+#ifdef HW_AVAILCPU
                }
+#endif
        }
-#elif defined(__hpux)
-       numCPUs = (DWORD) mpctl(MPC_GETNUMSPUS, NULL, NULL);
-#elif defined(__sgi)
-       numCPUs = (DWORD) sysconf(_SC_NPROC_ONLN);
 #endif
 
        return numCPUs;
-- 
1.8.5.2

>From b40ac65b0ebc5dd6a40ab179222b636ed413f94d Mon Sep 17 00:00:00 2001
From: Patrick Welche <pr...@cam.ac.uk>
Date: Tue, 14 Jan 2014 15:57:20 +0000
Subject: [PATCH 2/2] NetBSD build fix

Better might be to reverse the #if and test for stat64, leaving the
BSD block as default, otherwise that FreeBSD / NetBSD test will
have to grow for every BSD variant.
---
 channels/drive/client/drive_file.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/channels/drive/client/drive_file.h 
b/channels/drive/client/drive_file.h
index 769a18d..b0e364c 100644
--- a/channels/drive/client/drive_file.h
+++ b/channels/drive/client/drive_file.h
@@ -56,7 +56,7 @@
 typedef UINT32 ssize_t;
 typedef UINT32 mode_t;
 
-#elif defined(__APPLE__) || defined(__FreeBSD__)
+#elif defined(__APPLE__) || defined(__FreeBSD__) || defined(__NetBSD__)
 #define STAT stat
 #define OPEN open
 #define LSEEK lseek
-- 
1.8.5.2

diff --git a/channels/tsmf/client/gstreamer/CMakeLists.txt 
b/channels/tsmf/client/gstreamer/CMakeLists.txt
index 5080358..62a541f 100644
--- a/channels/tsmf/client/gstreamer/CMakeLists.txt
+++ b/channels/tsmf/client/gstreamer/CMakeLists.txt
@@ -21,7 +21,7 @@ set(${MODULE_PREFIX}_SRCS
        tsmf_gstreamer.c)
 
 include_directories(..)
-include_directories(${GSTREAMER_INCLUDE_DIRS})
+include_directories(${GSTREAMER_INCLUDE_DIRS} ${X11_INCLUDE_DIR})
 
 add_channel_client_subsystem_library(${MODULE_PREFIX} ${MODULE_NAME} 
${CHANNEL_NAME} "" TRUE "")
 
@@ -38,6 +38,9 @@ set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS}
        gstinterfaces-0.10
        Xrandr X11 Xext)
 
+message(STATUS "gstreamer_library_dirs=${GSTREAMER_LIBRARY_DIRS}")
+link_directories(${GSTREAMER_LIBRARY_DIRS})
+
 target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
 
 install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_ADDIN_PATH} EXPORT 
FreeRDPTargets)
diff --git a/cmake/FindGstreamer.cmake b/cmake/FindGstreamer.cmake
index c4451c6..650392e 100644
--- a/cmake/FindGstreamer.cmake
+++ b/cmake/FindGstreamer.cmake
@@ -6,7 +6,8 @@ pkg_check_modules(PC_GSTREAMER_PLUGINS_BASE_0_10 
gstreamer-plugins-base-0.10)
 if(PC_GSTREAMER_0_10_FOUND AND PC_GSTREAMER_PLUGINS_BASE_0_10_FOUND)
        set(GSTREAMER_INCLUDE_DIRS ${PC_GSTREAMER_0_10_INCLUDE_DIRS} 
${PC_GSTREAMER_PLUGINS_BASE_0_10_INCLUDE_DIRS})
        set(GSTREAMER_LIBRARIES ${PC_GSTREAMER_0_10_LIBRARIES} 
${PC_GSTREAMER_PLUGINS_BASE_0_10_LIBRARIES})
+       set(GSTREAMER_LIBRARY_DIRS ${PC_GSTREAMER_0_10_LIBRARY_DIRS} 
${PC_GSTREAMER_PLUGINS_BASE_0_10_LIBRARY_DIRS})
 endif()
 
 include(FindPackageHandleStandardArgs)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(GSTREAMER DEFAULT_MSG GSTREAMER_LIBRARIES 
GSTREAMER_INCLUDE_DIRS)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(GSTREAMER DEFAULT_MSG GSTREAMER_LIBRARIES 
GSTREAMER_INCLUDE_DIRS GSTREAMER_LIBRARY_DIRS)
------------------------------------------------------------------------------
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments & Everything In Between.
Get a Quote or Start a Free Trial Today. 
http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
_______________________________________________
Freerdp-devel mailing list
Freerdp-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freerdp-devel

Reply via email to