Description: Various build system fixes
 This fixes issues with underlinking and build libobs with -fvisibility=hidden
 to hide internal symbols. It also disables -msse*.
Author: Sebastian Ramacher <sramacher@debian.org>
Last-Update: 2016-02-24

--- a/libobs/CMakeLists.txt
+++ b/libobs/CMakeLists.txt
@@ -13,6 +13,8 @@
 
 if(UNIX)
 	find_package(DBus QUIET)
+	find_package(XCB COMPONENTS XCB REQUIRED)
+	find_package(X11)
 else()
 	set(HAVE_DBUS "0")
 endif()
@@ -125,6 +127,23 @@
 			${DBUS_LIBRARIES})
 	endif()
 
+	include_directories(
+		${XCB_INCLUDE_DIRS}
+		${X11_XCB_INCLUDE_DIRS}
+		${X11_X11_INCLUDE_PATH})
+
+	add_definitions(
+		${XCB_DEFINITIONS}
+		${X11_XCB_DEFINITIONS})
+
+	set(libobs_PLATFORM_DEPS
+		${libobs_PLATFORM_DEPS}
+		${XCB_LIBRARIES}
+		${X11_XCB_LIBRARIES}
+		${X11_X11_LIB}
+		m
+		dl)
+
 	if(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD")
 		# use the sysinfo compatibility library on bsd
 		find_package(Libsysinfo REQUIRED)
@@ -346,15 +365,11 @@
 	PUBLIC
 		HAVE_OBSCONFIG_H)
 
-if(NOT MSVC)
-	target_compile_options(libobs
-		PUBLIC
-			-mmmx
-			-msse
-			-msse2)
+if(UNIX)
+	set_source_files_properties(${libobs_SOURCES} PROPERTIES
+			COMPILE_FLAGS "-fvisibility=hidden")
 endif()
 
-
 target_compile_options(libobs
 	PUBLIC
 		"${THREADS_DEFINITIONS}")
--- a/obs/CMakeLists.txt
+++ b/obs/CMakeLists.txt
@@ -81,16 +81,13 @@
 	find_package(XCB COMPONENTS XCB REQUIRED RANDR REQUIRED XINERAMA REQUIRED)
 	
 	include_directories(
-		${XCB_INCLUDE_DIRS}
-		${X11_XCB_INCLUDE_DIRS})
+		${XCB_INCLUDE_DIRS})
 		
 	add_definitions(
-		${XCB_DEFINITIONS}
-		${X11_XCB_DEFINITIONS})
+		${XCB_DEFINITIONS})
 
 	set(obs_PLATFORM_LIBRARIES
 		${XCB_LIBRARIES}
-		${X11_XCB_LIBRARIES}
                 Qt5::X11Extras)
 endif()
 
--- a/libobs/util/c99defs.h
+++ b/libobs/util/c99defs.h
@@ -50,7 +50,7 @@
 
 #define EXPORT __declspec(dllexport)
 #else
-#define EXPORT
+#define EXPORT __attribute__((visibility("default")))
 #endif
 
 #if _MSC_VER && _MSC_VER < 0x0708