Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[libcroco] Initial port files for libcroco #6467

Merged
merged 2 commits into from
May 17, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
137 changes: 137 additions & 0 deletions ports/libcroco/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
cmake_minimum_required(VERSION 3.11)
project(libcroco C)

find_package(unofficial-glib CONFIG REQUIRED)
find_package(LibXml2 REQUIRED)
if(NOT WIN32)
find_package(Threads REQUIRED)
find_package(unofficial-iconv REQUIRED)
endif()
find_path(GLIB_INCLUDE_DIR glib.h)

file(GLOB SOURCES
src/cr-utils.c
src/cr-utils.h
src/cr-input.c
src/cr-input.h
src/cr-enc-handler.c
src/cr-enc-handler.h
src/cr-num.c
src/cr-num.h
src/cr-rgb.c
src/cr-rgb.h
src/cr-token.c
src/cr-token.h
src/cr-tknzr.c
src/cr-tknzr.h
src/cr-term.c
src/cr-term.h
src/cr-attr-sel.c
src/cr-attr-sel.h
src/cr-pseudo.c
src/cr-pseudo.h
src/cr-additional-sel.c
src/cr-additional-sel.h
src/cr-simple-sel.c
src/cr-simple-sel.h
src/cr-selector.c
src/cr-selector.h
src/cr-doc-handler.c
src/cr-doc-handler.h
src/cr-parser.c
src/cr-parser.h
src/cr-declaration.c
src/cr-declaration.h
src/cr-statement.c
src/cr-statement.h
src/cr-stylesheet.c
src/cr-stylesheet.h
src/cr-cascade.c
src/cr-cascade.h
src/cr-om-parser.c
src/cr-om-parser.h
src/cr-style.c
src/cr-style.h
src/cr-sel-eng.c
src/cr-sel-eng.h
src/cr-fonts.c
src/cr-fonts.h
src/cr-prop-list.c
src/cr-prop-list.h
src/cr-parsing-location.c
src/cr-parsing-location.h
src/cr-string.c
src/cr-string.h
src/libcroco.def
)

set(CMAKE_DEBUG_POSTFIX "d")

add_library(libcroco ${SOURCES})

target_include_directories(libcroco PRIVATE ${GLIB_INCLUDE_DIR} ${LIBXML2_INCLUDE_DIR})
target_link_libraries(libcroco PRIVATE
unofficial::glib::gio
unofficial::glib::glib
unofficial::glib::gmodule
unofficial::glib::gobject
${LIBXML2_LIBRARIES}
)

install(TARGETS libcroco
EXPORT libcroco-targets
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
)

install(FILES
src/libcroco.h
src/cr-additional-sel.h
src/cr-attr-sel.h
src/cr-cascade.h
src/cr-declaration.h
src/cr-doc-handler.h
src/cr-enc-handler.h
src/cr-input.h
src/cr-num.h
src/cr-om-parser.h
src/cr-parser.h
src/cr-pseudo.h
src/cr-rgb.h
src/cr-selector.h
src/cr-simple-sel.h
src/cr-statement.h
src/cr-stylesheet.h
src/cr-term.h
src/cr-tknzr.h
src/cr-token.h
src/cr-utils.h
src/cr-fonts.h
src/cr-sel-eng.h
src/cr-style.h
src/cr-prop-list.h
src/cr-parsing-location.h
src/cr-string.h
src/libcroco-config.h
DESTINATION include/libcroco
)

install(
EXPORT libcroco-targets
NAMESPACE unofficial::libcroco::
FILE unofficial-libcroco-targets.cmake
DESTINATION share/unofficial-libcroco
)

file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/unofficial-libcroco-config.cmake "
include(CMakeFindDependencyMacro)
find_dependency(unofficial-glib CONFIG)
find_dependency(LibXml2)
if(NOT WIN32)
find_dependency(Threads)
find_dependency(unofficial-iconv)
endif()
include(\${CMAKE_CURRENT_LIST_DIR}/unofficial-libcroco-targets.cmake)
")
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/unofficial-libcroco-config.cmake DESTINATION share/unofficial-libcroco)
4 changes: 4 additions & 0 deletions ports/libcroco/CONTROL
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Source: libcroco
Version: 0.6.13
Description: A standalone css2 parsing and manipulation library
Build-Depends: glib, libxml2
34 changes: 34 additions & 0 deletions ports/libcroco/portfile.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
include(vcpkg_common_functions)

vcpkg_download_distfile(ARCHIVE
URLS "https://download.gnome.org/sources/libcroco/0.6/libcroco-0.6.13.tar.xz"
FILENAME "libcroco-0.6.13.tar.xz"
SHA512 038a3ac9d160a8cf86a8a88c34367e154ef26ede289c93349332b7bc449a5199b51ea3611cebf3a2416ae23b9e45ecf8f9c6b24ea6d16a5519b796d3c7e272d4
)

vcpkg_extract_source_archive_ex(
OUT_SOURCE_PATH SOURCE_PATH
ARCHIVE ${ARCHIVE}
)

file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
configure_file(${SOURCE_PATH}/config.h.win32 ${SOURCE_PATH}/src/config.h COPYONLY)
file(READ "${SOURCE_PATH}/src/libcroco.symbols" SYMBOLS)
string(REGEX REPLACE ";[^\n]*\n" "" DEF "EXPORTS\n${SYMBOLS}")
file(WRITE "${SOURCE_PATH}/src/libcroco.def" "${DEF}")

vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
)

vcpkg_install_cmake()

file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)

# Handle copyright
file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/libcroco RENAME copyright)

# Post-build test for cmake libraries
vcpkg_test_cmake(PACKAGE_NAME libcroco)