mirror of
https://bitbucket.org/smil3y/kde-extraapps.git
synced 2025-02-24 19:02:53 +00:00
83 lines
3.1 KiB
CMake
83 lines
3.1 KiB
CMake
project(libkscreen)
|
|
set(libkscreen_VERSION_MAJOR 1)
|
|
set(libkscreen_VERSION_MINOR 0)
|
|
set(libkscreen_VERSION_RELEASE 4)
|
|
set(libkscreen_VERSION "${libkscreen_VERSION_MAJOR}.${libkscreen_VERSION_MINOR}.${libkscreen_VERSION_RELEASE}")
|
|
add_definitions(-DLIBKSCREEN_VERSION="${libkscreen_VERSION}")
|
|
|
|
cmake_minimum_required(VERSION 2.8.0)
|
|
|
|
if(POLICY CMP0017)
|
|
cmake_policy(SET CMP0017 NEW)
|
|
endif()
|
|
|
|
set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/modules ${CMAKE_MODULE_PATH})
|
|
enable_testing()
|
|
find_package(Qt4 REQUIRED)
|
|
find_package(KDE4 4.14.3 REQUIRED)
|
|
find_package(QJSON 0.8 REQUIRED)
|
|
include(KDE4Defaults)
|
|
add_definitions(${KDE4_DEFINITIONS})
|
|
include(CheckCXXCompilerFlag)
|
|
|
|
macro_optional_find_package(XCB)
|
|
set_package_properties(XCB PROPERTIES DESCRIPTION "The X protocol C-language Binding (XCB) is a replacement for Xlib"
|
|
URL "http://xcb.freedesktop.org/"
|
|
TYPE OPTIONAL
|
|
PURPOSE "Needed to build XRandR 1.1 backend"
|
|
)
|
|
|
|
macro_optional_find_package(X11_XCB)
|
|
set_package_properties(X11_XCB PROPERTIES DESCRIPTION "XCB extension to work with X11"
|
|
URL "http://xcb.freedesktop.org/"
|
|
TYPE OPTIONAL
|
|
PURPOSE "Needed to build XRandR 1.1 backend"
|
|
)
|
|
|
|
# Required to build on Gentoo
|
|
link_directories(${QJSON_LIBRARY_DIRS})
|
|
|
|
check_cxx_compiler_flag(-fvisibility=hidden _HAVE_VISIBILITY)
|
|
if (_HAVE_VISIBILITY AND NOT WIN32)
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden")
|
|
|
|
check_cxx_compiler_flag(-fvisibility-inlines-hidden _HAVE_VISIBILITY_INLINES)
|
|
if (_HAVE_VISIBILITY_INLINES)
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility-inlines-hidden")
|
|
endif (_HAVE_VISIBILITY_INLINES)
|
|
endif (_HAVE_VISIBILITY AND NOT WIN32)
|
|
|
|
#
|
|
### lib64/32 support kde like
|
|
#
|
|
set(LIB_SUFFIX "" CACHE STRING "Define suffix for lib directory (32/64)")
|
|
|
|
set(BIN_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/bin)
|
|
set(LIB_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX})
|
|
|
|
set(INSTALL_TARGETS_DEFAULT_ARGS RUNTIME DESTINATION "${BIN_INSTALL_DIR}"
|
|
LIBRARY DESTINATION "${LIB_INSTALL_DIR}"
|
|
ARCHIVE DESTINATION "${LIB_INSTALL_DIR}" COMPONENT Devel )
|
|
|
|
include_directories(${PROJECT_SOURCE_DIR}/src ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${QT_INCLUDES} ${KDE4_INCLUDES})
|
|
|
|
add_subdirectory(src)
|
|
add_subdirectory(backends)
|
|
add_subdirectory(tests)
|
|
|
|
configure_file(${libkscreen_SOURCE_DIR}/LibKScreenConfig.cmake.in
|
|
${libkscreen_BINARY_DIR}/LibKScreenConfig.cmake
|
|
@ONLY
|
|
)
|
|
# this file is used by to check if the installed version can be used.
|
|
macro_write_basic_cmake_version_file(${libkscreen_BINARY_DIR}/LibKScreenConfigVersion.cmake
|
|
${libkscreen_VERSION_MAJOR} ${libkscreen_VERSION_MINOR} ${libkscreen_VERSION_RELEASE})
|
|
|
|
install(FILES ${libkscreen_BINARY_DIR}/LibKScreenConfig.cmake ${libkscreen_BINARY_DIR}/LibKScreenConfigVersion.cmake
|
|
DESTINATION ${LIB_INSTALL_DIR}/cmake/LibKScreen)
|
|
|
|
# Install the file with the exported targets
|
|
install(EXPORT kscreenLibraryTargets
|
|
DESTINATION ${LIB_INSTALL_DIR}/cmake/LibKScreen
|
|
FILE LibKScreenTargetsWithPrefix.cmake)
|
|
|