Description: Various build system fixes This fixes issues with underlinking and build libobs with -fvisibility=hidden to hide internal symbols. Author: Sebastian Ramacher 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) @@ -354,6 +373,10 @@ -msse2) endif() +if(UNIX) + set_source_files_properties(${libobs_SOURCES} PROPERTIES + COMPILE_FLAGS "-fvisibility=hidden") +endif() target_compile_options(libobs PUBLIC --- 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