diff options
| author | Alexander Karatarakis <alkarata@microsoft.com> | 2017-03-13 15:33:46 -0700 |
|---|---|---|
| committer | Alexander Karatarakis <alkarata@microsoft.com> | 2017-03-13 15:33:46 -0700 |
| commit | 01b164b56e3bf86389a8826d6c018f194e591093 (patch) | |
| tree | af3570b4b5409cb927ce8617aa2cad36ff7271ed | |
| parent | fee9e6150c16ef2733781097232a9420af4baea6 (diff) | |
| parent | 40702522d189570d9f13b021c3aea98478588f8c (diff) | |
| download | vcpkg-01b164b56e3bf86389a8826d6c018f194e591093.tar.gz vcpkg-01b164b56e3bf86389a8826d6c018f194e591093.zip | |
Merge branch 'Mixaill-cairomm'
| -rw-r--r-- | ports/cairomm/0001-fix-build.patch | 25 | ||||
| -rw-r--r-- | ports/cairomm/CMakeLists.txt | 111 | ||||
| -rw-r--r-- | ports/cairomm/CONTROL | 4 | ||||
| -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 | 32 |
8 files changed, 498 insertions, 0 deletions
diff --git a/ports/cairomm/0001-fix-build.patch b/ports/cairomm/0001-fix-build.patch new file mode 100644 index 000000000..59e281d79 --- /dev/null +++ b/ports/cairomm/0001-fix-build.patch @@ -0,0 +1,25 @@ +From b769f250a39df110db2615c0e0d85b52f2ab6e77 Mon Sep 17 00:00:00 2001 +From: Mikhail Paulyshka <me@mixaill.tk> +Date: Sun, 12 Mar 2017 17:57:03 +0300 +Subject: [PATCH] Fix build + +--- + cairomm/win32_surface.h | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/cairomm/win32_surface.h b/cairomm/win32_surface.h +index 2e35b9a..c4454c4 100644 +--- a/cairomm/win32_surface.h ++++ b/cairomm/win32_surface.h +@@ -84,6 +84,8 @@ public: + */ + static RefPtr<Win32Surface> create(HDC hdc); + ++ static RefPtr<Win32Surface> create(Format format, int width, int height); ++ + /** Creates a device-independent-bitmap surface not associated with any + * particular existing surface or device context. The created bitmap will be + * unititialized. +-- +2.11.0.windows.1 + 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/CONTROL b/ports/cairomm/CONTROL new file mode 100644 index 000000000..d8eda4a53 --- /dev/null +++ b/ports/cairomm/CONTROL @@ -0,0 +1,4 @@ +Source: cairomm +Version: 1.15.3-1 +Description: A C++ wrapper for the cairo graphics library +Build-Depends: cairo, libsigcpp
\ No newline at end of file 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 new file mode 100644 index 000000000..0f9ec03c7 --- /dev/null +++ b/ports/cairomm/portfile.cmake @@ -0,0 +1,32 @@ +include(vcpkg_common_functions) + +set(CAIROMM_VERSION 1.15.3) +set(CAIROMM_HASH a2c28786dbd167179561d8f580eeb11d10634a36dfdb1adeefc0279acf83ee906f01f264cb924845fc4ab98da1afac71e1ead742f283c1a32368ca9af28e464a) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/cairomm-${CAIROMM_VERSION}) + +vcpkg_download_distfile(ARCHIVE + URLS "https://www.cairographics.org/releases/cairomm-${CAIROMM_VERSION}.tar.gz" + FILENAME "cairomm-${CAIROMM_VERSION}.tar.gz" + SHA512 ${CAIROMM_HASH} +) +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 "${CMAKE_CURRENT_LIST_DIR}/0001-fix-build.patch") + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA +) + +vcpkg_install_cmake() +vcpkg_copy_pdbs() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/cairomm) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/cairomm/COPYING ${CURRENT_PACKAGES_DIR}/share/cairomm/copyright) |
