diff options
| author | Alexander Karatarakis <alkarata@microsoft.com> | 2017-03-13 15:33:30 -0700 |
|---|---|---|
| committer | Alexander Karatarakis <alkarata@microsoft.com> | 2017-03-13 15:33:30 -0700 |
| commit | 40702522d189570d9f13b021c3aea98478588f8c (patch) | |
| tree | af3570b4b5409cb927ce8617aa2cad36ff7271ed | |
| parent | dc29e034c8d8ed3afe7955e9ede5f448459711b8 (diff) | |
| download | vcpkg-40702522d189570d9f13b021c3aea98478588f8c.tar.gz vcpkg-40702522d189570d9f13b021c3aea98478588f8c.zip | |
Replace patch 0001 with copying files
Previously the patch would create five files.
Now the 5 files are checked in and we copy them over.
| -rw-r--r-- | ports/cairomm/0001-cmake-build-system.patch | 489 | ||||
| -rw-r--r-- | ports/cairomm/0001-fix-build.patch (renamed from ports/cairomm/0002-fix-build.patch) | 0 | ||||
| -rw-r--r-- | ports/cairomm/CMakeLists.txt | 111 | ||||
| -rw-r--r-- | ports/cairomm/cmake/FindCairo.cmake | 131 | ||||
| -rw-r--r-- | ports/cairomm/cmake/FindSigC++.cmake | 111 | ||||
| -rw-r--r-- | ports/cairomm/cmake/cairomm.rc.cmake | 71 | ||||
| -rw-r--r-- | ports/cairomm/cmake/cairommconfig.h.cmake | 13 | ||||
| -rw-r--r-- | ports/cairomm/portfile.cmake | 8 |
8 files changed, 442 insertions, 492 deletions
diff --git a/ports/cairomm/0001-cmake-build-system.patch b/ports/cairomm/0001-cmake-build-system.patch deleted file mode 100644 index 7492e649b..000000000 --- a/ports/cairomm/0001-cmake-build-system.patch +++ /dev/null @@ -1,489 +0,0 @@ -From 985be86e6073f6af5822eade61a0401cf2c87f0f Mon Sep 17 00:00:00 2001 -From: Mikhail Paulyshka <me@mixaill.tk> -Date: Sun, 12 Mar 2017 17:33:46 +0300 -Subject: [PATCH] CMake build system - ---- - CMakeLists.txt | 111 ++++++++++++++++++++++++++++++++ - build/cmake/FindCairo.cmake | 131 ++++++++++++++++++++++++++++++++++++++ - build/cmake/FindSigC++.cmake | 111 ++++++++++++++++++++++++++++++++ - build/cmake/cairomm.rc.cmake | 71 +++++++++++++++++++++ - build/cmake/cairommconfig.h.cmake | 13 ++++ - 5 files changed, 437 insertions(+) - create mode 100644 CMakeLists.txt - create mode 100644 build/cmake/FindCairo.cmake - create mode 100644 build/cmake/FindSigC++.cmake - create mode 100644 build/cmake/cairomm.rc.cmake - create mode 100644 build/cmake/cairommconfig.h.cmake - -diff --git a/CMakeLists.txt b/CMakeLists.txt -new file mode 100644 -index 0000000..b09ac49 ---- /dev/null -+++ b/CMakeLists.txt -@@ -0,0 +1,111 @@ -+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) -+ -+set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS 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(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} ) -+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) -diff --git a/build/cmake/FindCairo.cmake b/build/cmake/FindCairo.cmake -new file mode 100644 -index 0000000..d9b8bf4 ---- /dev/null -+++ b/build/cmake/FindCairo.cmake -@@ -0,0 +1,131 @@ -+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying -+# file Copyright.txt or https://cmake.org/licensing for details. -+# -+# revision: 2 -+# See https://github.com/CMakePorts/CMakeFindPackages for updates -+# -+#.rst: -+# FindCairo -+# --------- -+# -+# Locate Cairo library -+# -+# This module defines -+# -+# :: -+# CAIRO_FOUND - system has the CAIRO library -+# CAIRO_INCLUDE_DIR - the CAIRO include directory -+# CAIRO_LIBRARIES - The libraries needed to use CAIRO -+# CAIRO_VERSION - This is set to $major.$minor.$revision (eg. 0.9.8) -+# CAIRO_VERSION_STRING - This is set to $major.$minor.$revision (eg. 0.9.8) -+# -+# Authors: -+# Copyright (c) Eric Wing -+# Copyright (c) Alexander Neundorf -+# Copyright (c) 2008 Joshua L. Blocher <verbalshadow at gmail dot com> -+# Copyright (c) 2012 Dmitry Baryshnikov <polimax at mail dot ru> -+# Copyright (c) 2013-2017 Mikhail Paulyshka <me at mixaill dot tk> -+# -+ -+ -+if (NOT WIN32) -+ find_package(PkgConfig) -+ if (PKG_CONFIG_FOUND) -+ pkg_check_modules(_CAIRO cairo) -+ -+ SET(CAIRO_VERSION ${_CAIRO_VERSION}) -+ STRING (REGEX REPLACE "([0-9]+).([0-9]+).([0-9]+)" "\\1" num "${CAIRO_VERSION}") -+ MATH (EXPR CAIRO_VERSION_MAJOR "${num}") -+ STRING (REGEX REPLACE "([0-9]+).([0-9]+).([0-9]+)" "\\2" num "${CAIRO_VERSION}") -+ MATH (EXPR CAIRO_VERSION_MINOR "${num}") -+ STRING (REGEX REPLACE "([0-9]+).([0-9]+).([0-9]+)" "\\3" num "${CAIRO_VERSION}") -+ MATH (EXPR CAIRO_VERSION_MICRO "${num}") -+ endif (PKG_CONFIG_FOUND) -+endif (NOT WIN32) -+ -+set(_CAIRO_ROOT_HINTS_AND_PATHS -+ HINTS -+ $ENV{CAIRO} -+ $ENV{CAIRO_DIR} -+ ${CMAKE_FIND_ROOT_PATH} -+ ${CAIRO_ROOT_DIR} -+ PATHS -+ ${CMAKE_FIND_ROOT_PATH} -+ $ENV{CAIRO}/src -+ /usr -+ /usr/local -+) -+ -+find_path(CAIRO_INCLUDE_DIR -+ NAMES -+ cairo.h -+ HINTS -+ ${_CAIRO_INCLUDEDIR} -+ ${_CAIRO_ROOT_HINTS_AND_PATHS} -+ PATH_SUFFIXES -+ include -+ "include/cairo" -+) -+ -+if(NOT CAIRO_LIBRARY) -+ FIND_LIBRARY(CAIRO_LIBRARY_RELEASE -+ NAMES -+ cairo -+ cairo-static -+ HINTS -+ ${_CAIRO_LIBDIR} -+ ${_CAIRO_ROOT_HINTS_AND_PATHS} -+ PATH_SUFFIXES -+ "lib" -+ "local/lib" -+ ) -+ -+ FIND_LIBRARY(CAIRO_LIBRARY_DEBUG -+ NAMES -+ cairod -+ cairo-staticd -+ HINTS -+ ${_CAIRO_LIBDIR} -+ ${_CAIRO_ROOT_HINTS_AND_PATHS} -+ PATH_SUFFIXES -+ "lib" -+ "local/lib" -+ ) -+ -+ include(SelectLibraryConfigurations) -+ select_library_configurations(CAIRO) -+endif() -+set(CAIRO_LIBRARIES ${CAIRO_LIBRARY}) -+ -+if (NOT CAIRO_VERSION) -+ if (EXISTS "${CAIRO_INCLUDE_DIR}/cairo-version.h") -+ file(READ "${CAIRO_INCLUDE_DIR}/cairo-version.h" CAIRO_VERSION_CONTENT) -+ -+ string(REGEX MATCH "#define +CAIRO_VERSION_MAJOR +([0-9]+)" _dummy "${CAIRO_VERSION_CONTENT}") -+ set(CAIRO_VERSION_MAJOR "${CMAKE_MATCH_1}") -+ -+ string(REGEX MATCH "#define +CAIRO_VERSION_MINOR +([0-9]+)" _dummy "${CAIRO_VERSION_CONTENT}") -+ set(CAIRO_VERSION_MINOR "${CMAKE_MATCH_1}") -+ -+ string(REGEX MATCH "#define +CAIRO_VERSION_MICRO +([0-9]+)" _dummy "${CAIRO_VERSION_CONTENT}") -+ set(CAIRO_VERSION_MICRO "${CMAKE_MATCH_1}") -+ -+ set(CAIRO_VERSION "${CAIRO_VERSION_MAJOR}.${CAIRO_VERSION_MINOR}.${CAIRO_VERSION_MICRO}") -+ set(CAIRO_VERSION_STRING CAIRO_VERSION) -+ endif () -+endif() -+ -+include(FindPackageHandleStandardArgs) -+find_package_handle_standard_args( -+ CAIRO -+ REQUIRED_VARS -+ CAIRO_LIBRARIES -+ CAIRO_INCLUDE_DIR -+ VERSION_VAR -+ CAIRO_VERSION_STRING -+) -+ -+MARK_AS_ADVANCED( -+ CAIRO_INCLUDE_DIR -+ CAIRO_LIBRARY -+ CAIRO_LIBRARIES) -diff --git a/build/cmake/FindSigC++.cmake b/build/cmake/FindSigC++.cmake -new file mode 100644 -index 0000000..0f540ab ---- /dev/null -+++ b/build/cmake/FindSigC++.cmake -@@ -0,0 +1,111 @@ -+# - Try to find SIGC++ -+# Once done this will define -+# -+# SIGC++_ROOT_DIR - Set this variable to the root installation of SIGC++ -+# SIGC++_FOUND - system has SIGC++ -+# SIGC++_INCLUDE_DIRS - the SIGC++ include directory -+# SIGC++_LIBRARIES - Link these to use SIGC++ -+# -+# Copyright (c) 2008 Joshua L. Blocher <verbalshadow at gmail dot com> -+# Copyright (c) 2012 Dmitry Baryshnikov <polimax at mail dot ru> -+# Copyright (c) 2013-2017 Mikhail Paulyshka <me at mixaill dot tk> -+# -+# Distributed under the OSI-approved BSD License -+# -+ -+if (NOT WIN32) -+ find_package(PkgConfig) -+ if (PKG_CONFIG_FOUND) -+ pkg_check_modules(_SIGC++ sigc++-2.0) -+ SET(SIGC++_VERSION ${_SIGC++_VERSION}) -+ endif (PKG_CONFIG_FOUND) -+endif (NOT WIN32) -+ -+SET(_SIGC++_ROOT_HINTS -+ $ENV{SIGC++} -+ ${CMAKE_FIND_ROOT_PATH} -+ ${SIGC++_ROOT_DIR} -+) -+ -+SET(_SIGC++_ROOT_PATHS -+ $ENV{SIGC++}/src -+ /usr -+ /usr/local -+) -+ -+SET(_SIGC++_ROOT_HINTS_AND_PATHS -+ HINTS ${_SIGC++_ROOT_HINTS} -+ PATHS ${_SIGC++_ROOT_PATHS} -+) -+ -+FIND_PATH(SIGC++_INCLUDE_DIR -+ NAMES -+ "sigc++/sigc++.h" -+ HINTS -+ ${_SIGC++_INCLUDEDIR} -+ ${_SIGC++_ROOT_HINTS_AND_PATHS} -+ PATH_SUFFIXES -+ include -+ "include/sigc++-2.0" -+) -+ -+find_path(SIGC++_CONFIG_INCLUDE_DIR -+ NAMES -+ sigc++config.h -+ HINTS -+ ${_SIGC++_LIBDIR} -+ ${_SIGC++_INCLUDEDIR} -+ ${_SIGC++_ROOT_HINTS_AND_PATHS} -+ PATH_SUFFIXES -+ include -+ lib -+ "sigc++-2.0/include" -+ "lib/sigc++-2.0" -+ "lib/sigc++-2.0/include" -+) -+ -+FIND_LIBRARY(SIGC++_LIBRARY -+ NAMES -+ sigc-2.0 -+ HINTS -+ ${_SIGC++_LIBDIR} -+ ${_SIGC++_ROOT_HINTS_AND_PATHS} -+ PATH_SUFFIXES -+ "lib" -+ "local/lib" -+) -+ -+SET(SIGC++_LIBRARIES -+ ${SIGC++_LIBRARY} -+) -+ -+SET(SIGC++_INCLUDE_DIRS -+ ${SIGC++_INCLUDE_DIR} -+ ${SIGC++_CONFIG_INCLUDE_DIR} -+) -+ -+if (NOT SIGC++_VERSION) -+ if (EXISTS "${SIGC++_CONFIG_INCLUDE_DIR}/sigc++config.h") -+ file(READ "${SIGC++_CONFIG_INCLUDE_DIR}/sigc++config.h" SIGC++_VERSION_CONTENT) -+ -+ string(REGEX MATCH "#define +SIGCXX_MAJOR_VERSION +([0-9]+)" _dummy "${SIGC++_VERSION_CONTENT}") -+ set(SIGC++_VERSION_MAJOR "${CMAKE_MATCH_1}") -+ -+ string(REGEX MATCH "#define +SIGCXX_MINOR_VERSION +([0-9]+)" _dummy "${SIGC++_VERSION_CONTENT}") -+ set(SIGC++_VERSION_MINOR "${CMAKE_MATCH_1}") -+ -+ string(REGEX MATCH "#define +SIGCXX_MICRO_VERSION +([0-9]+)" _dummy "${SIGC++_VERSION_CONTENT}") -+ set(SIGC++_VERSION_MICRO "${CMAKE_MATCH_1}") -+ -+ set(SIGC++_VERSION "${SIGC++_VERSION_MAJOR}.${SIGC++_VERSION_MINOR}.${SIGC++_VERSION_MICRO}") -+ endif (EXISTS "${SIGC++_CONFIG_INCLUDE_DIR}/sigc++config.h") -+endif(NOT SIGC++_VERSION) -+ -+include(FindPackageHandleStandardArgs) -+find_package_handle_standard_args(SIGC++ -+ REQUIRED_VARS SIGC++_LIBRARIES SIGC++_INCLUDE_DIRS -+ VERSION_VAR SIGC++_VERSION -+ FAIL_MESSAGE "Could NOT find SIGC++, try to set the path to SIGC++ root folder in the system variable SIGC++" -+) -+ -+MARK_AS_ADVANCED(SIGC++_CONFIG_INCLUDE_DIR SIGC++_INCLUDE_DIR SIGC++_INCLUDE_DIRS SIGC++_LIBRARY SIGC++_LIBRARIES) -\ No newline at end of file -diff --git a/build/cmake/cairomm.rc.cmake b/build/cmake/cairomm.rc.cmake -new file mode 100644 -index 0000000..d968c4d ---- /dev/null -+++ b/build/cmake/cairomm.rc.cmake -@@ -0,0 +1,71 @@ -+ -+#define APSTUDIO_READONLY_SYMBOLS -+ -+#include <windows.h> -+ -+#undef APSTUDIO_READONLY_SYMBOLS -+ -+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -+#ifdef _WIN32 -+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US -+#pragma code_page(1252) -+#endif //_WIN32 -+ -+#ifdef APSTUDIO_INVOKED -+ -+1 TEXTINCLUDE -+BEGIN -+ "resource.h\0" -+END -+ -+2 TEXTINCLUDE -+BEGIN -+ "#include ""afxres.h""\r\n" -+ "\0" -+END -+ -+3 TEXTINCLUDE -+BEGIN -+ "\r\n" -+ "\0" -+END -+ -+#endif // APSTUDIO_INVOKED -+ -+VS_VERSION_INFO VERSIONINFO -+ FILEVERSION @CAIROMM_MAJOR_VERSION@,@CAIROMM_MINOR_VERSION@,@CAIROMM_MICRO_VERSION@,1 -+ PRODUCTVERSION @CAIROMM_MAJOR_VERSION@,@CAIROMM_MINOR_VERSION@,@CAIROMM_MICRO_VERSION@,1 -+ FILEFLAGSMASK 0x17L -+#ifdef _DEBUG -+ FILEFLAGS 0x1L -+#else -+ FILEFLAGS 0x0L -+#endif -+ FILEOS 0x4L -+ FILETYPE 0x2L -+ FILESUBTYPE 0x0L -+BEGIN -+ BLOCK "StringFileInfo" -+ BEGIN -+ BLOCK "040904b0" -+ BEGIN -+ VALUE "CompanyName", "The cairomm development team (see AUTHORS)" -+ VALUE "FileDescription", "The official C++ wrapper for cairo" -+ VALUE "FileVersion", "@VERSION@" -+ VALUE "LegalCopyright", "Distribution is under the LGPL (see COPYING)" -+ VALUE "OriginalFilename", "cairomm-1.0" -+ VALUE "ProductName", "cairomm" -+ VALUE "ProductVersion", "@VERSION@" -+ END -+ END -+ BLOCK "VarFileInfo" -+ BEGIN -+ VALUE "Translation", 0x409, 1200 -+ END -+END -+ -+#endif // English (U.S.) resources -+ -+#ifndef APSTUDIO_INVOKED -+ -+#endif // not APSTUDIO_INVOKED -diff --git a/build/cmake/cairommconfig.h.cmake b/build/cmake/cairommconfig.h.cmake -new file mode 100644 -index 0000000..526a70c ---- /dev/null -+++ b/build/cmake/cairommconfig.h.cmake -@@ -0,0 +1,13 @@ -+/* This file is part of cairomm. */ -+ -+/* Defined when the --enable-api-exceptions configure argument was given */ -+#cmakedefine CAIROMM_EXCEPTIONS_ENABLED 1 -+ -+/* Major version number of cairomm. */ -+#cmakedefine CAIROMM_MAJOR_VERSION @CAIROMM_MAJOR_VERSION@ -+ -+/* Minor version number of cairomm. */ -+#cmakedefine CAIROMM_MINOR_VERSION @CAIROMM_MINOR_VERSION@ -+ -+/* Micro version number of cairomm. */ -+#cmakedefine CAIROMM_MICRO_VERSION @CAIROMM_MICRO_VERSION@ --- -2.11.0.windows.1 - diff --git a/ports/cairomm/0002-fix-build.patch b/ports/cairomm/0001-fix-build.patch index 59e281d79..59e281d79 100644 --- a/ports/cairomm/0002-fix-build.patch +++ b/ports/cairomm/0001-fix-build.patch diff --git a/ports/cairomm/CMakeLists.txt b/ports/cairomm/CMakeLists.txt new file mode 100644 index 000000000..db077217d --- /dev/null +++ b/ports/cairomm/CMakeLists.txt @@ -0,0 +1,111 @@ +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) + +set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS 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(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} ) +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) diff --git a/ports/cairomm/cmake/FindCairo.cmake b/ports/cairomm/cmake/FindCairo.cmake new file mode 100644 index 000000000..0a87fadf8 --- /dev/null +++ b/ports/cairomm/cmake/FindCairo.cmake @@ -0,0 +1,131 @@ +# Distributed under the OSI-approved BSD 3-Clause License. See accompanying +# file Copyright.txt or https://cmake.org/licensing for details. +# +# revision: 2 +# See https://github.com/CMakePorts/CMakeFindPackages for updates +# +#.rst: +# FindCairo +# --------- +# +# Locate Cairo library +# +# This module defines +# +# :: +# CAIRO_FOUND - system has the CAIRO library +# CAIRO_INCLUDE_DIR - the CAIRO include directory +# CAIRO_LIBRARIES - The libraries needed to use CAIRO +# CAIRO_VERSION - This is set to $major.$minor.$revision (eg. 0.9.8) +# CAIRO_VERSION_STRING - This is set to $major.$minor.$revision (eg. 0.9.8) +# +# Authors: +# Copyright (c) Eric Wing +# Copyright (c) Alexander Neundorf +# Copyright (c) 2008 Joshua L. Blocher <verbalshadow at gmail dot com> +# Copyright (c) 2012 Dmitry Baryshnikov <polimax at mail dot ru> +# Copyright (c) 2013-2017 Mikhail Paulyshka <me at mixaill dot tk> +# + + +if (NOT WIN32) + find_package(PkgConfig) + if (PKG_CONFIG_FOUND) + pkg_check_modules(_CAIRO cairo) + + SET(CAIRO_VERSION ${_CAIRO_VERSION}) + STRING (REGEX REPLACE "([0-9]+).([0-9]+).([0-9]+)" "\\1" num "${CAIRO_VERSION}") + MATH (EXPR CAIRO_VERSION_MAJOR "${num}") + STRING (REGEX REPLACE "([0-9]+).([0-9]+).([0-9]+)" "\\2" num "${CAIRO_VERSION}") + MATH (EXPR CAIRO_VERSION_MINOR "${num}") + STRING (REGEX REPLACE "([0-9]+).([0-9]+).([0-9]+)" "\\3" num "${CAIRO_VERSION}") + MATH (EXPR CAIRO_VERSION_MICRO "${num}") + endif (PKG_CONFIG_FOUND) +endif (NOT WIN32) + +set(_CAIRO_ROOT_HINTS_AND_PATHS + HINTS + $ENV{CAIRO} + $ENV{CAIRO_DIR} + ${CMAKE_FIND_ROOT_PATH} + ${CAIRO_ROOT_DIR} + PATHS + ${CMAKE_FIND_ROOT_PATH} + $ENV{CAIRO}/src + /usr + /usr/local +) + +find_path(CAIRO_INCLUDE_DIR + NAMES + cairo.h + HINTS + ${_CAIRO_INCLUDEDIR} + ${_CAIRO_ROOT_HINTS_AND_PATHS} + PATH_SUFFIXES + include + "include/cairo" +) + +if(NOT CAIRO_LIBRARY) + FIND_LIBRARY(CAIRO_LIBRARY_RELEASE + NAMES + cairo + cairo-static + HINTS + ${_CAIRO_LIBDIR} + ${_CAIRO_ROOT_HINTS_AND_PATHS} + PATH_SUFFIXES + "lib" + "local/lib" + ) + + FIND_LIBRARY(CAIRO_LIBRARY_DEBUG + NAMES + cairod + cairo-staticd + HINTS + ${_CAIRO_LIBDIR} + ${_CAIRO_ROOT_HINTS_AND_PATHS} + PATH_SUFFIXES + "lib" + "local/lib" + ) + + include(SelectLibraryConfigurations) + select_library_configurations(CAIRO) +endif() +set(CAIRO_LIBRARIES ${CAIRO_LIBRARY}) + +if (NOT CAIRO_VERSION) + if (EXISTS "${CAIRO_INCLUDE_DIR}/cairo-version.h") + file(READ "${CAIRO_INCLUDE_DIR}/cairo-version.h" CAIRO_VERSION_CONTENT) + + string(REGEX MATCH "#define +CAIRO_VERSION_MAJOR +([0-9]+)" _dummy "${CAIRO_VERSION_CONTENT}") + set(CAIRO_VERSION_MAJOR "${CMAKE_MATCH_1}") + + string(REGEX MATCH "#define +CAIRO_VERSION_MINOR +([0-9]+)" _dummy "${CAIRO_VERSION_CONTENT}") + set(CAIRO_VERSION_MINOR "${CMAKE_MATCH_1}") + + string(REGEX MATCH "#define +CAIRO_VERSION_MICRO +([0-9]+)" _dummy "${CAIRO_VERSION_CONTENT}") + set(CAIRO_VERSION_MICRO "${CMAKE_MATCH_1}") + + set(CAIRO_VERSION "${CAIRO_VERSION_MAJOR}.${CAIRO_VERSION_MINOR}.${CAIRO_VERSION_MICRO}") + set(CAIRO_VERSION_STRING CAIRO_VERSION) + endif () +endif() + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args( + CAIRO + REQUIRED_VARS + CAIRO_LIBRARIES + CAIRO_INCLUDE_DIR + VERSION_VAR + CAIRO_VERSION_STRING +) + +MARK_AS_ADVANCED( + CAIRO_INCLUDE_DIR + CAIRO_LIBRARY + CAIRO_LIBRARIES) diff --git a/ports/cairomm/cmake/FindSigC++.cmake b/ports/cairomm/cmake/FindSigC++.cmake new file mode 100644 index 000000000..ed16ef93f --- /dev/null +++ b/ports/cairomm/cmake/FindSigC++.cmake @@ -0,0 +1,111 @@ +# - Try to find SIGC++
+# Once done this will define
+#
+# SIGC++_ROOT_DIR - Set this variable to the root installation of SIGC++
+# SIGC++_FOUND - system has SIGC++
+# SIGC++_INCLUDE_DIRS - the SIGC++ include directory
+# SIGC++_LIBRARIES - Link these to use SIGC++
+#
+# Copyright (c) 2008 Joshua L. Blocher <verbalshadow at gmail dot com>
+# Copyright (c) 2012 Dmitry Baryshnikov <polimax at mail dot ru>
+# Copyright (c) 2013-2017 Mikhail Paulyshka <me at mixaill dot tk>
+#
+# Distributed under the OSI-approved BSD License
+#
+
+if (NOT WIN32)
+ find_package(PkgConfig)
+ if (PKG_CONFIG_FOUND)
+ pkg_check_modules(_SIGC++ sigc++-2.0)
+ SET(SIGC++_VERSION ${_SIGC++_VERSION})
+ endif (PKG_CONFIG_FOUND)
+endif (NOT WIN32)
+
+SET(_SIGC++_ROOT_HINTS
+ $ENV{SIGC++}
+ ${CMAKE_FIND_ROOT_PATH}
+ ${SIGC++_ROOT_DIR}
+)
+
+SET(_SIGC++_ROOT_PATHS
+ $ENV{SIGC++}/src
+ /usr
+ /usr/local
+)
+
+SET(_SIGC++_ROOT_HINTS_AND_PATHS
+ HINTS ${_SIGC++_ROOT_HINTS}
+ PATHS ${_SIGC++_ROOT_PATHS}
+)
+
+FIND_PATH(SIGC++_INCLUDE_DIR
+ NAMES
+ "sigc++/sigc++.h"
+ HINTS
+ ${_SIGC++_INCLUDEDIR}
+ ${_SIGC++_ROOT_HINTS_AND_PATHS}
+ PATH_SUFFIXES
+ include
+ "include/sigc++-2.0"
+)
+
+find_path(SIGC++_CONFIG_INCLUDE_DIR
+ NAMES
+ sigc++config.h
+ HINTS
+ ${_SIGC++_LIBDIR}
+ ${_SIGC++_INCLUDEDIR}
+ ${_SIGC++_ROOT_HINTS_AND_PATHS}
+ PATH_SUFFIXES
+ include
+ lib
+ "sigc++-2.0/include"
+ "lib/sigc++-2.0"
+ "lib/sigc++-2.0/include"
+)
+
+FIND_LIBRARY(SIGC++_LIBRARY
+ NAMES
+ sigc-2.0
+ HINTS
+ ${_SIGC++_LIBDIR}
+ ${_SIGC++_ROOT_HINTS_AND_PATHS}
+ PATH_SUFFIXES
+ "lib"
+ "local/lib"
+)
+
+SET(SIGC++_LIBRARIES
+ ${SIGC++_LIBRARY}
+)
+
+SET(SIGC++_INCLUDE_DIRS
+ ${SIGC++_INCLUDE_DIR}
+ ${SIGC++_CONFIG_INCLUDE_DIR}
+)
+
+if (NOT SIGC++_VERSION)
+ if (EXISTS "${SIGC++_CONFIG_INCLUDE_DIR}/sigc++config.h")
+ file(READ "${SIGC++_CONFIG_INCLUDE_DIR}/sigc++config.h" SIGC++_VERSION_CONTENT)
+
+ string(REGEX MATCH "#define +SIGCXX_MAJOR_VERSION +([0-9]+)" _dummy "${SIGC++_VERSION_CONTENT}")
+ set(SIGC++_VERSION_MAJOR "${CMAKE_MATCH_1}")
+
+ string(REGEX MATCH "#define +SIGCXX_MINOR_VERSION +([0-9]+)" _dummy "${SIGC++_VERSION_CONTENT}")
+ set(SIGC++_VERSION_MINOR "${CMAKE_MATCH_1}")
+
+ string(REGEX MATCH "#define +SIGCXX_MICRO_VERSION +([0-9]+)" _dummy "${SIGC++_VERSION_CONTENT}")
+ set(SIGC++_VERSION_MICRO "${CMAKE_MATCH_1}")
+
+ set(SIGC++_VERSION "${SIGC++_VERSION_MAJOR}.${SIGC++_VERSION_MINOR}.${SIGC++_VERSION_MICRO}")
+ endif (EXISTS "${SIGC++_CONFIG_INCLUDE_DIR}/sigc++config.h")
+endif(NOT SIGC++_VERSION)
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(SIGC++
+ REQUIRED_VARS SIGC++_LIBRARIES SIGC++_INCLUDE_DIRS
+ VERSION_VAR SIGC++_VERSION
+ FAIL_MESSAGE "Could NOT find SIGC++, try to set the path to SIGC++ root folder in the system variable SIGC++"
+)
+
+MARK_AS_ADVANCED(SIGC++_CONFIG_INCLUDE_DIR SIGC++_INCLUDE_DIR SIGC++_INCLUDE_DIRS SIGC++_LIBRARY SIGC++_LIBRARIES)
\ No newline at end of file diff --git a/ports/cairomm/cmake/cairomm.rc.cmake b/ports/cairomm/cmake/cairomm.rc.cmake new file mode 100644 index 000000000..4aa7a0a05 --- /dev/null +++ b/ports/cairomm/cmake/cairomm.rc.cmake @@ -0,0 +1,71 @@ + +#define APSTUDIO_READONLY_SYMBOLS + +#include <windows.h> + +#undef APSTUDIO_READONLY_SYMBOLS + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) +#endif //_WIN32 + +#ifdef APSTUDIO_INVOKED + +1 TEXTINCLUDE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE +BEGIN + "#include ""afxres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + +VS_VERSION_INFO VERSIONINFO + FILEVERSION @CAIROMM_MAJOR_VERSION@,@CAIROMM_MINOR_VERSION@,@CAIROMM_MICRO_VERSION@,1 + PRODUCTVERSION @CAIROMM_MAJOR_VERSION@,@CAIROMM_MINOR_VERSION@,@CAIROMM_MICRO_VERSION@,1 + FILEFLAGSMASK 0x17L +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x4L + FILETYPE 0x2L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904b0" + BEGIN + VALUE "CompanyName", "The cairomm development team (see AUTHORS)" + VALUE "FileDescription", "The official C++ wrapper for cairo" + VALUE "FileVersion", "@VERSION@" + VALUE "LegalCopyright", "Distribution is under the LGPL (see COPYING)" + VALUE "OriginalFilename", "cairomm-1.0" + VALUE "ProductName", "cairomm" + VALUE "ProductVersion", "@VERSION@" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END + +#endif // English (U.S.) resources + +#ifndef APSTUDIO_INVOKED + +#endif // not APSTUDIO_INVOKED diff --git a/ports/cairomm/cmake/cairommconfig.h.cmake b/ports/cairomm/cmake/cairommconfig.h.cmake new file mode 100644 index 000000000..526a70c4c --- /dev/null +++ b/ports/cairomm/cmake/cairommconfig.h.cmake @@ -0,0 +1,13 @@ +/* This file is part of cairomm. */ + +/* Defined when the --enable-api-exceptions configure argument was given */ +#cmakedefine CAIROMM_EXCEPTIONS_ENABLED 1 + +/* Major version number of cairomm. */ +#cmakedefine CAIROMM_MAJOR_VERSION @CAIROMM_MAJOR_VERSION@ + +/* Minor version number of cairomm. */ +#cmakedefine CAIROMM_MINOR_VERSION @CAIROMM_MINOR_VERSION@ + +/* Micro version number of cairomm. */ +#cmakedefine CAIROMM_MICRO_VERSION @CAIROMM_MICRO_VERSION@ diff --git a/ports/cairomm/portfile.cmake b/ports/cairomm/portfile.cmake index fd1e4cfd9..0f9ec03c7 100644 --- a/ports/cairomm/portfile.cmake +++ b/ports/cairomm/portfile.cmake @@ -11,10 +11,12 @@ vcpkg_download_distfile(ARCHIVE ) vcpkg_extract_source_archive(${ARCHIVE}) +file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) +file(COPY ${CMAKE_CURRENT_LIST_DIR}/cmake DESTINATION ${SOURCE_PATH}/build) + vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES "${CURRENT_PORT_DIR}/0001-cmake-build-system.patch" - "${CURRENT_PORT_DIR}/0002-fix-build.patch") + SOURCE_PATH ${SOURCE_PATH} + PATCHES "${CMAKE_CURRENT_LIST_DIR}/0001-fix-build.patch") vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} |
