Comment 10 for bug 922199

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

It looks like the cause is:

target_link_libraries (
    compiz_core

    ${COMPIZ_LIBRARIES}

    m
    pthread
    dl

    -Wl,-whole-archive
    compiz_string
    compiz_timer
    compiz_logmessage
    compiz_pluginclasshandler
    compiz_point
    compiz_rect
    compiz_window_geometry
    compiz_window_geometry_saver
    compiz_window_extents
    compiz_window_constrainment
    -Wl,-no-whole-archive
# ${CORE_MOD_LIBRARIES}
)

What we actually want is for compiz_* to be added to compiz_core as objects, not as dependent libraries that plugins then mistakenly link in. This is easy to do in regular Make, but I'm not sure how to do it in CMake. In regular Make you just treat *.a as *.o, but CMake annoyingly hides object linkage from us. Maybe it will let us add_library(compiz_core SHARED *.a)