Skip to content

Commit

Permalink
[GLIBMM] Installing .pc file (#14988)
Browse files Browse the repository at this point in the history
  • Loading branch information
faserg1 committed Dec 28, 2020
1 parent 0a87565 commit c346336
Show file tree
Hide file tree
Showing 12 changed files with 92 additions and 41 deletions.
4 changes: 2 additions & 2 deletions ports/atkmm/CONTROL
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Source: atkmm
Version: 2.24.2
Port-Version: 3
Port-Version: 4
Homepage: https://www.gtkmm.org
Description: atkmm is the official C++ interface for the ATK accessibility toolkit library. It may be used, for instance, by user interfaces implemented with gtkmm.
Build-Depends: glib, gettext, atk, glibmm
Supports: !(linux | osx)
Supports: !(osx)
76 changes: 42 additions & 34 deletions ports/atkmm/portfile.cmake
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
vcpkg_fail_port_install(ON_TARGET "OSX" "Linux")

vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY)
if (VCPKG_TARGET_IS_WINDOWS)
vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY)
endif()

vcpkg_download_distfile(ARCHIVE
URLS "http://ftp.gnome.org/pub/GNOME/sources/atkmm/2.24/atkmm-2.24.2.tar.xz"
Expand All @@ -16,36 +16,44 @@ vcpkg_extract_source_archive_ex(
fix_charset.patch
)

file(COPY ${CMAKE_CURRENT_LIST_DIR}/msvc_recommended_pragmas.h DESTINATION ${SOURCE_PATH}/MSVC_Net2013)

set(VS_PLATFORM ${VCPKG_TARGET_ARCHITECTURE})
if(${VCPKG_TARGET_ARCHITECTURE} STREQUAL x86)
set(VS_PLATFORM "Win32")
endif(${VCPKG_TARGET_ARCHITECTURE} STREQUAL x86)
vcpkg_build_msbuild(
PROJECT_PATH ${SOURCE_PATH}/MSVC_Net2013/atkmm.sln
TARGET atkmm
PLATFORM ${VS_PLATFORM}
USE_VCPKG_INTEGRATION
)

# Handle headers
file(COPY ${SOURCE_PATH}/MSVC_Net2013/atkmm/atkmmconfig.h DESTINATION ${CURRENT_PACKAGES_DIR}/include)
file(COPY ${SOURCE_PATH}/atk/atkmm.h DESTINATION ${CURRENT_PACKAGES_DIR}/include)
file(COPY ${SOURCE_PATH}/atk/atkmm
DESTINATION ${CURRENT_PACKAGES_DIR}/include
FILES_MATCHING PATTERN *.h)

# Handle libraries
file(COPY ${SOURCE_PATH}/MSVC_Net2013/Release/${VS_PLATFORM}/bin/atkmm.dll
DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
file(COPY ${SOURCE_PATH}/MSVC_Net2013/Release/${VS_PLATFORM}/bin/atkmm.lib
DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
file(COPY ${SOURCE_PATH}/MSVC_Net2013/Debug/${VS_PLATFORM}/bin/atkmm.dll
DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
file(COPY ${SOURCE_PATH}/MSVC_Net2013/Debug/${VS_PLATFORM}/bin/atkmm.lib
DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)

vcpkg_copy_pdbs()
if (VCPKG_TARGET_IS_WINDOWS)
file(COPY ${CMAKE_CURRENT_LIST_DIR}/msvc_recommended_pragmas.h DESTINATION ${SOURCE_PATH}/MSVC_Net2013)

set(VS_PLATFORM ${VCPKG_TARGET_ARCHITECTURE})
if(${VCPKG_TARGET_ARCHITECTURE} STREQUAL x86)
set(VS_PLATFORM "Win32")
endif(${VCPKG_TARGET_ARCHITECTURE} STREQUAL x86)
vcpkg_build_msbuild(
PROJECT_PATH ${SOURCE_PATH}/MSVC_Net2013/atkmm.sln
TARGET atkmm
PLATFORM ${VS_PLATFORM}
USE_VCPKG_INTEGRATION
)

# Handle headers
file(COPY ${SOURCE_PATH}/MSVC_Net2013/atkmm/atkmmconfig.h DESTINATION ${CURRENT_PACKAGES_DIR}/include)
file(COPY ${SOURCE_PATH}/atk/atkmm.h DESTINATION ${CURRENT_PACKAGES_DIR}/include)
file(COPY ${SOURCE_PATH}/atk/atkmm
DESTINATION ${CURRENT_PACKAGES_DIR}/include
FILES_MATCHING PATTERN *.h)

# Handle libraries
file(COPY ${SOURCE_PATH}/MSVC_Net2013/Release/${VS_PLATFORM}/bin/atkmm.dll
DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
file(COPY ${SOURCE_PATH}/MSVC_Net2013/Release/${VS_PLATFORM}/bin/atkmm.lib
DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
file(COPY ${SOURCE_PATH}/MSVC_Net2013/Debug/${VS_PLATFORM}/bin/atkmm.dll
DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
file(COPY ${SOURCE_PATH}/MSVC_Net2013/Debug/${VS_PLATFORM}/bin/atkmm.lib
DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)

vcpkg_copy_pdbs()
else()
set(ENV{CONFIG_SHELL} bash)
vcpkg_configure_make(SOURCE_PATH ${SOURCE_PATH} OPTIONS ${ATKMM_OPTIONS})

vcpkg_install_make()
endif()

file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
2 changes: 2 additions & 0 deletions ports/glib/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -361,6 +361,8 @@ set(prefix ${CMAKE_INSTALL_PREFIX})
set(exec_prefix ${CMAKE_INSTALL_PREFIX})
set(libdir ${CMAKE_INSTALL_PREFIX}/lib)
set(includedir ${CMAKE_INSTALL_PREFIX}/include)
set(PCRE_REQUIRES libpcre)
set(LIBFFI_LIBS "-lffi")

configure_file("${CMAKE_CURRENT_SOURCE_DIR}/glib-2.0.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/glib-2.0.pc" @ONLY)
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/gobject-2.0.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/gobject-2.0.pc" @ONLY)
Expand Down
2 changes: 1 addition & 1 deletion ports/glib/CONTROL
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Source: glib
Version: 2.52.3
Port-Version: 23
Port-Version: 24
Homepage: https://developer.gnome.org/glib/
Description: Portable, general-purpose utility library.
Build-Depends: zlib, pcre, libffi, gettext, libiconv
Expand Down
30 changes: 29 additions & 1 deletion ports/glibmm/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@ project(glibmm)

set(CMAKE_CXX_STANDARD 17)

set(GLIBMM_DLL_SUFFIX 2)
set(GLIBMM_LIB_SUFFIX 2.0)
set(GLIBMM_EXTRA_LIB_SUFFIX 2.4)

find_path(GLIB_INCLUDE_DIR NAMES glib.h)
find_library(GLIB_LIBRARY NAMES glib-2.0)
find_library(GIO_LIBRARY NAMES gio-2.0)
Expand Down Expand Up @@ -82,6 +86,25 @@ file(GLOB GLIBMM_SOURCES glib/glibmm/*.cc)
add_library(glibmm ${GLIBMM_SOURCES})
target_compile_definitions(glibmm PRIVATE -DGLIBMM_BUILD)
target_include_directories(glibmm PUBLIC glib ${CMAKE_BINARY_DIR}/config/glib)
set_target_properties(glibmm PROPERTIES OUTPUT_NAME glibmm-${GLIBMM_DLL_SUFFIX} ARCHIVE_OUTPUT_NAME glibmm-${GLIBMM_LIB_SUFFIX})

set(GLIBMM_EXTRA_SOURCES tools/extra_defs_gen/generate_extra_defs.cc)
add_library(glibmm_generate_extra_defs ${GLIBMM_EXTRA_SOURCES})
target_include_directories(glibmm_generate_extra_defs PUBLIC glib ${CMAKE_BINARY_DIR}/config/glib)
set_target_properties(glibmm_generate_extra_defs PROPERTIES
OUTPUT_NAME glibmm_generate_extra_defs-${GLIBMM_EXTRA_LIB_SUFFIX}
ARCHIVE_OUTPUT_NAME glibmm_generate_extra_defs-${GLIBMM_EXTRA_LIB_SUFFIX})

set(prefix ${CMAKE_INSTALL_PREFIX})
set(exec_prefix ${CMAKE_INSTALL_PREFIX})
set(libdir ${CMAKE_INSTALL_PREFIX}/lib)
set(includedir ${CMAKE_INSTALL_PREFIX}/include)
set(GLIBMM_API_VERSION 2.0)
set(GLIBMM_MODULE_NAME glibmm)
set(PACKAGE_VERSION 2.52.1)
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/glib/glibmm.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/glibmm.pc" @ONLY)
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/glibmm.pc" DESTINATION lib/pkgconfig)
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/glibmm.pc" DESTINATION lib/pkgconfig RENAME glibmm-2.4.pc)

file(GLOB GIOMM_SOURCES gio/giomm/*.cc)
if(WIN32)
Expand All @@ -93,7 +116,7 @@ target_link_libraries(giomm PUBLIC glibmm)
target_include_directories(giomm PUBLIC gio ${CMAKE_BINARY_DIR}/config/gio)

install(
TARGETS glibmm giomm
TARGETS glibmm giomm glibmm_generate_extra_defs
RUNTIME DESTINATION bin
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib
Expand All @@ -113,6 +136,11 @@ if(NOT DISABLE_INSTALL_HEADERS)
DESTINATION include
FILES_MATCHING PATTERN *.h
)
install(
DIRECTORY tools/extra_defs_gen/
DESTINATION include/glibmm_generate_extra_defs/
FILES_MATCHING PATTERN *.h
)
endif()

if(NOT DISABLE_EXAMPLES)
Expand Down
2 changes: 1 addition & 1 deletion ports/glibmm/CONTROL
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Source: glibmm
Version: 2.52.1
Port-Version: 12
Port-Version: 13
Description: This is glibmm, a C++ API for parts of glib that are useful for C++.
Homepage: https://www.gtkmm.org.
Build-Depends: zlib, pcre, libffi, gettext, libiconv, glib, libsigcpp
Expand Down
2 changes: 2 additions & 0 deletions ports/glibmm/portfile.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@ vcpkg_install_cmake()

vcpkg_copy_pdbs()

vcpkg_fixup_pkgconfig()

# Handle copyright and readme
file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
file(INSTALL ${SOURCE_PATH}/README DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME readme.txt)
9 changes: 9 additions & 0 deletions ports/libsigcpp/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -57,3 +57,12 @@ if(NOT SIGCPP_SKIP_HEADERS)
install(FILES sigc++/functors/slot.h DESTINATION include/sigc++/functors)
install(FILES sigc++/functors/slot_base.h DESTINATION include/sigc++/functors)
endif()

set(prefix ${CMAKE_INSTALL_PREFIX})
set(exec_prefix ${CMAKE_INSTALL_PREFIX})
set(libdir ${CMAKE_INSTALL_PREFIX}/lib)
set(includedir ${CMAKE_INSTALL_PREFIX}/include)
set(SIGCXX_API_VERSION "2.0")
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/sigc++.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/sigc++.pc" @ONLY)
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/sigc++.pc" DESTINATION lib/pkgconfig)
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/sigc++.pc" DESTINATION lib/pkgconfig RENAME sigc++-2.0.pc)
1 change: 1 addition & 0 deletions ports/libsigcpp/CONTROL
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
Source: libsigcpp
Version: 2.10-3
Port-Version: 1
Description: Typesafe callback framework for C++
1 change: 1 addition & 0 deletions ports/libsigcpp/portfile.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ vcpkg_configure_cmake(

vcpkg_install_cmake()
vcpkg_copy_pdbs()
vcpkg_fixup_pkgconfig()

if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
file(READ ${CURRENT_PACKAGES_DIR}/include/sigc++config.h SIGCPPCONFIG_H)
Expand Down
2 changes: 1 addition & 1 deletion ports/libxmlpp/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ project(libxmlpp)
set(CMAKE_CXX_STANDARD 17)

find_path(GLIBMM_INCLUDE_DIR NAMES glibmm.h)
find_library(GLIBMM_LIBRARY NAMES glibmm)
find_library(GLIBMM_LIBRARY NAMES glibmm glibmm-2.0)
find_library(GIOMM_LIBRARY NAMES giomm)
find_library(GLIB_LIBRARY NAMES glib glib-2.0)
find_library(GIO_LIBRARY NAMES gio gio-2.0)
Expand Down
2 changes: 1 addition & 1 deletion ports/libxmlpp/CONTROL
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Source: libxmlpp
Version: 2.40.1
Port-Version: 6
Port-Version: 7
Description: a C++ wrapper for the libxml XML parser library.
Build-Depends: libxml2, glibmm

0 comments on commit c346336

Please sign in to comment.