Newer
Older
Sam Spilsbury
committed
set (COMPIZ_MAIN_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
Sam Spilsbury
committed
include (CompizBcop)
add_subdirectory( string )
add_subdirectory( logmessage )
add_subdirectory( timer )
add_subdirectory( pluginclasshandler )
add_subdirectory( region )
Alan Griffiths
committed
add_subdirectory( privatescreen/tests )
add_subdirectory( option/tests )
add_subdirectory( tests )
compiz_add_bcop_targets (
core
${compiz_BINARY_DIR}/generated/core.xml.in
_bcop_sources
)
get_property (CORE_MOD_INCLUDE_DIRS
GLOBAL
PROPERTY CORE_MOD_INCLUDE_DIRS)
include_directories (
${compiz_SOURCE_DIR}/include
${compiz_BINARY_DIR}
${CMAKE_PREFIX_PATH}/include
${CMAKE_INCLUDE_PATH}
${CORE_MOD_INCLUDE_DIRS}
${CMAKE_CURRENT_SOURCE_DIR}
# Module specific include dirs
${CMAKE_CURRENT_SOURCE_DIR}/string/include
${CMAKE_CURRENT_SOURCE_DIR}/string/src
${CMAKE_CURRENT_SOURCE_DIR}/logmessage/include
${CMAKE_CURRENT_SOURCE_DIR}/logmessage/src
${CMAKE_CURRENT_SOURCE_DIR}/timer/include
${CMAKE_CURRENT_SOURCE_DIR}/timer/src
${CMAKE_CURRENT_SOURCE_DIR}/pluginclasshandler/include
${CMAKE_CURRENT_SOURCE_DIR}/pluginclasshandler/src
${CMAKE_CURRENT_SOURCE_DIR}/point/include
${CMAKE_CURRENT_SOURCE_DIR}/point/src
${CMAKE_CURRENT_SOURCE_DIR}/rect/include
${CMAKE_CURRENT_SOURCE_DIR}/rect/src
${CMAKE_CURRENT_SOURCE_DIR}/servergrab/include
${CMAKE_CURRENT_SOURCE_DIR}/servergrab/src
${CMAKE_CURRENT_SOURCE_DIR}/region/include
${CMAKE_CURRENT_SOURCE_DIR}/region/src
${CMAKE_CURRENT_SOURCE_DIR}/window/geometry/include
${CMAKE_CURRENT_SOURCE_DIR}/window/geometry/src
${CMAKE_CURRENT_SOURCE_DIR}/window/geometry-saver/include
${CMAKE_CURRENT_SOURCE_DIR}/window/geometry-saver/src
${CMAKE_CURRENT_SOURCE_DIR}/window/extents/include
${CMAKE_CURRENT_SOURCE_DIR}/window/extents/src
${CMAKE_CURRENT_SOURCE_DIR}/window/constrainment/include
${CMAKE_CURRENT_SOURCE_DIR}/window/constrainment/src
)
add_definitions (
-DHAVE_CONFIG_H
-DPLUGINDIR=\\\"${compiz_plugindir}\\\"
-DSHAREDIR=\\\"${compiz_sharedir}\\\"
-DMETADATADIR=\\\"${compiz_metadatadir}\\\"
)
get_property (CORE_MOD_LIBRARY_DIRS
GLOBAL
PROPERTY CORE_MOD_LIBRARY_DIRS)
link_directories (
${COMPIZ_LINK_DIRS}
${CORE_MOD_LIBRARY_DIRS}
Thomas Voß
committed
add_library (compiz_core SHARED
${CMAKE_CURRENT_SOURCE_DIR}/global.cpp
${CMAKE_CURRENT_SOURCE_DIR}/atoms.cpp
${CMAKE_CURRENT_SOURCE_DIR}/actions.cpp
${CMAKE_CURRENT_SOURCE_DIR}/screen.cpp
${CMAKE_CURRENT_SOURCE_DIR}/window.cpp
${CMAKE_CURRENT_SOURCE_DIR}/action.cpp
${CMAKE_CURRENT_SOURCE_DIR}/option.cpp
${CMAKE_CURRENT_SOURCE_DIR}/match.cpp
${CMAKE_CURRENT_SOURCE_DIR}/event.cpp
${CMAKE_CURRENT_SOURCE_DIR}/plugin.cpp
${CMAKE_CURRENT_SOURCE_DIR}/session.cpp
${CMAKE_CURRENT_SOURCE_DIR}/windowgeometry.cpp
${CMAKE_CURRENT_SOURCE_DIR}/icon.cpp
${CMAKE_CURRENT_SOURCE_DIR}/modifierhandler.cpp
${CMAKE_CURRENT_SOURCE_DIR}/propertywriter.cpp
${CMAKE_CURRENT_SOURCE_DIR}/eventsource.cpp
${CMAKE_CURRENT_SOURCE_DIR}/signalsource.cpp
add_dependencies (core-options core-xml-file)
add_dependencies (compiz_core core-options)
Daniel van Vugt
committed
#
# Normal libraries use the major version number of the library as their
# ABI version. But compiz uses funky date numbers for ABI revisions instead.
#
set (abiversion_h "${compiz_SOURCE_DIR}/include/core/abiversion.h")
file (STRINGS ${abiversion_h} abiline REGEX "^#define +CORE_ABIVERSION .+$")
string (REGEX REPLACE "#define +CORE_ABIVERSION +" "" abiversion "${abiline}")
set_target_properties (compiz_core PROPERTIES
VERSION ${VERSION}
SOVERSION "ABI-${abiversion}"
)
Thomas Voß
committed
add_executable (compiz
${CMAKE_CURRENT_SOURCE_DIR}/main.cpp
)
add_library (compiz_size STATIC
size.cpp
)
add_library (compiz_output STATIC
output.cpp
)
add_library (compiz_outputdevices STATIC
outputdevices.cpp
outputdevices_x11.cpp
)
add_dependencies (compiz_outputdevices
Daniel van Vugt
committed
core-options
compiz_output
compiz_rect
compiz_region
compiz_window_geometry
)
add_library (compiz_configurerequestbuffer STATIC
configurerequestbuffer.cpp)
target_link_libraries (compiz_configurerequestbuffer
compiz_window_geometry)
# workaround for build race
add_dependencies (compiz core-xml-file)
get_property (CORE_MOD_LIBRARIES
GLOBAL
PROPERTY CORE_MOD_LIBRARIES)
Thomas Voß
committed
compiz_core
Thomas Voß
committed
${COMPIZ_LIBRARIES}
m
pthread
dl
Daniel van Vugt
committed
-Wl,-whole-archive
Thomas Voß
committed
compiz_string
compiz_timer
compiz_logmessage
compiz_pluginclasshandler
compiz_region
compiz_output
compiz_outputdevices
Daniel van Vugt
committed
-Wl,-no-whole-archive
#
# Tell CMake that targets using compiz_core should NOT re-import the
# libraries that compiz_core depends on (contains).
#
set_target_properties (compiz_core PROPERTIES
LINK_INTERFACE_LIBRARIES ""
)
target_link_libraries (
compiz
compiz_core
)
Thomas Voß
committed