vcpkg/ports/cairomm/CMakeLists.txt

111 lines
3.0 KiB
CMake
Raw Normal View History

project(cairomm)
cmake_minimum_required(VERSION 3.4)
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/build/cmake")
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
#get cairomm version
file (STRINGS "configure.ac" CONFIGURE_AC_INIT REGEX "AC_INIT\\(\\[cairomm\\], \\[.*\\].*" )
string(REGEX REPLACE "AC_INIT\\(\\[.*\\], \\[([0-9]+\\.[0-9]+\\.[0-9]+)\\].*" "\\1" VERSION ${CONFIGURE_AC_INIT})
string(REGEX REPLACE "([0-9]+)\\.[0-9]+\\.[0-9]+" "\\1" CAIROMM_MAJOR_VERSION ${VERSION})
string(REGEX REPLACE "[0-9]+\\.([0-9]+)\\.[0-9]+" "\\1" CAIROMM_MINOR_VERSION ${VERSION})
string(REGEX REPLACE "[0-9]+\\.[0-9]+\\.([0-9]+)" "\\1" CAIROMM_MICRO_VERSION ${VERSION})
message(STATUS "Ciaromm version: ${CAIROMM_MAJOR_VERSION}.${CAIROMM_MINOR_VERSION}.${CAIROMM_MICRO_VERSION}")
find_package(Cairo REQUIRED)
find_package(Freetype REQUIRED)
find_package(SigC++ REQUIRED)
#configure
option(BUILD_SHARED_LIBS "Build the shared library" ON)
option(CAIROMM_ENABLE_API_EXCEPTIONS "enable API exceptions" ON)
if(CAIROMM_ENABLE_API_EXCEPTIONS)
set(CAIROMM_EXCEPTIONS_ENABLED ON)
else()
set(CAIROMM_EXCEPTIONS_ENABLED OFF)
endif()
configure_file("build/cmake/cairommconfig.h.cmake" "cairommconfig.h")
configure_file("build/cmake/cairomm.rc.cmake" "cairomm.rc" @ONLY)
#build
set(cairomm_cc
cairomm/context.cc
cairomm/context_surface_quartz.cc
cairomm/context_surface_win32.cc
cairomm/context_surface_xlib.cc
cairomm/device.cc
cairomm/exception.cc
cairomm/fontface.cc
cairomm/fontoptions.cc
cairomm/matrix.cc
cairomm/path.cc
cairomm/pattern.cc
cairomm/private.cc
cairomm/quartz_font.cc
cairomm/quartz_surface.cc
cairomm/region.cc
cairomm/scaledfont.cc
cairomm/script.cc
cairomm/script_surface.cc
cairomm/surface.cc
cairomm/win32_font.cc
cairomm/win32_surface.cc
cairomm/xlib_surface.cc)
set(cairomm_public_h
cairomm/cairomm.h
cairomm/context.h
cairomm/device.h
cairomm/enums.h
cairomm/exception.h
cairomm/fontface.h
cairomm/fontoptions.h
cairomm/matrix.h
cairomm/path.h
cairomm/pattern.h
cairomm/quartz_font.h
cairomm/quartz_surface.h
cairomm/refptr.h
cairomm/region.h
cairomm/scaledfont.h
cairomm/script.h
cairomm/script_surface.h
cairomm/surface.h
cairomm/types.h
cairomm/win32_font.h
cairomm/win32_surface.h
cairomm/xlib_surface.h)
set(cairomm_private_h
cairomm/context_private.h
cairomm/private.h)
set(cairomm_rc
${CMAKE_BINARY_DIR}/cairomm.rc)
add_library(cairomm-1.0 ${cairomm_cc} ${cairomm_rc})
target_link_libraries(cairomm-1.0 ${CAIRO_LIBRARY} ${SIGC++_LIBRARY} Freetype::Freetype)
target_include_directories(cairomm-1.0 PRIVATE
${CAIRO_INCLUDE_DIR}
${SIGC++_INCLUDE_DIR}
${CMAKE_BINARY_DIR}
${CMAKE_SOURCE_DIR})
install(
TARGETS cairomm-1.0
RUNTIME DESTINATION bin
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib)
install(
FILES ${cairomm_public_h}
DESTINATION include/cairomm)
install(
FILES ${CMAKE_BINARY_DIR}/cairommconfig.h
DESTINATION include)