From 08b3a4340c03f8f9ef07e7d78cadce76ca696284 Mon Sep 17 00:00:00 2001 From: HrOokami <4591995+faserg1@users.noreply.github.com> Date: Mon, 7 Dec 2020 19:27:33 +0300 Subject: [ATK] Installing .pc files (#14972) --- ports/atk/CMakeLists.txt | 144 ---------------------------------------- ports/atk/CMakeLists.txt.in | 155 ++++++++++++++++++++++++++++++++++++++++++++ ports/atk/CONTROL | 1 + ports/atk/portfile.cmake | 14 +++- 4 files changed, 169 insertions(+), 145 deletions(-) delete mode 100644 ports/atk/CMakeLists.txt create mode 100644 ports/atk/CMakeLists.txt.in diff --git a/ports/atk/CMakeLists.txt b/ports/atk/CMakeLists.txt deleted file mode 100644 index e26d8649e..000000000 --- a/ports/atk/CMakeLists.txt +++ /dev/null @@ -1,144 +0,0 @@ -cmake_minimum_required(VERSION 3.0) -project(atk C) - -set(ATK_LIB_SUFFIX 1.0) -set(ATK_DLL_SUFFIX 1) -set(GLIB_LIB_VERSION 2.0) - -if(BUILD_SHARED_LIBS) - set(ATK_EXPORT_MACRO DLL_EXPORT) -endif() - -# generate atkmarshal.c and atkmarshal.h source files -# glib-genmarshal should be installed along with glib -find_program(GLIB_GENMARSHAL glib-genmarshal PATH_SUFFIXES glib) -file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/atk) - -message("Generating atkmarshal.h: ${GLIB_GENMARSHAL} --prefix=atk_marshal ${CMAKE_CURRENT_SOURCE_DIR}/atk/atkmarshal.list --header") -execute_process( - COMMAND ${GLIB_GENMARSHAL} --prefix=atk_marshal ${CMAKE_CURRENT_SOURCE_DIR}/atk/atkmarshal.list --header - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/atk - OUTPUT_FILE ${CMAKE_CURRENT_BINARY_DIR}/atk/atkmarshal.h -) - -message("Generating atkmarshal.c: ${GLIB_GENMARSHAL} --prefix=atk_marshal ${CMAKE_CURRENT_SOURCE_DIR}/atk/atkmarshal.list --body") -execute_process( - COMMAND ${GLIB_GENMARSHAL} --prefix=atk_marshal ${CMAKE_CURRENT_SOURCE_DIR}/atk/atkmarshal.list --body - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/atk - OUTPUT_FILE ${CMAKE_CURRENT_BINARY_DIR}/atk/atkmarshal.c -) - -if (WIN32) - configure_file(config.h.win32 ${CMAKE_CURRENT_BINARY_DIR}/config.h COPYONLY) -else() - configure_file(config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h @ONLY) -endif() -add_definitions(-DHAVE_CONFIG_H) -include_directories(. ./atk ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}/atk) - -find_path(GLIB_INCLUDE_DIR glib.h) -find_library(GLIB_GLIB_LIBRARY glib-${GLIB_LIB_VERSION}) -find_library(GLIB_GOBJECT_LIBRARY gobject-${GLIB_LIB_VERSION}) -find_library(GLIB_GMODULE_LIBRARY gmodule-${GLIB_LIB_VERSION}) -set(GLIB_LIBRARIES ${GLIB_GLIB_LIBRARY} ${GLIB_GOBJECT_LIBRARY} ${GLIB_GMODULE_LIBRARY}) - -if (WIN32 OR APPLE) - find_path(LIBINTL_INCLUDE_DIR libintl.h) - find_library(LIBINTL_LIBRARY NAMES libintl intl) -else() - find_package(Intl REQUIRED) - set(LIBINTL_INCLUDE_DIR ${Intl_INCLUDE_DIRS}) - set(LIBINTL_LIBRARY ${Intl_LIBRARIES}) -endif() - -set(ATK_SOURCES - atk/atkaction.c - atk/atkcomponent.c - atk/atkdocument.c - atk/atkeditabletext.c - atk/atkgobjectaccessible.c - atk/atkhyperlink.c - atk/atkhyperlinkimpl.c - atk/atkhypertext.c - atk/atkimage.c - atk/atknoopobject.c - atk/atknoopobjectfactory.c - atk/atkobject.c - atk/atkobjectfactory.c - atk/atkplug.c - atk/atkprivate.c - atk/atkrange.c - atk/atkregistry.c - atk/atkrelation.c - atk/atkrelationset.c - atk/atkselection.c - atk/atksocket.c - atk/atkstate.c - atk/atkstateset.c - atk/atkstreamablecontent.c - atk/atktable.c - atk/atktablecell.c - atk/atktext.c - atk/atkutil.c - atk/atkmisc.c - atk/atkvalue.c - atk/atkversion.c - atk/atkwindow.c - atk/atk-enum-types.c) - -add_library(atk ${ATK_SOURCES}) -target_compile_definitions(atk PRIVATE ATK_COMPILATION ${ATK_EXPORT_MACRO} G_DISABLE_SINGLE_INCLUDES ATK_LOCALEDIR="/dummy/share/locale") -target_link_libraries(atk ${LIBINTL_LIBRARY} ${GLIB_LIBRARIES}) -target_include_directories(atk PRIVATE ${GLIB_INCLUDE_DIR} ${LIBINTL_INCLUDE_DIR}) - -set_target_properties(atk PROPERTIES - OUTPUT_NAME atk-${ATK_DLL_SUFFIX} - ARCHIVE_OUTPUT_NAME atk-${ATK_LIB_SUFFIX}) - -install(TARGETS atk RUNTIME DESTINATION bin ARCHIVE DESTINATION lib LIBRARY DESTINATION lib) - -if(NOT ATK_SKIP_HEADERS) - install(FILES - atk/atk.h - atk/atkaction.h - atk/atkcomponent.h - atk/atkdocument.h - atk/atkeditabletext.h - atk/atkgobjectaccessible.h - atk/atkhyperlink.h - atk/atkhyperlinkimpl.h - atk/atkhypertext.h - atk/atknoopobject.h - atk/atknoopobjectfactory.h - atk/atkobject.h - atk/atkobjectfactory.h - atk/atkplug.h - atk/atkimage.h - atk/atkrange.h - atk/atkregistry.h - atk/atkrelation.h - atk/atkrelationtype.h - atk/atkrelationset.h - atk/atkselection.h - atk/atksocket.h - atk/atkstate.h - atk/atkstateset.h - atk/atkstreamablecontent.h - atk/atktable.h - atk/atktablecell.h - atk/atktext.h - atk/atkutil.h - atk/atkmisc.h - atk/atkvalue.h - atk/atkwindow.h - atk/atkversion.h - atk/atk-enum-types.h - atk/atkversion.h - DESTINATION include/atk) -endif() - -message(STATUS "Link-time dependencies:") -message(STATUS " " ${LIBINTL_LIBRARY}) -foreach(GL ${GLIB_LIBRARIES}) - message(STATUS " " ${GL}) -endforeach() diff --git a/ports/atk/CMakeLists.txt.in b/ports/atk/CMakeLists.txt.in new file mode 100644 index 000000000..d8b848823 --- /dev/null +++ b/ports/atk/CMakeLists.txt.in @@ -0,0 +1,155 @@ +cmake_minimum_required(VERSION 3.0) +project(atk C) + +set(ATK_LIB_SUFFIX @ATK_LIB_SUFFIX@) +set(ATK_DLL_SUFFIX @ATK_DLL_SUFFIX@) +set(GLIB_LIB_VERSION @GLIB_LIB_VERSION@) + +if(BUILD_SHARED_LIBS) + set(ATK_EXPORT_MACRO DLL_EXPORT) +endif() + +# generate atkmarshal.c and atkmarshal.h source files +# glib-genmarshal should be installed along with glib +find_program(GLIB_GENMARSHAL glib-genmarshal PATH_SUFFIXES glib) +file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/atk) + +message("Generating atkmarshal.h: ${GLIB_GENMARSHAL} --prefix=atk_marshal ${CMAKE_CURRENT_SOURCE_DIR}/atk/atkmarshal.list --header") +execute_process( + COMMAND ${GLIB_GENMARSHAL} --prefix=atk_marshal ${CMAKE_CURRENT_SOURCE_DIR}/atk/atkmarshal.list --header + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/atk + OUTPUT_FILE ${CMAKE_CURRENT_BINARY_DIR}/atk/atkmarshal.h +) + +message("Generating atkmarshal.c: ${GLIB_GENMARSHAL} --prefix=atk_marshal ${CMAKE_CURRENT_SOURCE_DIR}/atk/atkmarshal.list --body") +execute_process( + COMMAND ${GLIB_GENMARSHAL} --prefix=atk_marshal ${CMAKE_CURRENT_SOURCE_DIR}/atk/atkmarshal.list --body + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/atk + OUTPUT_FILE ${CMAKE_CURRENT_BINARY_DIR}/atk/atkmarshal.c +) + +if (WIN32) + configure_file(config.h.win32 ${CMAKE_CURRENT_BINARY_DIR}/config.h COPYONLY) +else() + configure_file(config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h @ONLY) +endif() +add_definitions(-DHAVE_CONFIG_H) +include_directories(. ./atk ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}/atk) + +find_path(GLIB_INCLUDE_DIR glib.h) +find_library(GLIB_GLIB_LIBRARY glib-${GLIB_LIB_VERSION}) +find_library(GLIB_GOBJECT_LIBRARY gobject-${GLIB_LIB_VERSION}) +find_library(GLIB_GMODULE_LIBRARY gmodule-${GLIB_LIB_VERSION}) +set(GLIB_LIBRARIES ${GLIB_GLIB_LIBRARY} ${GLIB_GOBJECT_LIBRARY} ${GLIB_GMODULE_LIBRARY}) + +if (WIN32 OR APPLE) + find_path(LIBINTL_INCLUDE_DIR libintl.h) + find_library(LIBINTL_LIBRARY NAMES libintl intl) +else() + find_package(Intl REQUIRED) + set(LIBINTL_INCLUDE_DIR ${Intl_INCLUDE_DIRS}) + set(LIBINTL_LIBRARY ${Intl_LIBRARIES}) +endif() + +set(ATK_SOURCES + atk/atkaction.c + atk/atkcomponent.c + atk/atkdocument.c + atk/atkeditabletext.c + atk/atkgobjectaccessible.c + atk/atkhyperlink.c + atk/atkhyperlinkimpl.c + atk/atkhypertext.c + atk/atkimage.c + atk/atknoopobject.c + atk/atknoopobjectfactory.c + atk/atkobject.c + atk/atkobjectfactory.c + atk/atkplug.c + atk/atkprivate.c + atk/atkrange.c + atk/atkregistry.c + atk/atkrelation.c + atk/atkrelationset.c + atk/atkselection.c + atk/atksocket.c + atk/atkstate.c + atk/atkstateset.c + atk/atkstreamablecontent.c + atk/atktable.c + atk/atktablecell.c + atk/atktext.c + atk/atkutil.c + atk/atkmisc.c + atk/atkvalue.c + atk/atkversion.c + atk/atkwindow.c + atk/atk-enum-types.c) + +add_library(atk ${ATK_SOURCES}) +target_compile_definitions(atk PRIVATE ATK_COMPILATION ${ATK_EXPORT_MACRO} G_DISABLE_SINGLE_INCLUDES ATK_LOCALEDIR="/dummy/share/locale") +target_link_libraries(atk ${LIBINTL_LIBRARY} ${GLIB_LIBRARIES}) +target_include_directories(atk PRIVATE ${GLIB_INCLUDE_DIR} ${LIBINTL_INCLUDE_DIR}) + +set_target_properties(atk PROPERTIES + OUTPUT_NAME atk-${ATK_DLL_SUFFIX} + ARCHIVE_OUTPUT_NAME atk-${ATK_LIB_SUFFIX}) + +install(TARGETS atk RUNTIME DESTINATION bin ARCHIVE DESTINATION lib LIBRARY DESTINATION lib) + +if(NOT ATK_SKIP_HEADERS) + install(FILES + atk/atk.h + atk/atkaction.h + atk/atkcomponent.h + atk/atkdocument.h + atk/atkeditabletext.h + atk/atkgobjectaccessible.h + atk/atkhyperlink.h + atk/atkhyperlinkimpl.h + atk/atkhypertext.h + atk/atknoopobject.h + atk/atknoopobjectfactory.h + atk/atkobject.h + atk/atkobjectfactory.h + atk/atkplug.h + atk/atkimage.h + atk/atkrange.h + atk/atkregistry.h + atk/atkrelation.h + atk/atkrelationtype.h + atk/atkrelationset.h + atk/atkselection.h + atk/atksocket.h + atk/atkstate.h + atk/atkstateset.h + atk/atkstreamablecontent.h + atk/atktable.h + atk/atktablecell.h + atk/atktext.h + atk/atkutil.h + atk/atkmisc.h + atk/atkvalue.h + atk/atkwindow.h + atk/atkversion.h + atk/atk-enum-types.h + atk/atkversion.h + DESTINATION include/atk) +endif() + +message(STATUS "Link-time dependencies:") +message(STATUS " " ${LIBINTL_LIBRARY}) +foreach(GL ${GLIB_LIBRARIES}) + message(STATUS " " ${GL}) +endforeach() + +set(prefix ${CMAKE_INSTALL_PREFIX}) +set(exec_prefix ${CMAKE_INSTALL_PREFIX}) +set(libdir ${CMAKE_INSTALL_PREFIX}/lib) +set(includedir ${CMAKE_INSTALL_PREFIX}/include) +set(ATK_API_VERSION @ATK_API_VERSION@) +set(VERSION @ATK_VERSION@) +set(GLIB_PACKAGES "glib-${GLIB_LIB_VERSION} gobject-${GLIB_LIB_VERSION} gmodule-${GLIB_LIB_VERSION}") + +configure_file("${CMAKE_CURRENT_SOURCE_DIR}/atk.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/atk.pc" @ONLY) +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/atk.pc" DESTINATION lib/pkgconfig) \ No newline at end of file diff --git a/ports/atk/CONTROL b/ports/atk/CONTROL index bcfc01d16..686e7fe6e 100644 --- a/ports/atk/CONTROL +++ b/ports/atk/CONTROL @@ -1,5 +1,6 @@ Source: atk Version: 2.24.0-5 +Port-Version: 1 Homepage: https://developer.gnome.org/atk/ Description: GNOME Accessibility Toolkit Build-Depends: glib, gettext diff --git a/ports/atk/portfile.cmake b/ports/atk/portfile.cmake index a0d012859..916b5095b 100644 --- a/ports/atk/portfile.cmake +++ b/ports/atk/portfile.cmake @@ -15,7 +15,17 @@ vcpkg_extract_source_archive_ex( fix-linux-config.patch ) -file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) +# Here are used API version of library, not the version of library itself +set(ATK_LIB_SUFFIX 1.0) +set(ATK_DLL_SUFFIX 1) + +set(GLIB_LIB_VERSION 2.0) +if (WIN32) + set(ATK_API_VERSION ${ATK_LIB_SUFFIX}) +else() + set(ATK_API_VERSION ${ATK_DLL_SUFFIX}) +endif() +configure_file("${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt.in" "${SOURCE_PATH}/CMakeLists.txt" @ONLY) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} @@ -30,4 +40,6 @@ vcpkg_configure_cmake( vcpkg_install_cmake() vcpkg_copy_pdbs() +vcpkg_fixup_pkgconfig() + file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) -- cgit v1.2.3