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 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