aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Karatarakis <alkarata@microsoft.com>2017-03-13 15:33:30 -0700
committerAlexander Karatarakis <alkarata@microsoft.com>2017-03-13 15:33:30 -0700
commit40702522d189570d9f13b021c3aea98478588f8c (patch)
treeaf3570b4b5409cb927ce8617aa2cad36ff7271ed
parentdc29e034c8d8ed3afe7955e9ede5f448459711b8 (diff)
downloadvcpkg-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.patch489
-rw-r--r--ports/cairomm/0001-fix-build.patch (renamed from ports/cairomm/0002-fix-build.patch)0
-rw-r--r--ports/cairomm/CMakeLists.txt111
-rw-r--r--ports/cairomm/cmake/FindCairo.cmake131
-rw-r--r--ports/cairomm/cmake/FindSigC++.cmake111
-rw-r--r--ports/cairomm/cmake/cairomm.rc.cmake71
-rw-r--r--ports/cairomm/cmake/cairommconfig.h.cmake13
-rw-r--r--ports/cairomm/portfile.cmake8
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}