diff --git a/ports/atkmm/CONTROL b/ports/atkmm/CONTROL index 8192383d88..be3787e177 100644 --- a/ports/atkmm/CONTROL +++ b/ports/atkmm/CONTROL @@ -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) diff --git a/ports/atkmm/portfile.cmake b/ports/atkmm/portfile.cmake index 9795881ece..91e82a2dfa 100644 --- a/ports/atkmm/portfile.cmake +++ b/ports/atkmm/portfile.cmake @@ -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" @@ -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") diff --git a/ports/glib/CMakeLists.txt b/ports/glib/CMakeLists.txt index cc24a2f63a..144f117765 100644 --- a/ports/glib/CMakeLists.txt +++ b/ports/glib/CMakeLists.txt @@ -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) diff --git a/ports/glib/CONTROL b/ports/glib/CONTROL index 8d74d5613b..a842f65e89 100644 --- a/ports/glib/CONTROL +++ b/ports/glib/CONTROL @@ -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 diff --git a/ports/glibmm/CMakeLists.txt b/ports/glibmm/CMakeLists.txt index 15f7bff129..3e34075d9d 100644 --- a/ports/glibmm/CMakeLists.txt +++ b/ports/glibmm/CMakeLists.txt @@ -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) @@ -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) @@ -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 @@ -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) diff --git a/ports/glibmm/CONTROL b/ports/glibmm/CONTROL index 59836db6f5..3b23389437 100644 --- a/ports/glibmm/CONTROL +++ b/ports/glibmm/CONTROL @@ -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 diff --git a/ports/glibmm/portfile.cmake b/ports/glibmm/portfile.cmake index 87551d23a7..f2ec0a935f 100644 --- a/ports/glibmm/portfile.cmake +++ b/ports/glibmm/portfile.cmake @@ -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) \ No newline at end of file diff --git a/ports/libsigcpp/CMakeLists.txt b/ports/libsigcpp/CMakeLists.txt index 9c43b1a1bc..e5a1dbee0d 100644 --- a/ports/libsigcpp/CMakeLists.txt +++ b/ports/libsigcpp/CMakeLists.txt @@ -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) diff --git a/ports/libsigcpp/CONTROL b/ports/libsigcpp/CONTROL index 617328c7b9..8febf8011a 100644 --- a/ports/libsigcpp/CONTROL +++ b/ports/libsigcpp/CONTROL @@ -1,3 +1,4 @@ Source: libsigcpp Version: 2.10-3 +Port-Version: 1 Description: Typesafe callback framework for C++ diff --git a/ports/libsigcpp/portfile.cmake b/ports/libsigcpp/portfile.cmake index e7214e0baf..74f26c32e6 100644 --- a/ports/libsigcpp/portfile.cmake +++ b/ports/libsigcpp/portfile.cmake @@ -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) diff --git a/ports/libxmlpp/CMakeLists.txt b/ports/libxmlpp/CMakeLists.txt index 0ff2f23fe7..2a36ed7ba3 100644 --- a/ports/libxmlpp/CMakeLists.txt +++ b/ports/libxmlpp/CMakeLists.txt @@ -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) diff --git a/ports/libxmlpp/CONTROL b/ports/libxmlpp/CONTROL index b737bde3c9..0c76b120cf 100644 --- a/ports/libxmlpp/CONTROL +++ b/ports/libxmlpp/CONTROL @@ -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