diff options
522 files changed, 23384 insertions, 3543 deletions
diff --git a/.gitignore b/.gitignore index 003d607fd..e1954660f 100644 --- a/.gitignore +++ b/.gitignore @@ -274,8 +274,9 @@ __pycache__/ .vscode/ buildtrees/ +build*/ downloads/ -installed/ +installed*/ packages/ scripts/buildsystems/tmp/ *.exe diff --git a/CHANGELOG.md b/CHANGELOG.md index d612fb4f3..491e4b9c6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,188 @@ +vcpkg (0.0.99) +-------------- + * Add ports: + - avro-c 1.8.2 + - devil 1.8.0-1 + - halide release_2017_10_30 + - librabbitmq 0.8.0 + - openvdb 5.0.0 + - qpid-proton 0.18.1 + - unittest-cpp 2.0.0 + * Update ports: + - alembic 1.7.4 -> 1.7.4-1 + - angle 2017-06-14-8d471f-2 -> 2017-06-14-8d471f-4 + - aubio 0.46~alpha-3 -> 0.46 + - date 2.2 -> 2.3-c286981b3bf83c79554769df68b27415cee68d77 + - fftw3 3.3.7 -> 3.3.7-1 + - grpc 1.7.0 -> 1.7.2 + - imgui 1.51-1 -> 1.52 + - lcms 2.8-3 -> 2.8-4 + - leptonica 1.74.4-1 -> 1.74.4-2 + - leveldb 2017-10-25-8b1cd3753b184341e837b30383832645135d3d73 -> 2017-10-25-8b1cd3753b184341e837b30383832645135d3d73-1 + - libflac 1.3.2-3 -> 1.3.2-4 + - libiconv 1.14-1 -> 1.15 + - libsndfile 1.0.29-6830c42-1 -> 1.0.29-6830c42-2 + - libssh2 1.8.0-2 -> 1.8.0-3 + - llvm 5.0.0-1 -> 5.0.0-2 + - mpfr 3.1.6 -> 3.1.6-1 + - ogre 1.9.0-1 -> 1.10.9-2 + - opencv 3.3.1-7 -> 3.3.1-9 + - opengl 0.0-3 -> 0.0-4 + - pcl 1.8.1-4 -> 1.8.1-7 + - protobuf 3.4.1-2 -> 3.5.0-1 + - qhull 2015.2-1 -> 2015.2-2 + - realsense2 2.8.1 -> 2.8.2 + - redshell 1.0.0 -> 1.1.2 + - sdl2 2.0.7-1 -> 2.0.7-3 + - string-theory 1.6 -> 1.6-1 + - tesseract 3.05.01-1 -> 3.05.01-2 + * `vcpkg` now autodetects CMake usage information in libraries and displays it after install + * `vcpkg integrate install`: Fix issue that would cause failure with unicode usernames + * Introduce experimental support for `VCPKG_BUILD_TYPE`. Adding `set(VCPKG_BUILD_TYPE release)` in a triplet: will cause *most* ports to only build release + * `vcpkg` now compiles inside WSL + * Update required version & auto-downloaded version of `cmake` to 3.10.0 + +-- vcpkg team <vcpkg@microsoft.com> SAT, 26 Nov 2017 03:30:00 -0800 + + +vcpkg (0.0.97) +-------------- + * Add ports: + - alac 2017-11-03-c38887c5 + - atkmm 2.24.2 + - blosc 1.12.1 + - coolprop 6.1.0-2 + - discord-rpc 2.0.1 + - freetype-gl 2017-10-9-82fb152a74f01b1483ac80d15935fbdfaf3ed836 + - glibmm 2.52.1 + - gtkmm 3.22.2 + - if97 2.1.0 + - luasocket 2017.05.25.5a17f79b0301f0a1b4c7f1c73388757a7e2ed309 + - pangomm 2.40.1 + - realsense2 2.8.1 + - refprop-headers 2017-11-7-882aec454b2bc3d5323b8691736ff09c288f4ed6 + - sfgui 0.3.2-1 + - tidy-html5 5.4.0-1 + * Update ports: + - abseil 2017-10-14 -> 2017-11-10 + - assimp 4.0.1-2 -> 4.0.1-3 + - bond 6.0.0-1 -> 7.0.2 + - catch 1.11.0 -> 2.0.1-1 + - dimcli 2.0.0-1 -> 3.1.1-1 + - dlib 19.4-5 -> 19.7 + - ffmpeg 3.3.3 -> 3.3.3-1 + - fftw3 3.3.6-p12-1 -> 3.3.7 + - freeglut 3.0.0-2 -> 3.0.0-3 + - freetype 2.8-1 -> 2.8.1-1 + - glbinding 2.1.1-2 -> 2.1.1-3 + - glm 0.9.8.4-1 -> 0.9.8.5 + - grpc 1.6.0-2 -> 1.7.0 + - jasper 2.0.13-1 -> 2.0.14-1 + - libpng 1.6.32-1 -> 1.6.34-2 + - libraw 0.18.2-4 -> 0.18.2-5 + - libsigcpp 2.99-1 -> 2.10 + - libuv 1.14.1-1 -> 1.16.1 + - libwebsockets 2.0.0-2 -> 2.0.0-4 + - ms-gsl 20170425-8b320e3f5d016f953e55dfc7ec8694c1349d3fe4 -> 20171104-d10ebc6555b627c9d1196076a78467e7be505987 + - openal-soft 1.18.1-1 -> 1.18.2-1 + - opencv 3.3.1-6 -> 3.3.1-7 + - openssl 1.0.2l-3 -> 1.0.2m + - pcl 1.8.1-3 -> 1.8.1-4 + - sdl2 2.0.6-1 -> 2.0.7-1 + - sdl2-mixer 2.0.1-3 -> 2.0.2-1 + - sqlite-modern-cpp 2.4 -> 3.2 + - vtk 8.0.1-1 -> 8.0.1-5 + - wincrypt 0.0 -> 0.0-1 + - winsock2 0.0 -> 0.0-1 + * MSBuild integration now outputs a warning when configuration is not determinable. + * Fix Powershell execution failures for users of PSCX. PSCX has an `Expand-Archive` cmdlet that has different parameter names than the same-named cmdlet in Powershell 5. + * `vcpkg_from_github()`: Handle '/' in REFs + +-- vcpkg team <vcpkg@microsoft.com> TUE, 14 Nov 2017 16:00:00 -0800 + + +vcpkg (0.0.96) +-------------- + * Add ports: + - arb 2.11.1 + - fdk-aac 2017-11-02-1e351 + - flint 2.5.2 + - itk 4.11.0 + - libaiff 5.0 + * Update ports: + - antlr4 4.6-1 -> 4.7 + - apr 1.6.2-1 -> 1.6.3 + - double-conversion 3.0.0-1 -> 3.0.0-2 + - flann 1.9.1-6 -> 1.9.1-7 + - opencv 3.3.1-4 -> 3.3.1-6 + - protobuf 3.4.1-1 -> 3.4.1-2 + * `vcpkg help`: Add help topics for commands. For example `vcpkg help install` + * `vcpkg` now downloads in a temp directory; after the download is complete, the file is moved to the destination. This avoids issues with hash mismatch on partially downloaded files. + * Update required version & auto-downloaded version of `cmake` to 3.9.5 + * Update required version & auto-downloaded version of `vswhere` to 2.2.11 + +-- vcpkg team <vcpkg@microsoft.com> WED, 03 Nov 2017 18:45:00 -0800 + + +vcpkg (0.0.95) +-------------- + * Update ports: + - assimp 4.0.1 -> 4.0.1-2 + - blaze 3.2-1 -> 3.2-2 + - boost 1.65.1-2 -> 1.65.1-3 + - catch 1.10.0 -> 1.11.0 + - libharu 2017-08-15-d84867ebf9f-2 -> 2017-08-15-d84867ebf9f-4 + - libsndfile libsndfile-1.0.29-6830c42-1 -> 1.0.29-6830c42-1 + - opencv 3.3.1 -> 3.3.1-4 + - pcl 1.8.1-2 -> 1.8.1-3 + - poco 1.7.8-1 -> 1.7.8-2 + - signalrclient 1.0.0-beta1-1 -> 1.0.0-beta1-2 + - vtk 8.0.0-3 -> 8.0.1-1 + - xlnt 1.1.0-1 -> 1.2.0-1 + * Various improvements in `vcpkg` when obtaining data from `PowerShell` scripts. It should now be more robust + * Fix Windows 7 (i.e. `PowerShell 2.0`) issues in `PowerShell` scripts + * Fix an issue with `feature packages` where an installed package would appear to be uninstalled if a feature of the package was installed and then uninstalled + * Bump required version & auto-downloaded version of `git` to 2.5.0 + +-- vcpkg team <vcpkg@microsoft.com> WED, 01 Nov 2017 15:30:00 -0800 + + +vcpkg (0.0.94) +-------------- + * Add ports: + - capstone 3.0.5-rc3 + - cgal 4.11 + - gettimeofday 2017-10-14-2 + - gmime 3.0.2 + - leveldb 2017-10-25-8b1cd3753b184341e837b30383832645135d3d73 + - rpclib 2.2.0 + * Update ports: + - alembic 1.7.1-4 -> 1.7.4 + - blaze 3.2 -> 3.2-1 + - boost 1.65.1-1 -> 1.65.1-2 + - ceres 1.13.0-1 -> 1.13.0-2 + - cpprestsdk 2.9.0-4 -> 2.10.0 + - cppwinrt spring_2017_creators_update_for_vs_15.3 -> fall_2017_creators_update_for_vs_15.3-2 + - cppzmq 4.2.1 -> 4.2.2 + - eigen3 3.3.4-1 -> 3.3.4-2 + - gdcm2 2.6.8-1 -> 2.8.3 + - harfbuzz 1.4.6-2 -> 1.6.3-1 + - libjpeg-turbo 1.5.2-1 -> 1.5.2-2 + - libmariadb 2.3.2-1 -> 3.0.2 + - libmysql 5.7.17-2 -> 5.7.17-3 + - live555 2017.06.04-1 -> 2017.09.12 + - mpir 3.0.0-2 -> 3.0.0-3 + - opencv 3.3.0-4 -> 3.3.1 + - pangolin 0.5-2 -> 0.5-3 + - pugixml 1.8.1-1 -> 1.8.1-2 + - secp256k1 2017-19-10-0b7024185045a49a1a6a4c5615bf31c94f63d9c4 -> 2017-19-10-0b7024185045a49a1a6a4c5615bf31c94f63d9c4-1 + - smpeg2 2.0.0-2 -> 2.0.0-3 + - sqlite3 3.20.1 -> 3.21.0 + * Bump required version & auto-downloaded version of `git` to 2.4.3 + +-- vcpkg team <vcpkg@microsoft.com> FRI, 27 Oct 2017 19:30:00 -0800 + + vcpkg (0.0.93) -------------- * Add ports: @@ -23,9 +208,9 @@ vcpkg (0.0.93) * Fix issue where `vcpkg` was getting output from powershell scripts. Powershell adds newlines when the console width is reached; the extra newlines was causing `vcpkg`'s parsing to fail. * Improve autocomplete/tab-completion for powershell (still experimental) - -- vcpkg team <vcpkg@microsoft.com> THU, 19 Oct 2017 21:30:00 -0800 + vcpkg (0.0.92) -------------- * Add ports: @@ -66,7 +251,6 @@ vcpkg (0.0.92) * Bump required version & auto-downloaded version of `git` to 2.4.2(.3) * Bump ninja to version 1.8.0 - -- vcpkg team <vcpkg@microsoft.com> TUE, 17 Oct 2017 16:00:00 -0800 @@ -10,7 +10,7 @@ Prerequisites: - Windows 10, 8.1, or 7 - Visual Studio 2017 or Visual Studio 2015 Update 3 - Git -- *Optional: CMake 3.9.4* +- *Optional: CMake 3.10.0* Clone this repository, then run ``` diff --git a/docs/about/faq.md b/docs/about/faq.md index 88f88bad0..cb711e384 100644 --- a/docs/about/faq.md +++ b/docs/about/faq.md @@ -78,7 +78,7 @@ Vcpkg uses CMake internally as a build scripting language. This is because CMake ## Will Vcpkg support downloading compiled binaries from a public or private server? We would like to eventually support downloading precompiled binaries, similar to other system package managers. -In a corporate scenario, we currently recommend building the libraries once and distributing the entire vcpkg root directory to everyone else on the project through some raw file transport such as a network share or HTTP host. See [the `export` command](../users/integration.md#export). +In a corporate scenario, we currently recommend building the libraries once and distributing the entire vcpkg root directory to everyone else on the project through some raw file transport such as a network share or HTTP host. See the [`export`](../users/integration.md#export) command. ## What Visual C++ toolsets are supported? We support Visual Studio 2015 Update 3 and above. diff --git a/docs/maintainers/vcpkg_build_msbuild.md b/docs/maintainers/vcpkg_build_msbuild.md index 178964fcd..889b07bdc 100644 --- a/docs/maintainers/vcpkg_build_msbuild.md +++ b/docs/maintainers/vcpkg_build_msbuild.md @@ -52,8 +52,8 @@ Additional options passed to msbuild for Debug builds. These are in addition to ## Examples -* [libuv](https://github.com/Microsoft/vcpkg/blob/master/ports/libuv/portfile.cmake) -* [zeromq](https://github.com/Microsoft/vcpkg/blob/master/ports/zeromq/portfile.cmake) +* [chakracore](https://github.com/Microsoft/vcpkg/blob/master/ports/chakracore/portfile.cmake) +* [cppunit](https://github.com/Microsoft/vcpkg/blob/master/ports/cppunit/portfile.cmake) ## Source [scripts/cmake/vcpkg_build_msbuild.cmake](https://github.com/Microsoft/vcpkg/blob/master/scripts/cmake/vcpkg_build_msbuild.cmake)
diff --git a/ports/abseil/CMakeLists.txt b/ports/abseil/CMakeLists.txt index 4a96b3fde..de9ce8c52 100644 --- a/ports/abseil/CMakeLists.txt +++ b/ports/abseil/CMakeLists.txt @@ -14,7 +14,7 @@ endif() function(add_sublibrary LIB) file(GLOB_RECURSE SOURCES "absl/${LIB}/*.cc") - list(FILTER SOURCES EXCLUDE REGEX "_test(_.+)?.cc$|_nonprod.cc$") + list(FILTER SOURCES EXCLUDE REGEX "_test(ing)?(_.+)?.cc$|_nonprod.cc$") file(GLOB HEADERS "absl/${LIB}/*.h") file(GLOB INTERNAL_HEADERS "absl/${LIB}/internal/*.h") @@ -83,7 +83,7 @@ target_link_public_libraries(time base numeric) target_link_public_libraries(synchronization base time) find_package(unofficial-cctz REQUIRED) -targeT_link_libraries(time PUBLIC unofficial::cctz) +target_link_libraries(time PUBLIC unofficial::cctz) install( EXPORT unofficial-abseil-targets diff --git a/ports/abseil/CONTROL b/ports/abseil/CONTROL index 44684b6b8..2e0345619 100644 --- a/ports/abseil/CONTROL +++ b/ports/abseil/CONTROL @@ -1,5 +1,5 @@ Source: abseil
-Version: 2017-10-14
+Version: 2017-11-10
Description: an open-source collection designed to augment the C++ standard library.
Abseil is an open-source collection of C++ library code designed to augment the C++ standard library. The Abseil library code is collected from Google's own C++ code base, has been extensively tested and used in production, and is the same code we depend on in our daily coding lives.
In some cases, Abseil provides pieces missing from the C++ standard; in others, Abseil provides alternatives to the standard for special needs we've found through usage in the Google code base. We denote those cases clearly within the library code we provide you.
diff --git a/ports/abseil/portfile.cmake b/ports/abseil/portfile.cmake index d74369951..639983fc0 100644 --- a/ports/abseil/portfile.cmake +++ b/ports/abseil/portfile.cmake @@ -4,14 +4,11 @@ if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") message(FATAL_ERROR "Abseil currently only supports being built for desktop")
endif()
-message("NOTE: THIS PORT IS USING AN UNOFFICIAL BUILDSYSTEM. THE BINARY LAYOUT AND CMAKE INTEGRATION WILL CHANGE IN THE FUTURE.")
-message("To use from cmake:\n find_package(unofficial-abseil REQUIRED)\n link_libraries(unofficial::abseil::strings)")
-
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO abseil/abseil-cpp
- REF 1a9ba5e2e5a14413704f0c913fac53359576d3b6
- SHA512 756e494c30324c937ca655d91afdee9acb923c7ee837a7c685441305bea2d54a75b3b21be7355abe416660984ba51ace9d234d70168fb029c601b7442397e8ff
+ REF 778abb7c279547afe7a4642063712f13a80b8eea
+ SHA512 55268321429ac5dfc432fd60e71cfac5abbc4b7145bc16bfaaff9dd05af4a3a8cb92e95906f6ebcd493f71e2fd892ddc8923011ad15fbd37ed423b70200c8538
HEAD_REF master
)
@@ -27,6 +24,14 @@ vcpkg_install_cmake() vcpkg_fixup_cmake_targets(CONFIG_PATH share/unofficial-abseil)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/abseil ${CURRENT_PACKAGES_DIR}/share/unofficial-abseil)
+file(GLOB_RECURSE HEADERS ${CURRENT_PACKAGES_DIR}/include/*)
+foreach(FILE ${HEADERS})
+ file(READ "${FILE}" _contents)
+ string(REPLACE "std::min(" "(std::min)(" _contents "${_contents}")
+ string(REPLACE "std::max(" "(std::max)(" _contents "${_contents}")
+ file(WRITE "${FILE}" "${_contents}")
+endforeach()
+
vcpkg_copy_pdbs()
file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/abseil RENAME copyright)
diff --git a/ports/ace/portfile.cmake b/ports/ace/portfile.cmake index fece3ebcc..a601f1205 100644 --- a/ports/ace/portfile.cmake +++ b/ports/ace/portfile.cmake @@ -1,3 +1,7 @@ +if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + message(FATAL_ERROR "${PORT} does not currently support UWP") +endif() + if (VCPKG_LIBRARY_LINKAGE STREQUAL static) message(STATUS "Warning: Static building not supported yet. Building dynamic.") set(VCPKG_LIBRARY_LINKAGE dynamic) diff --git a/ports/alac/CMakeLists.txt b/ports/alac/CMakeLists.txt new file mode 100644 index 000000000..843189546 --- /dev/null +++ b/ports/alac/CMakeLists.txt @@ -0,0 +1,65 @@ +cmake_minimum_required (VERSION 3.9) +project (alac) + +set(HEADERS + codec/EndianPortable.h + codec/aglib.h + codec/ALACAudioTypes.h + codec/ALACBitUtilities.h + codec/ALACDecoder.h + codec/ALACEncoder.h + codec/dplib.h + codec/matrixlib.h +) + + +set (SRCS + codec/EndianPortable.c + codec/ALACBitUtilities.c + codec/ALACDecoder.cpp + codec/ALACEncoder.cpp + codec/ag_dec.c + codec/ag_enc.c + codec/dp_dec.c + codec/dp_enc.c + codec/matrix_dec.c + codec/matrix_enc.c +) + +set(EXE_SRCS + convert-utility/main.cpp + convert-utility/CAFFileALAC.cpp +) + +if(MSVC) + add_compile_options(/W4 -D_CRT_SECURE_NO_WARNINGS -DTARGET_OS_WIN32) +endif() + +if(BUILD_SHARED_LIBS) + set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) +endif() + +include_directories(. codec convert-utility) + +add_library(libalac ${SRCS}) + +add_executable(alacconvert ${EXE_SRCS}) +target_link_libraries(alacconvert libalac) + +install( + TARGETS libalac + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) + +if(NOT DISABLE_INSTALL_TOOLS) + install ( + TARGETS alacconvert + RUNTIME DESTINATION tools/alac + ) +endif() + +if(NOT DISABLE_INSTALL_HEADERS) + install(FILES ${HEADERS} DESTINATION include/alac) +endif() diff --git a/ports/alac/CONTROL b/ports/alac/CONTROL new file mode 100644 index 000000000..f50b135e9 --- /dev/null +++ b/ports/alac/CONTROL @@ -0,0 +1,3 @@ +Source: alac +Version: 2017-11-03-c38887c5 +Description: The Apple Lossless Audio Codec (ALAC) is a lossless audio codec developed by Apple and deployed on all of its platforms and devices. diff --git a/ports/alac/portfile.cmake b/ports/alac/portfile.cmake new file mode 100644 index 000000000..309ebfef9 --- /dev/null +++ b/ports/alac/portfile.cmake @@ -0,0 +1,25 @@ +if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + message(FATAL_ERROR "${PORT} does not currently support UWP") +endif() + +include(vcpkg_common_functions) +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO macosforge/alac + REF c38887c5c5e64a4b31108733bd79ca9b2496d987 + SHA512 8da18df25807e76f9187f7bf30585aace303d55444f0a614ab00d98d11caca3fdc5c6f5b9fd11e5f4c92a2ab1e86fef73deeeada57e9d49951fea8b80ba383cc + HEAD_REF master +) + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON -DDISABLE_INSTALL_TOOLS=ON +) + +vcpkg_install_cmake() +vcpkg_copy_pdbs() +vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/alac) +file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/alac RENAME copyright) diff --git a/ports/alembic/CONTROL b/ports/alembic/CONTROL index b9d6ed50d..e9632f98e 100644 --- a/ports/alembic/CONTROL +++ b/ports/alembic/CONTROL @@ -1,4 +1,4 @@ Source: alembic -Version: 1.7.1-4 +Version: 1.7.4-1 Build-Depends: ilmbase, hdf5 Description: Alembic is an open framework for storing and sharing scene data that includes a C++ library, a file format, and client plugins and applications. http://alembic.io/ diff --git a/ports/alembic/portfile.cmake b/ports/alembic/portfile.cmake index 0d7b67dda..03d3e8dc3 100644 --- a/ports/alembic/portfile.cmake +++ b/ports/alembic/portfile.cmake @@ -8,8 +8,8 @@ endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO alembic/alembic - REF 1.7.1 - SHA512 89e30b681a76eaf79b20ebeff62c495971b0eb64b28f249a14bbcf3bdb40df7eda93b0ede299dd5511bd4587a2cc2d4ebd851fb89bf999fdccc31fee3cffbba2 + REF 1.7.4 + SHA512 8e752d6d85bea3b6a53582d35a589fc40824456098d950974effe0a6a0e359fec1e056af1ea1379f7e23b7ffed2c05c7f5269fa4b64757631b7d57fb60ee98b0 HEAD_REF master ) @@ -44,12 +44,12 @@ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/Alembic.dll ${CURRENT_PACKAGES_DIR file(READ ${CURRENT_PACKAGES_DIR}/share/Alembic/AlembicTargets-debug.cmake DEBUG_CONFIG) string(REPLACE "\${_IMPORT_PREFIX}/debug/lib/Alembic.dll" - "\${_IMPORT_PREFIX}/debug/bin/Alembic.dll" DEBUG_CONFIG ${DEBUG_CONFIG}) + "\${_IMPORT_PREFIX}/debug/bin/Alembic.dll" DEBUG_CONFIG "${DEBUG_CONFIG}") file(WRITE ${CURRENT_PACKAGES_DIR}/share/Alembic/AlembicTargets-debug.cmake "${DEBUG_CONFIG}") file(READ ${CURRENT_PACKAGES_DIR}/share/Alembic/AlembicTargets-release.cmake RELEASE_CONFIG) string(REPLACE "\${_IMPORT_PREFIX}/lib/Alembic.dll" - "\${_IMPORT_PREFIX}/bin/Alembic.dll" RELEASE_CONFIG ${RELEASE_CONFIG}) + "\${_IMPORT_PREFIX}/bin/Alembic.dll" RELEASE_CONFIG "${RELEASE_CONFIG}") file(WRITE ${CURRENT_PACKAGES_DIR}/share/Alembic/AlembicTargets-release.cmake "${RELEASE_CONFIG}") # Put the license file where vcpkg expects it diff --git a/ports/allegro5/CONTROL b/ports/allegro5/CONTROL index 8f078909a..6cf78f2a0 100644 --- a/ports/allegro5/CONTROL +++ b/ports/allegro5/CONTROL @@ -1,4 +1,4 @@ Source: allegro5 -Version: 5.2.2.0-1 +Version: 5.2.3.0 Description: Allegro is a cross-platform library mainly aimed at video game and multimedia programming. It handles common, low-level tasks such as creating windows, accepting user input, loading data, drawing images, playing sounds, etc. and generally abstracting away the underlying platform. However, Allegro is not a game engine: you are free to design and structure your program as you like. Build-Depends: opengl, zlib, freetype, libogg, libvorbis, libflac, openal-soft, libpng, bzip2, physfs, libtheora, opus, opusfile diff --git a/ports/allegro5/portfile.cmake b/ports/allegro5/portfile.cmake index d4f74a569..d22a0ecd9 100644 --- a/ports/allegro5/portfile.cmake +++ b/ports/allegro5/portfile.cmake @@ -11,12 +11,11 @@ # include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/allegro5-e8b209bc20a60224859eb8a0cae082bd20d32ed1) vcpkg_from_github( - OUT_SOURCE_PATH ${SOURCE_PATH} + OUT_SOURCE_PATH SOURCE_PATH REPO liballeg/allegro5 - REF e8b209bc20a60224859eb8a0cae082bd20d32ed1 - SHA512 50b30d4b539bd4a2488d2b33e9fbfc6fdfd340039d9086993a5719bab3cb020ee6fe7f6d3578755a52c8aab9816d25cd74710ce93b0b374a2f97620b6138419d + REF 5.2.3.0 + SHA512 419f036d0265062dbec0e9306b153de5af5375186f7b5b2fe62a80549fc0e2c2a6afff81a6772effa7624fe2e452ed0a2830872ef25cc3b23fea93af99f60ba9 HEAD_REF master ) diff --git a/ports/angle/CMakeLists.txt b/ports/angle/CMakeLists.txt index 5a4c05359..53fff2223 100644 --- a/ports/angle/CMakeLists.txt +++ b/ports/angle/CMakeLists.txt @@ -178,6 +178,7 @@ target_compile_definitions(libGLESv2 -DGL_APICALL= -DEGLAPI= ) +target_include_directories(libGLESv2 PUBLIC "$<INSTALL_INTERFACE:include>") ########## # libEGL @@ -188,13 +189,16 @@ add_library(libEGL "src/libEGL/resource.h" ) target_link_libraries(libEGL PRIVATE angle::common angle::libANGLE libGLESv2) +target_include_directories(libEGL PUBLIC "$<INSTALL_INTERFACE:include>") -install(TARGETS libEGL libGLESv2 +install(TARGETS libEGL libGLESv2 EXPORT ANGLEExport RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) +install(EXPORT ANGLEExport FILE unofficial-angle-config.cmake NAMESPACE unofficial::angle:: DESTINATION share/unofficial-angle) + if(NOT DISABLE_INSTALL_HEADERS) install( DIRECTORY include/ diff --git a/ports/angle/CONTROL b/ports/angle/CONTROL index 38f8c7c60..12f912ac8 100644 --- a/ports/angle/CONTROL +++ b/ports/angle/CONTROL @@ -1,4 +1,4 @@ Source: angle
-Version: 2017-06-14-8d471f-2
+Version: 2017-06-14-8d471f-4
Description: A conformant OpenGL ES implementation for Windows, Mac and Linux.
The goal of ANGLE is to allow users of multiple operating systems to seamlessly run WebGL and other OpenGL ES content by translating OpenGL ES API calls to one of the hardware-supported APIs available for that platform. ANGLE currently provides translation from OpenGL ES 2.0 and 3.0 to desktop OpenGL, OpenGL ES, Direct3D 9, and Direct3D 11. Support for translation from OpenGL ES to Vulkan is underway, and future plans include compute shader support (ES 3.1) and MacOS support.
diff --git a/ports/angle/portfile.cmake b/ports/angle/portfile.cmake index ab7ebd828..e21aa83bc 100644 --- a/ports/angle/portfile.cmake +++ b/ports/angle/portfile.cmake @@ -31,6 +31,10 @@ vcpkg_configure_cmake( )
vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH share/unofficial-angle)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/angle ${CURRENT_PACKAGES_DIR}/share/unofficial-angle)
+
vcpkg_copy_pdbs()
file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/angle RENAME copyright)
diff --git a/ports/antlr4/CONTROL b/ports/antlr4/CONTROL index 03877e495..bf4df8d1c 100644 --- a/ports/antlr4/CONTROL +++ b/ports/antlr4/CONTROL @@ -1,3 +1,3 @@ Source: antlr4 -Version: 4.6-1 +Version: 4.7 Description: ANother Tool for Language Recognition
\ No newline at end of file diff --git a/ports/antlr4/portfile.cmake b/ports/antlr4/portfile.cmake index 868efcdbe..0d77208e0 100644 --- a/ports/antlr4/portfile.cmake +++ b/ports/antlr4/portfile.cmake @@ -1,12 +1,16 @@ +if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ message(FATAL_ERROR "${PORT} does not currently support UWP")
+endif()
+
include(vcpkg_common_functions)
-set(VERSION 4.6)
+set(VERSION 4.7)
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/runtime)
vcpkg_download_distfile(ARCHIVE
- URLS "http://www.antlr.org/download/antlr4-cpp-runtime-4.6-source.zip"
+ URLS "http://www.antlr.org/download/antlr4-cpp-runtime-4.7-source.zip"
FILENAME "antlr4-cpp-runtime-${VERSION}-source.zip"
- SHA512 e123c2227e41ce80da5a3758725a018690ed70a4e10c23da26c966259e6bdafa192f4363f5a7e1181ef9a47bf3cc50d6b0ca7b26c8dd2b19222a7edf54de8de2
+ SHA512 a14fd3320537075a8d4c1cfa81d416bad6257d238608e2428f4930495072cce984c707126e3777ffd3849dd6b6cdf1bf43624bd6d318b1fa5dd6749a7304f808
)
# license not exist in antlr folder.
diff --git a/ports/antlr4/static.patch b/ports/antlr4/static.patch index fb54c5ae4..e66787233 100644 --- a/ports/antlr4/static.patch +++ b/ports/antlr4/static.patch @@ -1,12 +1,12 @@ diff --git a/antlr4-common.h b/antlr4-common.h -index 197fd6d..34a62c8 100644 +index ce45e9e..3162795 100644 --- a/antlr4-common.h +++ b/antlr4-common.h -@@ -34,6 +34,7 @@ - #include <bitset> - #include <condition_variable> +@@ -48,6 +48,7 @@ + #endif -+#define ANTLR4CPP_STATIC - // Defines for the Guid class and other platform dependent stuff. - #ifdef _WIN32 - #pragma warning (disable: 4250) // Class inherits by dominance. + #define GUID_WINDOWS ++ #define ANTLR4CPP_STATIC + + #ifdef _WIN64 + typedef __int64 ssize_t; diff --git a/ports/apr/CONTROL b/ports/apr/CONTROL index 94581eab0..1f771a0ed 100644 --- a/ports/apr/CONTROL +++ b/ports/apr/CONTROL @@ -1,3 +1,3 @@ Source: apr -Version: 1.6.2-1 +Version: 1.6.3 Description: The Apache Portable Runtime (APR) is a C library that forms a system portability layer that covers many operating systems. diff --git a/ports/apr/portfile.cmake b/ports/apr/portfile.cmake index 414ca1dda..22bd260c8 100644 --- a/ports/apr/portfile.cmake +++ b/ports/apr/portfile.cmake @@ -1,17 +1,16 @@ -# Common Ambient Variables: -# VCPKG_ROOT_DIR = <C:\path\to\current\vcpkg> -# TARGET_TRIPLET is the current triplet (x86-windows, etc) -# PORT is the current port name (zlib, etc) -# CURRENT_BUILDTREES_DIR = ${VCPKG_ROOT_DIR}\buildtrees\${PORT} -# CURRENT_PACKAGES_DIR = ${VCPKG_ROOT_DIR}\packages\${PORT}_${TARGET_TRIPLET} -# +if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + message(FATAL_ERROR "${PORT} does not currently support UWP") +endif() include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/apr-1.6.2) + +set(VERSION 1.6.3) + +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/apr-${VERSION}) vcpkg_download_distfile(ARCHIVE - URLS "https://www.apache.org/dist/apr/apr-1.6.2.tar.bz2" - FILENAME "apr-1.6.2.tar.bz2" - SHA512 20f449fde522f186b919b64ce6f90073b267557e17438607d31af917eca7941222dd7a7379d66f1430ff68f7e28fbccd140d24f3ca7aae8a876a550b19de284a + URLS "https://www.apache.org/dist/apr/apr-${VERSION}.tar.bz2" + FILENAME "apr-${VERSION}.tar.bz2" + SHA512 f6b8679ae7fafff793c825c78775c84a646267c441710a50664589850e13148719b4eab48ab6e7c95b7aed085cff831115687434a7b160dcc2faa0eae63ac996 ) vcpkg_extract_source_archive(${ARCHIVE}) diff --git a/ports/arb/CMakeLists.txt b/ports/arb/CMakeLists.txt new file mode 100644 index 000000000..3474c9974 --- /dev/null +++ b/ports/arb/CMakeLists.txt @@ -0,0 +1,94 @@ +cmake_minimum_required(VERSION 2.8.12) + +project(arb C) + +set (DEPS mpir mpfr pthreads flint2 gettimeofday) +set (mpir_lib gmp mpir) +set (mpfr_lib mpfr) +set (pthreads_lib pthreads pthread) +set (flint2_lib ${LIBRARY_TYPE}_flint flint) +set (gettimeofday_lib gettimeofday) + +set (mpir_header gmp.h) +set (mpfr_header mpfr.h) +set (pthreads_header pthread.h) +set (flint2_header flint/flint.h) +set (gettimeofday_header gettimeofday.h) + +foreach (LIB ${DEPS}) + string (TOUPPER ${LIB} LIB_UPPER) + find_library(${LIB_UPPER}_LIBRARY NAMES ${${LIB}_lib}) + if (NOT ${LIB_UPPER}_LIBRARY) + message(FATAL_ERROR "${LIB} library not found.") + endif() + add_library(${LIB} UNKNOWN IMPORTED) + set_property(TARGET ${LIB} PROPERTY IMPORTED_LOCATION ${${LIB_UPPER}_LIBRARY}) + message("${LIB} found in ${${LIB_UPPER}_LIBRARY}") +endforeach () + +foreach (LIB ${DEPS}) + string(TOUPPER ${LIB} HEADER_PKG) + set (HEADER ${${LIB}_header}) + find_path(${HEADER_PKG}_INCLUDE_DIR NAMES ${HEADER}) + if (NOT ${HEADER_PKG}_INCLUDE_DIR) + message(FATAL_ERROR "${HEADER} header not found.") + endif() + message("${HEADER} found in ${${HEADER_PKG}_INCLUDE_DIR}") + set (DEP_INCLUDE_DIRS ${DEP_INCLUDE_DIRS} ${${HEADER_PKG}_INCLUDE_DIR}) +endforeach () + +file(GLOB TEMP "*.h") + +foreach (TEMP_H ${TEMP}) + get_filename_component(FOLDER ${TEMP_H} NAME_WE) + set(FOLDERS ${FOLDERS} ${FOLDER}) +endforeach() + +foreach (FOLDER ${FOLDERS}) + file(GLOB TEMP "${FOLDER}/*.c") + set(SRC ${SRC} ${TEMP}) +endforeach () + +include_directories(BEFORE ${arb_SOURCE_DIR}) +include_directories(BEFORE ${DEP_INCLUDE_DIRS}) + +add_library(arb ${SRC}) + +target_compile_definitions(arb PRIVATE HAVE_TLS=1 FLINT_REENTRANT=0) +if (BUILD_SHARED_LIBS) + target_compile_definitions(arb PRIVATE MSC_USE_DLL) + set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS yes) + MESSAGE( STATUS "Building shared libraries" ) +else () + target_compile_definitions(arb PRIVATE PTW32_STATIC_LIB) + MESSAGE( STATUS "Building static libraries" ) +endif() +target_compile_definitions(arb PRIVATE "ARB_BUILD_DLL") + +target_link_libraries(arb ${DEPS}) + +install(TARGETS arb + RUNTIME DESTINATION bin + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib + ) + +foreach (FOLDER ${FOLDERS}) + set(HEADERS ${HEADERS} ${FOLDER}.h) +endforeach () + +install(FILES ${HEADERS} DESTINATION include) + +if (BUILD_TESTS) + enable_testing() + foreach (FOLDER ${FOLDERS}) + file(GLOB TEMP "${FOLDER}/test/*.c") + foreach (TEST_SOURCE ${TEMP}) + get_filename_component(TEST_NAME ${TEST_SOURCE} NAME_WE) + add_executable(${FOLDER}-${TEST_NAME} ${TEST_SOURCE}) + target_link_libraries(${FOLDER}-${TEST_NAME} arb) + add_test(${FOLDER}-${TEST_NAME} ${FOLDER}-${TEST_NAME}) + endforeach () + endforeach () +endif () + diff --git a/ports/arb/CONTROL b/ports/arb/CONTROL new file mode 100644 index 000000000..2166fd1e0 --- /dev/null +++ b/ports/arb/CONTROL @@ -0,0 +1,4 @@ +Source: arb +Version: 2.11.1 +Description: a C library for arbitrary-precision interval arithmetic +Build-Depends: flint diff --git a/ports/arb/portfile.cmake b/ports/arb/portfile.cmake new file mode 100644 index 000000000..32bb3a23b --- /dev/null +++ b/ports/arb/portfile.cmake @@ -0,0 +1,32 @@ +if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) + message(STATUS "Warning: Dynamic building not supported yet. Building static.") + set(VCPKG_LIBRARY_LINKAGE static) +endif() + +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO fredrik-johansson/arb + REF 2.11.1 + SHA512 7a014da5208b55f20c7a3cd3eb51070b09ae107b04cbbd6329925780c2ab4d7c38e1fb3619f21456fa806939818370fcae921f59eb013661b6bdd3d0971e3353 + HEAD_REF master +) + +file(REMOVE ${SOURCE_PATH}/CMakeLists.txt) +file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA +) + +vcpkg_install_cmake() +vcpkg_copy_pdbs() + + +# Handle copyright +file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/arb RENAME copyright) + +# Remove duplicate headers +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) diff --git a/ports/assimp/CONTROL b/ports/assimp/CONTROL index 170d727a8..f6e6eaaff 100644 --- a/ports/assimp/CONTROL +++ b/ports/assimp/CONTROL @@ -1,4 +1,4 @@ Source: assimp -Version: 4.0.1 +Version: 4.0.1-3 Description: The Open Asset import library Build-Depends: zlib diff --git a/ports/assimp/dont-overwrite-prefix-path.patch b/ports/assimp/dont-overwrite-prefix-path.patch new file mode 100644 index 000000000..fc58a99c5 --- /dev/null +++ b/ports/assimp/dont-overwrite-prefix-path.patch @@ -0,0 +1,12 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index d781d1f..0d64d50 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -92,7 +92,6 @@ if (WIN32) + endif() + + IF(MSVC) +- set (CMAKE_PREFIX_PATH "D:\\libs\\devil") + OPTION( ASSIMP_INSTALL_PDB + "Install MSVC debug files." + ON diff --git a/ports/assimp/portfile.cmake b/ports/assimp/portfile.cmake index 0642fb701..583738e16 100644 --- a/ports/assimp/portfile.cmake +++ b/ports/assimp/portfile.cmake @@ -10,16 +10,22 @@ vcpkg_from_github( vcpkg_apply_patches( SOURCE_PATH ${SOURCE_PATH} - PATCHES ${CMAKE_CURRENT_LIST_DIR}/const-compare-worditerator.patch + PATCHES + "${CMAKE_CURRENT_LIST_DIR}/const-compare-worditerator.patch" + "${CMAKE_CURRENT_LIST_DIR}/dont-overwrite-prefix-path.patch" ) +file(REMOVE ${SOURCE_PATH}/cmake-modules/FindZLIB.cmake) +set(VCPKG_C_FLAGS "${VCPKG_C_FLAGS} -D_CRT_SECURE_NO_WARNINGS") +set(VCPKG_CXX_FLAGS "${VCPKG_CXX_FLAGS} -D_CRT_SECURE_NO_WARNINGS") + vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} - OPTIONS -DASSIMP_BUILD_TESTS=False - -DASSIMP_BUILD_ASSIMP_VIEW=False - -DASSIMP_BUILD_ZLIB=False - -DASSIMP_BUILD_ASSIMP_TOOLS=False - -DASSIMP_INSTALL_PDB=False + OPTIONS -DASSIMP_BUILD_TESTS=OFF + -DASSIMP_BUILD_ASSIMP_VIEW=OFF + -DASSIMP_BUILD_ZLIB=OFF + -DASSIMP_BUILD_ASSIMP_TOOLS=OFF + -DASSIMP_INSTALL_PDB=OFF ) vcpkg_install_cmake() @@ -29,8 +35,6 @@ vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/assimp-4.0") vcpkg_copy_pdbs() file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/cmake) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) file(READ ${CURRENT_PACKAGES_DIR}/share/assimp/assimp-config.cmake ASSIMP_CONFIG) diff --git a/ports/atkmm/CONTROL b/ports/atkmm/CONTROL new file mode 100644 index 000000000..3a8d55164 --- /dev/null +++ b/ports/atkmm/CONTROL @@ -0,0 +1,4 @@ +Source: atkmm +Version: 2.24.2 +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 diff --git a/ports/atkmm/COPYING b/ports/atkmm/COPYING new file mode 100644 index 000000000..2d2d780e6 --- /dev/null +++ b/ports/atkmm/COPYING @@ -0,0 +1,510 @@ + + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations +below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it +becomes a de-facto standard. To achieve this, non-free programs must +be allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control +compilation and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at least + three years, to give the same user the materials specified in + Subsection 6a, above, for a charge no more than the cost of + performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply, and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License +may add an explicit geographical distribution limitation excluding those +countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms +of the ordinary General Public License). + + To apply these terms, attach the following notices to the library. +It is safest to attach them to the start of each source file to most +effectively convey the exclusion of warranty; and each file should +have at least the "copyright" line and a pointer to where the full +notice is found. + + + <one line to give the library's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or +your school, if any, to sign a "copyright disclaimer" for the library, +if necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James + Random Hacker. + + <signature of Ty Coon>, 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + diff --git a/ports/atkmm/README b/ports/atkmm/README new file mode 100644 index 000000000..e3ac5c916 --- /dev/null +++ b/ports/atkmm/README @@ -0,0 +1,2 @@ +atkmm is the C++ binding for the ATK library. +This module is part of the GNOME C++ bindings effort <http://www.gtkmm.org/>. diff --git a/ports/atkmm/fix_charset.patch b/ports/atkmm/fix_charset.patch new file mode 100644 index 000000000..60cd8fbcd --- /dev/null +++ b/ports/atkmm/fix_charset.patch @@ -0,0 +1,98 @@ +diff --git a/MSVC_Net2013/atkmm.vcxproj b/MSVC_Net2013/atkmm.vcxproj +index 40f21cb..e9f5c5e 100644 +--- a/MSVC_Net2013/atkmm.vcxproj ++++ b/MSVC_Net2013/atkmm.vcxproj +@@ -22,21 +22,22 @@ + <ProjectName>atkmm</ProjectName> + <ProjectGuid>{9FE0D5A6-458C-45C7-B954-2C3C1E6196C2}</ProjectGuid> + <Keyword>Win32Proj</Keyword> ++ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> +diff --git a/MSVC_Net2013/gendef.vcxproj b/MSVC_Net2013/gendef.vcxproj +index d6f2798..aab7023 100644 +--- a/MSVC_Net2013/gendef.vcxproj ++++ b/MSVC_Net2013/gendef.vcxproj +@@ -21,21 +21,22 @@ + <PropertyGroup Label="Globals"> + <ProjectGuid>{07324745-C9BE-4D65-B08A-9C88188C0C28}</ProjectGuid> + <Keyword>Win32Proj</Keyword> ++ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> +diff --git a/MSVC_Net2013/install.vcxproj b/MSVC_Net2013/install.vcxproj +index 6225a66..7f61dc5 100644 +--- a/MSVC_Net2013/install.vcxproj ++++ b/MSVC_Net2013/install.vcxproj +@@ -22,28 +22,29 @@ + <ProjectGuid>{2093D218-190E-4194-9421-3BA7CBF33B10}</ProjectGuid> + <RootNamespace>install</RootNamespace> + <Keyword>Win32Proj</Keyword> ++ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Utility</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <WholeProgramOptimization>true</WholeProgramOptimization> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>Utility</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>Utility</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <WholeProgramOptimization>true</WholeProgramOptimization> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>Utility</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> diff --git a/ports/atkmm/fix_properties.patch b/ports/atkmm/fix_properties.patch new file mode 100644 index 000000000..a03924386 --- /dev/null +++ b/ports/atkmm/fix_properties.patch @@ -0,0 +1,306 @@ +diff --git a/MSVC_Net2013/atkmm-build-defines.props b/MSVC_Net2013/atkmm-build-defines.props +index 421f5c3..0275e6e 100644 +--- a/MSVC_Net2013/atkmm-build-defines.props ++++ b/MSVC_Net2013/atkmm-build-defines.props +@@ -5,8 +5,6 @@ + </ImportGroup> + <PropertyGroup Label="UserMacros"> + <AtkMMBuildDefs>ATKMM_BUILD</AtkMMBuildDefs> +- <CPPDepLibsRelease>glibmm-vc$(VSVer)0-2_4.lib;sigc-vc$(VSVer)0-2_0.lib</CPPDepLibsRelease> +- <CPPDepLibsDebug>glibmm-vc$(VSVer)0-d-2_4.lib;sigc-vc$(VSVer)0-d-2_0.lib</CPPDepLibsDebug> + </PropertyGroup> + <PropertyGroup> + <_PropertySheetDisplayName>panogmmbuilddefinesprops</_PropertySheetDisplayName> +@@ -15,25 +13,19 @@ + </PropertyGroup> + <ItemDefinitionGroup> + <ClCompile> +- <AdditionalIncludeDirectories>.\atkmm;..\atk;$(GlibEtcInstallRoot)\include\glibmm-2.4;$(GlibEtcInstallRoot)\lib\glibmm-2.4\include;$(GlibEtcInstallRoot)\include\sigc++-2.0;$(GlibEtcInstallRoot)\lib\sigc++-2.0\include;$(GlibEtcInstallRoot)\include\atk-1.0;$(GlibEtcInstallRoot)\include\glib-2.0;$(GlibEtcInstallRoot)\lib\glib-2.0\include;$(GlibEtcInstallRoot)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> ++ <AdditionalIncludeDirectories>.\atkmm;..\atk;.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <ForcedIncludeFiles>msvc_recommended_pragmas.h;%(ForcedIncludeFiles)</ForcedIncludeFiles> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + <AdditionalOptions>/d2Zi+ %(AdditionalOptions)</AdditionalOptions> + </ClCompile> + <Link> +- <AdditionalDependencies>atk-1.0.lib;gobject-2.0.lib;glib-2.0.lib;%(AdditionalDependencies)</AdditionalDependencies> +- <AdditionalLibraryDirectories>$(GlibEtcInstallRoot)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> ++ <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> ++ <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <BuildMacro Include="AtkMMBuildDefs"> + <Value>$(AtkMMBuildDefs)</Value> + </BuildMacro> +- <BuildMacro Include="CPPDepLibsRelease"> +- <Value>$(CPPDepLibsRelease)</Value> +- </BuildMacro> +- <BuildMacro Include="CPPDepLibsDebug"> +- <Value>$(CPPDepLibsDebug)</Value> +- </BuildMacro> + </ItemGroup> + </Project> +\ No newline at end of file +diff --git a/MSVC_Net2013/atkmm-version-paths.props b/MSVC_Net2013/atkmm-version-paths.props +index affd50f..675aa3e 100644 +--- a/MSVC_Net2013/atkmm-version-paths.props ++++ b/MSVC_Net2013/atkmm-version-paths.props +@@ -2,13 +2,9 @@ + <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup Label="UserMacros"> + <VSVer>12</VSVer> +- <GlibEtcInstallRoot>$(SolutionDir)\..\..\vs$(VSVer)\$(Platform)</GlibEtcInstallRoot> +- <CopyDir>$(GlibEtcInstallRoot)</CopyDir> + <DefDir>$(SolutionDir)$(Configuration)\$(Platform)\obj\$(ProjectName)\</DefDir> + <ApiMajorVersion>1</ApiMajorVersion> + <ApiMinorVersion>6</ApiMinorVersion> +- <ReleaseDllSuffix>-vc$(VSVer)0-$(ApiMajorVersion)_$(ApiMinorVersion)</ReleaseDllSuffix> +- <DebugDllSuffix>-vc$(VSVer)0-d-$(ApiMajorVersion)_$(ApiMinorVersion)</DebugDllSuffix> + </PropertyGroup> + <PropertyGroup> + <_PropertySheetDisplayName>atkmmversionpathsprops</_PropertySheetDisplayName> +@@ -17,12 +13,6 @@ + <BuildMacro Include="VSVer"> + <Value>$(VSVer)</Value> + </BuildMacro> +- <BuildMacro Include="GlibEtcInstallRoot"> +- <Value>$(GlibEtcInstallRoot)</Value> +- </BuildMacro> +- <BuildMacro Include="CopyDir"> +- <Value>$(CopyDir)</Value> +- </BuildMacro> + <BuildMacro Include="DefDir"> + <Value>$(DefDir)</Value> + </BuildMacro> +@@ -32,11 +22,5 @@ + <BuildMacro Include="ApiMinorVersion"> + <Value>$(ApiMinorVersion)</Value> + </BuildMacro> +- <BuildMacro Include="ReleaseDllSuffix"> +- <Value>$(ReleaseDllSuffix)</Value> +- </BuildMacro> +- <BuildMacro Include="DebugDllSuffix"> +- <Value>$(DebugDllSuffix)</Value> +- </BuildMacro> + </ItemGroup> + </Project> +\ No newline at end of file +diff --git a/MSVC_Net2013/atkmm.vcxproj b/MSVC_Net2013/atkmm.vcxproj +index c3db50a..40f21cb 100644 +--- a/MSVC_Net2013/atkmm.vcxproj ++++ b/MSVC_Net2013/atkmm.vcxproj +@@ -41,7 +41,7 @@ + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> +diff --git a/MSVC_Net2013/atkmm.vcxproj.filters b/MSVC_Net2013/atkmm.vcxproj.filters +index f0fca22..6598996 100644 +--- a/MSVC_Net2013/atkmm.vcxproj.filters ++++ b/MSVC_Net2013/atkmm.vcxproj.filters +@@ -15,55 +15,143 @@ + </Filter> + </ItemGroup> + <ItemGroup> +- <ClCompile Include="..\atk\atkmm\action.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\atk\atkmm\component.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\atk\atkmm\document.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\atk\atkmm\editabletext.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\atk\atkmm\hyperlink.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\atk\atkmm\hypertext.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\atk\atkmm\image.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\atk\atkmm\implementor.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\atk\atkmm\init.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\atk\atkmm\noopobject.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\atk\atkmm\object.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\atk\atkmm\objectaccessible.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\atk\atkmm\range.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\atk\atkmm\relation.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\atk\atkmm\relationset.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\atk\atkmm\selection.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\atk\atkmm\stateset.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\atk\atkmm\streamablecontent.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\atk\atkmm\table.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\atk\atkmm\text.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\atk\atkmm\value.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\atk\atkmm\wrap_init.cc"><Filter>Source Files</Filter></ClCompile> ++ <ClCompile Include="..\atk\atkmm\action.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\atk\atkmm\component.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\atk\atkmm\document.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\atk\atkmm\editabletext.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\atk\atkmm\hyperlink.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\atk\atkmm\hypertext.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\atk\atkmm\image.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\atk\atkmm\implementor.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\atk\atkmm\init.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\atk\atkmm\noopobject.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\atk\atkmm\object.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\atk\atkmm\objectaccessible.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\atk\atkmm\range.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\atk\atkmm\relation.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\atk\atkmm\relationset.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\atk\atkmm\selection.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\atk\atkmm\stateset.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\atk\atkmm\streamablecontent.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\atk\atkmm\table.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\atk\atkmm\text.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\atk\atkmm\value.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\atk\atkmm\wrap_init.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> + </ItemGroup> + <ItemGroup> +- <ClInclude Include="..\atk\atkmm\action.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\atk\atkmm\component.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\atk\atkmm\document.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\atk\atkmm\editabletext.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\atk\atkmm\hyperlink.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\atk\atkmm\hypertext.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\atk\atkmm\image.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\atk\atkmm\implementor.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\atk\atkmm\init.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\atk\atkmm\noopobject.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\atk\atkmm\object.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\atk\atkmm\objectaccessible.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\atk\atkmm\range.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\atk\atkmm\relation.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\atk\atkmm\relationset.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\atk\atkmm\selection.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\atk\atkmm\stateset.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\atk\atkmm\streamablecontent.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\atk\atkmm\table.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\atk\atkmm\text.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\atk\atkmm\value.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\atk\atkmm\wrap_init.h"><Filter>Header Files</Filter></ClInclude> ++ <ClInclude Include="..\atk\atkmm\action.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\atk\atkmm\component.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\atk\atkmm\document.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\atk\atkmm\editabletext.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\atk\atkmm\hyperlink.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\atk\atkmm\hypertext.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\atk\atkmm\image.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\atk\atkmm\implementor.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\atk\atkmm\init.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\atk\atkmm\noopobject.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\atk\atkmm\object.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\atk\atkmm\objectaccessible.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\atk\atkmm\range.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\atk\atkmm\relation.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\atk\atkmm\relationset.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\atk\atkmm\selection.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\atk\atkmm\stateset.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\atk\atkmm\streamablecontent.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\atk\atkmm\table.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\atk\atkmm\text.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\atk\atkmm\value.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\atk\atkmm\wrap_init.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> + </ItemGroup> + <ItemGroup> +- <ResourceCompile Include="atkmm.rc"> ++ <ResourceCompile Include=".\atkmm\atkmm.rc"> + <Filter>Resource Files</Filter> + </ResourceCompile> + </ItemGroup> +diff --git a/MSVC_Net2013/gendef.vcxproj b/MSVC_Net2013/gendef.vcxproj +index 554054c..d6f2798 100644 +--- a/MSVC_Net2013/gendef.vcxproj ++++ b/MSVC_Net2013/gendef.vcxproj +@@ -40,7 +40,7 @@ + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> diff --git a/ports/atkmm/msvc_recommended_pragmas.h b/ports/atkmm/msvc_recommended_pragmas.h new file mode 100644 index 000000000..c0eb1d5ed --- /dev/null +++ b/ports/atkmm/msvc_recommended_pragmas.h @@ -0,0 +1,34 @@ +#ifndef _MSC_VER +#pragma error "This header is for Microsoft VC only." +#endif /* _MSC_VER */ + +/* Make MSVC more pedantic, this is a recommended pragma list + * from _Win32_Programming_ by Rector and Newcomer. + */ +#pragma warning(error:4002) /* too many actual parameters for macro */ +#pragma warning(error:4003) /* not enough actual parameters for macro */ +#pragma warning(1:4010) /* single-line comment contains line-continuation character */ +#pragma warning(error:4013) /* 'function' undefined; assuming extern returning int */ +#pragma warning(1:4016) /* no function return type; using int as default */ +#pragma warning(error:4020) /* too many actual parameters */ +#pragma warning(error:4021) /* too few actual parameters */ +#pragma warning(error:4027) /* function declared without formal parameter list */ +#pragma warning(error:4029) /* declared formal parameter list different from definition */ +#pragma warning(error:4033) /* 'function' must return a value */ +#pragma warning(error:4035) /* 'function' : no return value */ +#pragma warning(error:4045) /* array bounds overflow */ +#pragma warning(error:4047) /* different levels of indirection */ +#pragma warning(error:4049) /* terminating line number emission */ +#pragma warning(error:4053) /* An expression of type void was used as an operand */ +#pragma warning(error:4071) /* no function prototype given */ +#pragma warning(disable:4101) /* unreferenced local variable */ +#pragma warning(error:4150) + +#pragma warning(disable:4244) /* No possible loss of data warnings */ +#pragma warning(disable:4305) /* No truncation from int to char warnings */ + +#pragma warning(error:4819) /* The file contains a character that cannot be represented in the current code page */ + +/* work around Microsoft's premature attempt to deprecate the C-Library */ +#define _CRT_SECURE_NO_WARNINGS +#define _CRT_NONSTDC_NO_WARNINGS diff --git a/ports/atkmm/portfile.cmake b/ports/atkmm/portfile.cmake new file mode 100644 index 000000000..4cbaee7ad --- /dev/null +++ b/ports/atkmm/portfile.cmake @@ -0,0 +1,71 @@ +# ATK uses DllMain, so atkmm also +if (VCPKG_LIBRARY_LINKAGE STREQUAL static) + message(STATUS "Warning: Static building not supported. Building dynamic.") + set(VCPKG_LIBRARY_LINKAGE dynamic) +endif() + +include(vcpkg_common_functions) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/atkmm-2.24.2) +vcpkg_download_distfile(ARCHIVE + URLS "http://ftp.gnome.org/pub/GNOME/sources/atkmm/2.24/atkmm-2.24.2.tar.xz" + FILENAME "atkmm-2.24.2.tar.xz" + SHA512 427714cdf3b10e3f9bc36df09c4b05608d295f5895fb1e079b9bd84afdf7bf1cfdec6794ced7f1e35bd430b76f87792df4ee63c515071a2ea6e3e51e672cdbe2 +) +vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES ${CMAKE_CURRENT_LIST_DIR}/fix_properties.patch ${CMAKE_CURRENT_LIST_DIR}/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} + # Need this for it to pick up xerces-c port: https://github.com/Microsoft/vcpkg/issues/891 + OPTIONS /p:ForceImportBeforeCppTargets=${VCPKG_ROOT_DIR}/scripts/buildsystems/msbuild/vcpkg.targets +) + +# 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() + +# Handle copyright and readme +file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/atkmm RENAME copyright) +file(INSTALL ${SOURCE_PATH}/README DESTINATION ${CURRENT_PACKAGES_DIR}/share/atkmm RENAME readme.txt) diff --git a/ports/aubio/CMakeLists.txt b/ports/aubio/CMakeLists.txt index 3e20a28f6..50e61339e 100644 --- a/ports/aubio/CMakeLists.txt +++ b/ports/aubio/CMakeLists.txt @@ -15,6 +15,8 @@ add_definitions( -DHAVE_WAVREAD=1 -DHAVE_LIBAV=1 -DHAVE_SWRESAMPLE=1 + + -D_CRT_SECURE_NO_WARNINGS=1 ) set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) diff --git a/ports/aubio/CONTROL b/ports/aubio/CONTROL index 34fcaa495..635d2a9c9 100644 --- a/ports/aubio/CONTROL +++ b/ports/aubio/CONTROL @@ -1,4 +1,4 @@ Source: aubio -Version: 0.46~alpha-3 +Version: 0.46 Description: Aubio is a tool designed for the extraction of annotations from audio signals. Its features include segmenting a sound file before each of its attacks, performing pitch detection, tapping the beat and producing midi streams from live audio. Build-Depends: ffmpeg, libsndfile, libogg, libflac, libvorbis diff --git a/ports/aubio/portfile.cmake b/ports/aubio/portfile.cmake index 9421f2487..02b898246 100644 --- a/ports/aubio/portfile.cmake +++ b/ports/aubio/portfile.cmake @@ -1,11 +1,12 @@ include(vcpkg_common_functions) set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/aubio-3c230fae309e9ea3298783368dd71bae6172359a) -vcpkg_download_distfile(ARCHIVE - URLS "https://github.com/aubio/aubio/archive/3c230fae309e9ea3298783368dd71bae6172359a.zip" - FILENAME "aubio-0.4.6-3c230f.zip" - SHA512 081fe59612f0b1860f465208739b1377869c64b91cecf4a6f6fbdea19204b801c650ff956b34be5988ef1905f3546d3c55846037487e0b34b014f1adbb68629c +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO aubio/aubio + REF 0.4.6 + SHA512 9bb787d81f39ab8e3440be9936552a712a24e009884818e13e80dde756ad3874055bcd931ca3af638122f6a0d0bc53e62e1abeedce3fd79af35fe9ddea6bc707 + HEAD_REF master ) -vcpkg_extract_source_archive(${ARCHIVE}) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) diff --git a/ports/avro-c/CONTROL b/ports/avro-c/CONTROL new file mode 100644 index 000000000..3a7334c41 --- /dev/null +++ b/ports/avro-c/CONTROL @@ -0,0 +1,4 @@ +Source: avro-c +Version: 1.8.2 +Description: Apache Avro is a data serialization system +Build-Depends: jansson, liblzma, zlib diff --git a/ports/avro-c/avro-pr-217.patch b/ports/avro-c/avro-pr-217.patch new file mode 100644 index 000000000..9a5ddd3a8 --- /dev/null +++ b/ports/avro-c/avro-pr-217.patch @@ -0,0 +1,421 @@ +diff --git a/lang/c/src/schema.c b/lang/c/src/schema.c +index 3ade1140e..97e3ff354 100644 +--- a/lang/c/src/schema.c ++++ b/lang/c/src/schema.c +@@ -2,17 +2,17 @@ + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. +- * The ASF licenses this file to you under the Apache License, Version 2.0 ++ * The ASF licenses this file to you under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at +- * ++ * + * http://www.apache.org/licenses/LICENSE-2.0 +- * ++ * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing +- * permissions and limitations under the License. ++ * permissions and limitations under the License. + */ + + #include "avro/allocation.h" +@@ -61,7 +61,7 @@ static int is_avro_id(const char *name) + } + } + /* +- * starts with [A-Za-z_] subsequent [A-Za-z0-9_] ++ * starts with [A-Za-z_] subsequent [A-Za-z0-9_] + */ + return 1; + } +@@ -199,7 +199,13 @@ static void avro_schema_free(avro_schema_t schema) + case AVRO_LINK:{ + struct avro_link_schema_t *link; + link = avro_schema_to_link(schema); +- avro_schema_decref(link->to); ++ /* Since we didn't increment the ++ * reference count of the target ++ * schema when we created the link, we ++ * should not decrement the reference ++ * count of the target schema when we ++ * free the link. ++ */ + avro_freet(struct avro_link_schema_t, link); + } + break; +@@ -727,7 +733,19 @@ avro_schema_t avro_schema_link(avro_schema_t to) + avro_set_error("Cannot allocate new link schema"); + return NULL; + } +- link->to = avro_schema_incref(to); ++ ++ /* Do not increment the reference count of target schema ++ * pointed to by the AVRO_LINK. AVRO_LINKs are only valid ++ * internal to a schema. The target schema pointed to by a ++ * link will be valid as long as the top-level schema is ++ * valid. Similarly, the link will be valid as long as the ++ * top-level schema is valid. Therefore the validity of the ++ * link ensures the validity of its target, and we don't need ++ * an additional reference count on the target. This mechanism ++ * of an implied validity also breaks reference count cycles ++ * for recursive schemas, which result in memory leaks. ++ */ ++ link->to = to; + avro_schema_init(&link->obj, AVRO_LINK); + return &link->obj; + } +@@ -807,7 +825,7 @@ avro_type_from_json_t(json_t *json, avro_type_t *type, + return EINVAL; + } + /* +- * TODO: gperf/re2c this ++ * TODO: gperf/re2c this + */ + if (strcmp(type_str, "string") == 0) { + *type = AVRO_STRING; +@@ -1259,7 +1277,7 @@ avro_schema_from_json_length(const char *jsontext, size_t length, + return avro_schema_from_json_root(root, schema); + } + +-avro_schema_t avro_schema_copy(avro_schema_t schema) ++avro_schema_t avro_schema_copy_root(avro_schema_t schema, st_table *named_schemas) + { + long i; + avro_schema_t new_schema = NULL; +@@ -1276,7 +1294,7 @@ avro_schema_t avro_schema_copy(avro_schema_t schema) + case AVRO_BOOLEAN: + case AVRO_NULL: + /* +- * No need to copy primitives since they're static ++ * No need to copy primitives since they're static + */ + new_schema = schema; + break; +@@ -1288,6 +1306,10 @@ avro_schema_t avro_schema_copy(avro_schema_t schema) + new_schema = + avro_schema_record(record_schema->name, + record_schema->space); ++ if (save_named_schemas(new_schema, named_schemas)) { ++ avro_set_error("Cannot save enum schema"); ++ return NULL; ++ } + for (i = 0; i < record_schema->fields->num_entries; i++) { + union { + st_data_t data; +@@ -1295,10 +1317,11 @@ avro_schema_t avro_schema_copy(avro_schema_t schema) + } val; + st_lookup(record_schema->fields, i, &val.data); + avro_schema_t type_copy = +- avro_schema_copy(val.field->type); ++ avro_schema_copy_root(val.field->type, named_schemas); + avro_schema_record_field_append(new_schema, + val.field->name, + type_copy); ++ avro_schema_decref(type_copy); + } + } + break; +@@ -1309,6 +1332,10 @@ avro_schema_t avro_schema_copy(avro_schema_t schema) + avro_schema_to_enum(schema); + new_schema = avro_schema_enum_ns(enum_schema->name, + enum_schema->space); ++ if (save_named_schemas(new_schema, named_schemas)) { ++ avro_set_error("Cannot save enum schema"); ++ return NULL; ++ } + for (i = 0; i < enum_schema->symbols->num_entries; i++) { + union { + st_data_t data; +@@ -1329,6 +1356,10 @@ avro_schema_t avro_schema_copy(avro_schema_t schema) + avro_schema_fixed_ns(fixed_schema->name, + fixed_schema->space, + fixed_schema->size); ++ if (save_named_schemas(new_schema, named_schemas)) { ++ avro_set_error("Cannot save fixed schema"); ++ return NULL; ++ } + } + break; + +@@ -1337,11 +1368,12 @@ avro_schema_t avro_schema_copy(avro_schema_t schema) + struct avro_map_schema_t *map_schema = + avro_schema_to_map(schema); + avro_schema_t values_copy = +- avro_schema_copy(map_schema->values); ++ avro_schema_copy_root(map_schema->values, named_schemas); + if (!values_copy) { + return NULL; + } + new_schema = avro_schema_map(values_copy); ++ avro_schema_decref(values_copy); + } + break; + +@@ -1350,11 +1382,12 @@ avro_schema_t avro_schema_copy(avro_schema_t schema) + struct avro_array_schema_t *array_schema = + avro_schema_to_array(schema); + avro_schema_t items_copy = +- avro_schema_copy(array_schema->items); ++ avro_schema_copy_root(array_schema->items, named_schemas); + if (!items_copy) { + return NULL; + } + new_schema = avro_schema_array(items_copy); ++ avro_schema_decref(items_copy); + } + break; + +@@ -1372,12 +1405,13 @@ avro_schema_t avro_schema_copy(avro_schema_t schema) + avro_schema_t schema; + } val; + st_lookup(union_schema->branches, i, &val.data); +- schema_copy = avro_schema_copy(val.schema); ++ schema_copy = avro_schema_copy_root(val.schema, named_schemas); + if (avro_schema_union_append + (new_schema, schema_copy)) { + avro_schema_decref(new_schema); + return NULL; + } ++ avro_schema_decref(schema_copy); + } + } + break; +@@ -1386,12 +1420,12 @@ avro_schema_t avro_schema_copy(avro_schema_t schema) + { + struct avro_link_schema_t *link_schema = + avro_schema_to_link(schema); +- /* +- * TODO: use an avro_schema_copy of to instead of pointing to +- * the same reference +- */ +- avro_schema_incref(link_schema->to); +- new_schema = avro_schema_link(link_schema->to); ++ avro_schema_t to; ++ ++ to = find_named_schemas(avro_schema_name(link_schema->to), ++ avro_schema_namespace(link_schema->to), ++ named_schemas); ++ new_schema = avro_schema_link(to); + } + break; + +@@ -1401,6 +1435,23 @@ avro_schema_t avro_schema_copy(avro_schema_t schema) + return new_schema; + } + ++avro_schema_t avro_schema_copy(avro_schema_t schema) ++{ ++ avro_schema_t new_schema; ++ st_table *named_schemas; ++ ++ named_schemas = st_init_strtable_with_size(DEFAULT_TABLE_SIZE); ++ if (!named_schemas) { ++ avro_set_error("Cannot allocate named schema map"); ++ return NULL; ++ } ++ ++ new_schema = avro_schema_copy_root(schema, named_schemas); ++ st_foreach(named_schemas, HASH_FUNCTION_CAST named_schema_free_foreach, 0); ++ st_free_table(named_schemas); ++ return new_schema; ++} ++ + avro_schema_t avro_schema_get_subschema(const avro_schema_t schema, + const char *name) + { +diff --git a/lang/c/tests/CMakeLists.txt b/lang/c/tests/CMakeLists.txt +index 445e689a7..0870ef5ec 100644 +--- a/lang/c/tests/CMakeLists.txt ++++ b/lang/c/tests/CMakeLists.txt +@@ -48,12 +48,14 @@ add_avro_test(test_data_structures) + add_avro_test(test_avro_schema) + add_avro_test(test_avro_schema_names) + add_avro_test(test_avro_values) ++add_avro_test(test_avro_766) + add_avro_test(test_avro_968) + add_avro_test(test_avro_984) + add_avro_test(test_avro_1034) + add_avro_test(test_avro_1084) + add_avro_test(test_avro_1087) + add_avro_test(test_avro_1165) ++add_avro_test(test_avro_1167) + add_avro_test(test_avro_1237) + add_avro_test(test_avro_1238) + add_avro_test(test_avro_1279) +diff --git a/lang/c/tests/test_avro_1167.c b/lang/c/tests/test_avro_1167.c +new file mode 100644 +index 000000000..869b37d17 +--- /dev/null ++++ b/lang/c/tests/test_avro_1167.c +@@ -0,0 +1,84 @@ ++/* ++ * Licensed to the Apache Software Foundation (ASF) under one or more ++ * contributor license agreements. See the NOTICE file distributed with ++ * this work for additional information regarding copyright ownership. ++ * The ASF licenses this file to you under the Apache License, Version 2.0 ++ * (the "License"); you may not use this file except in compliance with ++ * the License. You may obtain a copy of the License at ++ * ++ * http://www.apache.org/licenses/LICENSE-2.0 ++ * ++ * Unless required by applicable law or agreed to in writing, software ++ * distributed under the License is distributed on an "AS IS" BASIS, ++ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or ++ * implied. See the License for the specific language governing ++ * permissions and limitations under the License. ++ */ ++ ++#include <stdio.h> ++#include <string.h> ++#include <avro.h> ++ ++/* To see the AVRO-1167 memory leak, run this test program through ++ * valgrind. The specific valgrind commandline to use from the ++ * avro-trunk/lang/c/tests directory is: ++ * valgrind -v --track-origins=yes --leak-check=full ++ * --show-reachable = yes ../build/tests/test_avro_1167 ++ */ ++ ++int main(int argc, char **argv) ++{ ++ const char *json = ++ "{" ++ " \"name\": \"repeated_subrecord_array\"," ++ " \"type\": \"record\"," ++ " \"fields\": [" ++ " { \"name\": \"subrecord_one\"," ++ " \"type\": {" ++ " \"name\": \"SubrecordType\"," ++ " \"type\": \"record\"," ++ " \"fields\": [" ++ " { \"name\": \"x\", \"type\": \"int\" }," ++ " { \"name\": \"y\", \"type\": \"int\" }" ++ " ]" ++ " }" ++ " }," ++ " { \"name\": \"subrecord_two\", \"type\": \"SubrecordType\" }," ++ " { \"name\": \"subrecord_array\", \"type\": {" ++ " \"type\":\"array\"," ++ " \"items\": \"SubrecordType\"" ++ " }" ++ " }" ++ " ]" ++ "}"; ++ ++ int rval; ++ avro_schema_t schema = NULL; ++ avro_schema_t schema_copy = NULL; ++ avro_schema_error_t error; ++ ++ (void) argc; ++ (void) argv; ++ ++ rval = avro_schema_from_json(json, strlen(json), &schema, &error); ++ if ( rval ) ++ { ++ printf("Failed to read schema from JSON.\n"); ++ exit(EXIT_FAILURE); ++ } ++ else ++ { ++ printf("Successfully read schema from JSON.\n"); ++ } ++ ++ schema_copy = avro_schema_copy( schema ); ++ if ( ! avro_schema_equal(schema, schema_copy) ) ++ { ++ printf("Failed avro_schema_equal(schema, schema_copy)\n"); ++ exit(EXIT_FAILURE); ++ } ++ ++ avro_schema_decref(schema); ++ avro_schema_decref(schema_copy); ++ return 0; ++} +diff --git a/lang/c/tests/test_avro_766.c b/lang/c/tests/test_avro_766.c +new file mode 100755 +index 000000000..4e21368c4 +--- /dev/null ++++ b/lang/c/tests/test_avro_766.c +@@ -0,0 +1,76 @@ ++/* ++ * Licensed to the Apache Software Foundation (ASF) under one or more ++ * contributor license agreements. See the NOTICE file distributed with ++ * this work for additional information regarding copyright ownership. ++ * The ASF licenses this file to you under the Apache License, Version 2.0 ++ * (the "License"); you may not use this file except in compliance with ++ * the License. You may obtain a copy of the License at ++ * ++ * http://www.apache.org/licenses/LICENSE-2.0 ++ * ++ * Unless required by applicable law or agreed to in writing, software ++ * distributed under the License is distributed on an "AS IS" BASIS, ++ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or ++ * implied. See the License for the specific language governing ++ * permissions and limitations under the License. ++ */ ++ ++#include <stdio.h> ++#include <string.h> ++#include <avro.h> ++ ++/* To see the AVRO-766 memory leak, run this test program through ++ * valgrind. The specific valgrind commandline to use from the ++ * avro-trunk/lang/c/tests directory is: ++ * valgrind -v --track-origins=yes --leak-check=full ++ * --show-reachable = yes ../build/tests/test_avro_766 ++ */ ++int main(int argc, char **argv) ++{ ++ const char *json = ++ "{" ++ " \"type\": \"record\"," ++ " \"name\": \"list\"," ++ " \"fields\": [" ++ " { \"name\": \"x\", \"type\": \"int\" }," ++ " { \"name\": \"y\", \"type\": \"int\" }," ++ " { \"name\": \"next\", \"type\": [\"null\",\"list\"]}," ++ " { \"name\": \"arraylist\", \"type\": { \"type\":\"array\", \"items\": \"list\" } }" ++ " ]" ++ "}"; ++ ++ int rval; ++ avro_schema_t schema = NULL; ++ avro_schema_error_t error; ++ ++ (void) argc; ++ (void) argv; ++ ++ rval = avro_schema_from_json(json, strlen(json), &schema, &error); ++ if ( rval ) ++ { ++ printf("Failed to read schema from JSON.\n"); ++ exit(EXIT_FAILURE); ++ } ++ else ++ { ++ printf("Successfully read schema from JSON.\n"); ++ } ++ ++#define TEST_AVRO_1167 (1) ++ #if TEST_AVRO_1167 ++ { ++ avro_schema_t schema_copy = NULL; ++ schema_copy = avro_schema_copy( schema ); ++ if ( ! avro_schema_equal(schema, schema_copy) ) ++ { ++ printf("Failed avro_schema_equal(schema, schema_copy)\n"); ++ exit(EXIT_FAILURE); ++ } ++ avro_schema_decref(schema_copy); ++ } ++ #endif ++ ++ avro_schema_decref(schema); ++ return 0; ++} diff --git a/ports/avro-c/avro.patch b/ports/avro-c/avro.patch new file mode 100644 index 000000000..50c32a6d3 --- /dev/null +++ b/ports/avro-c/avro.patch @@ -0,0 +1,349 @@ +diff -ur a/lang/c/CMakeLists.txt b/lang/c/CMakeLists.txt +--- a/lang/c/CMakeLists.txt 2017-04-17 19:56:17.000000000 -0400 ++++ b/lang/c/CMakeLists.txt 2017-11-12 20:03:13.776973800 -0500 +@@ -50,7 +50,7 @@ + else(UNIX) + # Hard code for win32 -- need to figure out how to port version.sh for + # Windows. +- set(LIBAVRO_VERSION "22:0:0") ++ set(LIBAVRO_VERSION "23:0:0") + endif(UNIX) + + +@@ -151,25 +151,24 @@ + message("Disabled snappy codec. libsnappy not found or zlib not found.") + endif (SNAPPY_FOUND AND ZLIB_FOUND) + +-find_package(PkgConfig) +-pkg_check_modules(LZMA liblzma) +-if (LZMA_FOUND) ++find_package(LIBLZMA) ++if (LIBLZMA_FOUND) + set(LZMA_PKG liblzma) + add_definitions(-DLZMA_CODEC) +- include_directories(${LZMA_INCLUDE_DIRS}) +- link_directories(${LZMA_LIBRARY_DIRS}) ++ include_directories(${LIBLZMA_INCLUDE_DIRS}) ++ link_directories(${LIBLZMA_LIBRARY_DIRS}) + message("Enabled lzma codec") +-else (LZMA_FOUND) ++else (LIBLZMA_FOUND) + set(LZMA_PKG "") + set(LZMA_LIBRARIES "") + message("Disabled lzma codec. liblzma not found.") +-endif (LZMA_FOUND) ++endif (LIBLZMA_FOUND) + +-set(CODEC_LIBRARIES ${ZLIB_LIBRARIES} ${LZMA_LIBRARIES} ${SNAPPY_LIBRARIES}) ++set(CODEC_LIBRARIES ${ZLIB_LIBRARIES} ${LIBLZMA_LIBRARIES} ${SNAPPY_LIBRARIES}) + set(CODEC_PKG "@ZLIB_PKG@ @LZMA_PKG@ @SNAPPY_PKG@") + + # Jansson JSON library +-pkg_check_modules(JANSSON jansson>=2.3) ++find_package(JANSSON REQUIRED) + if (JANSSON_FOUND) + set(JANSSON_PKG libjansson) + include_directories(${JANSSON_INCLUDE_DIR}) +diff -ur a/lang/c/examples/quickstop.c b/lang/c/examples/quickstop.c +--- a/lang/c/examples/quickstop.c 2017-04-17 19:56:17.000000000 -0400 ++++ b/lang/c/examples/quickstop.c 2017-11-10 12:40:59.151301400 -0500 +@@ -16,6 +16,7 @@ + */ + + #include <avro.h> ++#include <avro/platform.h> + #include <stdio.h> + #include <stdlib.h> + +@@ -102,7 +103,7 @@ + + if (avro_record_get(person, "ID", &id_datum) == 0) { + avro_int64_get(id_datum, &i64); +- fprintf(stdout, "%"PRId64" | ", i64); ++ fprintf(stdout, "%" PRId64 " | ", i64); + } + if (avro_record_get(person, "First", &first_datum) == 0) { + avro_string_get(first_datum, &p); +diff -ur a/lang/c/src/avro/msinttypes.h b/lang/c/src/avro/msinttypes.h +--- a/lang/c/src/avro/msinttypes.h 2017-04-17 19:56:17.000000000 -0400 ++++ b/lang/c/src/avro/msinttypes.h 2017-11-10 12:37:30.372271300 -0500 +@@ -54,6 +54,9 @@ + + // 7.8 Format conversion of integer types + ++#if (_MSC_VER >= 1900) ++# include <inttypes.h> ++#else + typedef struct { + intmax_t quot; + intmax_t rem; +@@ -311,5 +314,6 @@ + #define wcstoimax _wcstoi64 + #define wcstoumax _wcstoui64 + ++#endif + + #endif // _MSC_INTTYPES_H_ ] +diff -ur a/lang/c/src/avro/msstdint.h b/lang/c/src/avro/msstdint.h +--- a/lang/c/src/avro/msstdint.h 2017-04-17 19:56:17.000000000 -0400 ++++ b/lang/c/src/avro/msstdint.h 2017-11-10 10:44:14.011482500 -0500 +@@ -42,6 +42,10 @@ + + #include <limits.h> + ++#if (_MSC_VER >= 1900) ++# include <stdint.h> ++#else ++ + // For Visual Studio 6 in C++ mode and for many Visual Studio versions when + // compiling for ARM we should wrap <wchar.h> include with 'extern "C++" {}' + // or compiler give many errors like this: +@@ -243,5 +247,6 @@ + + #endif // __STDC_CONSTANT_MACROS ] + ++#endif // _MSC_VER < 1900 + + #endif // _MSC_STDINT_H_ ] +diff -ur a/lang/c/src/avro_private.h b/lang/c/src/avro_private.h +--- a/lang/c/src/avro_private.h 2017-04-17 19:56:17.000000000 -0400 ++++ b/lang/c/src/avro_private.h 2017-11-10 10:32:33.414879700 -0500 +@@ -34,7 +34,7 @@ + #endif + + #ifdef _WIN32 +-#define snprintf _snprintf ++ //#define snprintf _snprintf + #endif + + /* Note that AVRO_PLATFORM_IS_BIG_ENDIAN is *always* defined. It is +diff -ur a/lang/c/src/avroappend.c b/lang/c/src/avroappend.c +--- a/lang/c/src/avroappend.c 2017-04-17 19:56:17.000000000 -0400 ++++ b/lang/c/src/avroappend.c 2017-11-10 12:15:14.878275800 -0500 +@@ -20,7 +20,7 @@ + #include <sys/types.h> + #include <sys/stat.h> + #ifdef _WIN32 +-#include <unistd.h> ++#include <io.h> + #endif + + #include "avro.h" +diff -ur a/lang/c/src/codec.c b/lang/c/src/codec.c +--- a/lang/c/src/codec.c 2017-04-17 19:56:17.000000000 -0400 ++++ b/lang/c/src/codec.c 2017-11-10 11:09:08.033816100 -0500 +@@ -266,7 +266,7 @@ + s->next_in = (Bytef*)data; + s->avail_in = (uInt)len; + +- s->next_out = c->block_data; ++ s->next_out = (Bytef*)c->block_data; + s->avail_out = (uInt)c->block_size; + + s->total_out = 0; +@@ -310,10 +310,10 @@ + + c->used_size = 0; + +- s->next_in = data; ++ s->next_in = (Bytef*)data; + s->avail_in = len; + +- s->next_out = c->block_data; ++ s->next_out = (Bytef*)c->block_data; + s->avail_out = c->block_size; + + s->total_out = 0; +@@ -334,7 +334,7 @@ + if (err == Z_BUF_ERROR) + { + c->block_data = avro_realloc(c->block_data, c->block_size, c->block_size * 2); +- s->next_out = c->block_data + s->total_out; ++ s->next_out = (Bytef*)c->block_data + s->total_out; + s->avail_out += c->block_size; + c->block_size = c->block_size * 2; + } +@@ -437,7 +437,7 @@ + return 1; + } + +- ret = lzma_raw_buffer_encode(filters, NULL, data, len, codec->block_data, &written, codec->block_size); ++ ret = lzma_raw_buffer_encode(filters, NULL, (const uint8_t *)data, len, (uint8_t *)codec->block_data, &written, codec->block_size); + + codec->used_size = written; + +@@ -468,8 +468,8 @@ + + do + { +- ret = lzma_raw_buffer_decode(filters, NULL, data, +- &read_pos, len, codec->block_data, &write_pos, ++ ret = lzma_raw_buffer_decode(filters, NULL, (const uint8_t *)data, ++ &read_pos, len, (uint8_t *)codec->block_data, &write_pos, + codec->block_size); + + codec->used_size = write_pos; +diff -ur a/lang/c/src/schema.c b/lang/c/src/schema.c +--- a/lang/c/src/schema.c 2017-04-17 19:56:17.000000000 -0400 ++++ b/lang/c/src/schema.c 2017-11-10 11:45:45.268458000 -0500 +@@ -74,7 +74,7 @@ + * namespace (as a newly allocated buffer using Avro's allocator). */ + static char *split_namespace_name(const char *fullname, const char **name_out) + { +- char *last_dot = strrchr(fullname, '.'); ++ const char *last_dot = strrchr(fullname, '.'); + if (last_dot == NULL) { + *name_out = fullname; + return NULL; +@@ -742,12 +742,12 @@ + } + + static const char * +-qualify_name(const char *name, const char *namespace) ++qualify_name(const char *name, const char *namespaceX) + { + char *full_name; +- if (namespace != NULL && strchr(name, '.') == NULL) { +- full_name = avro_str_alloc(strlen(name) + strlen(namespace) + 2); +- sprintf(full_name, "%s.%s", namespace, name); ++ if (namespaceX != NULL && strchr(name, '.') == NULL) { ++ full_name = avro_str_alloc(strlen(name) + strlen(namespaceX) + 2); ++ sprintf(full_name, "%s.%s", namespaceX, name); + } else { + full_name = avro_strdup(name); + } +@@ -758,20 +758,20 @@ + save_named_schemas(const avro_schema_t schema, st_table *st) + { + const char *name = avro_schema_name(schema); +- const char *namespace = avro_schema_namespace(schema); +- const char *full_name = qualify_name(name, namespace); ++ const char *namespaceX = avro_schema_namespace(schema); ++ const char *full_name = qualify_name(name, namespaceX); + int rval = st_insert(st, (st_data_t) full_name, (st_data_t) schema); + return rval; + } + + static avro_schema_t +-find_named_schemas(const char *name, const char *namespace, st_table *st) ++find_named_schemas(const char *name, const char *namespaceX, st_table *st) + { + union { + avro_schema_t schema; + st_data_t data; + } val; +- const char *full_name = qualify_name(name, namespace); ++ const char *full_name = qualify_name(name, namespaceX); + int rval = st_lookup(st, (st_data_t) full_name, &(val.data)); + avro_str_free((char *)full_name); + if (rval) { +@@ -784,7 +784,7 @@ + static int + avro_type_from_json_t(json_t *json, avro_type_t *type, + st_table *named_schemas, avro_schema_t *named_type, +- const char *namespace) ++ const char *namespaceX) + { + json_t *json_type; + const char *type_str; +@@ -835,7 +835,7 @@ + *type = AVRO_MAP; + } else if (strcmp(type_str, "fixed") == 0) { + *type = AVRO_FIXED; +- } else if ((*named_type = find_named_schemas(type_str, namespace, named_schemas))) { ++ } else if ((*named_type = find_named_schemas(type_str, namespaceX, named_schemas))) { + *type = AVRO_LINK; + } else { + avro_set_error("Unknown Avro \"type\": %s", type_str); +@@ -930,12 +930,12 @@ + } + + if (strchr(fullname, '.')) { +- char *namespace = split_namespace_name(fullname, &name); +- *schema = avro_schema_record(name, namespace); +- avro_str_free(namespace); ++ char *namespaceX = split_namespace_name(fullname, &name); ++ *schema = avro_schema_record(name, namespaceX); ++ avro_str_free(namespaceX); + } else if (json_is_string(json_namespace)) { +- const char *namespace = json_string_value(json_namespace); +- *schema = avro_schema_record(fullname, namespace); ++ const char *namespaceX = json_string_value(json_namespace); ++ *schema = avro_schema_record(fullname, namespaceX); + } else { + *schema = avro_schema_record(fullname, parent_namespace); + } +@@ -1026,13 +1026,13 @@ + } + + if (strchr(fullname, '.')) { +- char *namespace; +- namespace = split_namespace_name(fullname, &name); +- *schema = avro_schema_enum_ns(name, namespace); +- avro_str_free(namespace); ++ char *namespaceX; ++ namespaceX = split_namespace_name(fullname, &name); ++ *schema = avro_schema_enum_ns(name, namespaceX); ++ avro_str_free(namespaceX); + } else if (json_is_string(json_namespace)) { +- const char *namespace = json_string_value(json_namespace); +- *schema = avro_schema_enum_ns(fullname, namespace); ++ const char *namespaceX = json_string_value(json_namespace); ++ *schema = avro_schema_enum_ns(fullname, namespaceX); + } else { + *schema = avro_schema_enum_ns(fullname, parent_namespace); + } +@@ -1160,13 +1160,13 @@ + fullname = json_string_value(json_name); + + if (strchr(fullname, '.')) { +- char *namespace; +- namespace = split_namespace_name(fullname, &name); +- *schema = avro_schema_fixed_ns(name, namespace, (int64_t) size); +- avro_str_free(namespace); ++ char *namespaceX; ++ namespaceX = split_namespace_name(fullname, &name); ++ *schema = avro_schema_fixed_ns(name, namespaceX, (int64_t) size); ++ avro_str_free(namespaceX); + } else if (json_is_string(json_namespace)) { +- const char *namespace = json_string_value(json_namespace); +- *schema = avro_schema_fixed_ns(fullname, namespace, (int64_t) size); ++ const char *namespaceX = json_string_value(json_namespace); ++ *schema = avro_schema_fixed_ns(fullname, namespaceX, (int64_t) size); + } else { + *schema = avro_schema_fixed_ns(fullname, parent_namespace, (int64_t) size); + } +@@ -1749,9 +1749,9 @@ + { + int rval; + check(rval, avro_write_str(out, "\"")); +- const char *namespace = avro_schema_namespace(link->to); +- if (namespace && nullstrcmp(namespace, parent_namespace)) { +- check(rval, avro_write_str(out, namespace)); ++ const char *namespaceX = avro_schema_namespace(link->to); ++ if (namespaceX && nullstrcmp(namespaceX, parent_namespace)) { ++ check(rval, avro_write_str(out, namespaceX)); + check(rval, avro_write_str(out, ".")); + } + check(rval, avro_write_str(out, avro_schema_name(link->to))); +diff -ur a/lang/c/tests/test_avro_data.c b/lang/c/tests/test_avro_data.c +--- a/lang/c/tests/test_avro_data.c 2017-04-17 19:56:17.000000000 -0400 ++++ b/lang/c/tests/test_avro_data.c 2017-11-10 12:41:29.924190100 -0500 +@@ -112,7 +112,7 @@ + if (size != avro_writer_tell(writer)) { + fprintf(stderr, + "Unable to calculate size %s validate=%d " +- "(%"PRId64" != %"PRId64")\n %s\n", ++ "(%" PRId64 " != %" PRId64 ")\n %s\n", + type, validate, size, avro_writer_tell(writer), + avro_strerror()); + exit(EXIT_FAILURE); +@@ -142,7 +142,7 @@ + { + char *json = NULL; + avro_datum_to_json(datum, 1, &json); +- if (strcasecmp(json, expected) != 0) { ++ if (stricmp(json, expected) != 0) { + fprintf(stderr, "Unexpected JSON encoding: %s\n", json); + exit(EXIT_FAILURE); + } diff --git a/ports/avro-c/portfile.cmake b/ports/avro-c/portfile.cmake new file mode 100644 index 000000000..94fcf25ba --- /dev/null +++ b/ports/avro-c/portfile.cmake @@ -0,0 +1,30 @@ +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO apache/avro + REF release-1.8.2 + SHA512 a48cc353aadd45ad2c8593bf89ec3f1ddb0fcd364b79dd002a60a54d49cab714b46eee8bd6dc47b13588b9eead49c754dfe05f6aff735752fca8d2cd35ae8649 + HEAD_REF master +) + +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES + ${CMAKE_CURRENT_LIST_DIR}/avro.patch + ${CMAKE_CURRENT_LIST_DIR}/avro-pr-217.patch) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH}/lang/c +) + +vcpkg_install_cmake(DISABLE_PARALLEL) + +vcpkg_copy_pdbs() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +file(COPY ${SOURCE_PATH}/lang/c/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/avro-c) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/avro-c/LICENSE ${CURRENT_PACKAGES_DIR}/share/avro-c/copyright) diff --git a/ports/azure-storage-cpp/portfile.cmake b/ports/azure-storage-cpp/portfile.cmake index 7359f3bc7..32f05221d 100644 --- a/ports/azure-storage-cpp/portfile.cmake +++ b/ports/azure-storage-cpp/portfile.cmake @@ -1,3 +1,7 @@ +if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + message(FATAL_ERROR "${PORT} does not currently support UWP") +endif() + include(vcpkg_common_functions) vcpkg_from_github( diff --git a/ports/benchmark/CONTROL b/ports/benchmark/CONTROL index 03052ce7f..9e6262e1b 100644 --- a/ports/benchmark/CONTROL +++ b/ports/benchmark/CONTROL @@ -1,3 +1,3 @@ Source: benchmark -Version: 1.2.0 +Version: 1.3.0 Description: A library to support the benchmarking of functions, similar to unit-tests. diff --git a/ports/benchmark/portfile.cmake b/ports/benchmark/portfile.cmake index c3159ef8b..1832174fe 100644 --- a/ports/benchmark/portfile.cmake +++ b/ports/benchmark/portfile.cmake @@ -1,3 +1,7 @@ +if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + message(FATAL_ERROR "${PORT} does not currently support UWP") +endif() + if(VCPKG_CRT_LINKAGE STREQUAL static) message(FATAL_ERROR "Google benchmark only supports dynamic crt linkage.") endif() @@ -12,23 +16,11 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/benchmark - REF v1.2.0 - SHA512 859063669fd84e847f04624013f0b2b734d75d90cada247682eaf345b86c88a9bc2320250e128f2361e37f402b3fb56a18c493ec6038973744a005a452d693ba + REF v1.3.0 + SHA512 272775e4dbd0ecc65a2a3a64f24e79682b630929dea3af47349329ac8b796341f1197458a67c9aac0e514857ebe7cbc191d18f6fd2c0aea3242562e69d8a6849 HEAD_REF master ) -vcpkg_download_distfile(PATCH - URLS "https://github.com/efcs/benchmark/commit/536b0b82b8ec12fc7e17e6d243633618f294a739.diff" - FILENAME google-benchmark-1.2.0-536b0b82.patch - SHA512 ed42cc0014741c8039c0fca5b4317b2ed09d06a25c91f49a48be6dce921e39469b002c088794c1ea73dc759166e20cb685b47f809ba28dddd95b5f3263be03cd -) - -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES - "${PATCH}" -) - vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA diff --git a/ports/berkeleydb/portfile.cmake b/ports/berkeleydb/portfile.cmake index 6a7e30a05..38f383d7b 100644 --- a/ports/berkeleydb/portfile.cmake +++ b/ports/berkeleydb/portfile.cmake @@ -1,3 +1,7 @@ +if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + message(FATAL_ERROR "${PORT} does not currently support UWP") +endif() + include(vcpkg_common_functions) set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/db-4.8.30.NC) diff --git a/ports/blaze/CONTROL b/ports/blaze/CONTROL index ca7923ffc..3355159f4 100644 --- a/ports/blaze/CONTROL +++ b/ports/blaze/CONTROL @@ -1,3 +1,4 @@ Source: blaze -Version: 3.2 +Version: 3.2-2 +Build-Depends: boost, clapack Description: Blaze is an open-source, high-performance C++ math library for dense and sparse arithmetic. diff --git a/ports/blaze/no-absolute-paths-in-install.patch b/ports/blaze/no-absolute-paths-in-install.patch new file mode 100644 index 000000000..a601a37e7 --- /dev/null +++ b/ports/blaze/no-absolute-paths-in-install.patch @@ -0,0 +1,33 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 0d102ab..5d918b8 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -36,7 +36,7 @@ cmake_minimum_required(VERSION 3.5) + add_library(blaze INTERFACE) + target_include_directories(blaze INTERFACE + $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}> +- $<INSTALL_INTERFACE:install> ++ $<INSTALL_INTERFACE:include> + ) + + target_compile_options(blaze INTERFACE +@@ -48,8 +48,8 @@ target_compile_options(blaze INTERFACE + #================================================================================================== + + find_package(LAPACK REQUIRED) +-target_link_libraries(blaze INTERFACE ${LAPACK_LIBRARIES}) +-target_compile_options(blaze INTERFACE ${LAPACK_LINKER_FLAGS}) ++target_link_libraries(blaze INTERFACE $<BUILD_INTERFACE:${LAPACK_LIBRARIES}>) ++target_compile_options(blaze INTERFACE $<BUILD_INTERFACE:${LAPACK_LINKER_FLAGS}>) + + + #================================================================================================== +@@ -57,7 +57,7 @@ target_compile_options(blaze INTERFACE ${LAPACK_LINKER_FLAGS}) + #================================================================================================== + + find_package(Boost 1.54.0 REQUIRED) +-target_include_directories(blaze INTERFACE ${Boost_INCLUDE_DIRS}) ++target_include_directories(blaze INTERFACE $<BUILD_INTERFACE:${Boost_INCLUDE_DIRS}>) + + + #================================================================================================== diff --git a/ports/blaze/portfile.cmake b/ports/blaze/portfile.cmake index a8fc5ab1e..7bbb58afc 100644 --- a/ports/blaze/portfile.cmake +++ b/ports/blaze/portfile.cmake @@ -1,4 +1,3 @@ -#header-only library include(vcpkg_common_functions) vcpkg_from_bitbucket( @@ -9,10 +8,23 @@ vcpkg_from_bitbucket( HEAD_REF master ) -# Copy the blaze header files -file(COPY "${SOURCE_PATH}/blaze" - DESTINATION "${CURRENT_PACKAGES_DIR}/include" - FILES_MATCHING PATTERN "*.h") +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES "${CMAKE_CURRENT_LIST_DIR}/no-absolute-paths-in-install.patch" +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + -DBLAZE_SMP_THREADS=C++11 +) + +vcpkg_install_cmake() + +vcpkg_fixup_cmake_targets(CONFIG_PATH share/blaze/cmake) + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug) # Handle copyright file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/blaze) diff --git a/ports/blosc/CONTROL b/ports/blosc/CONTROL new file mode 100644 index 000000000..8f072f480 --- /dev/null +++ b/ports/blosc/CONTROL @@ -0,0 +1,4 @@ +Source: blosc +Version: 1.12.1 +Build-Depends: lz4, snappy, zlib, zstd +Description: A blocking, shuffling and loss-less compression library that can be faster than `memcpy()` diff --git a/ports/blosc/portfile.cmake b/ports/blosc/portfile.cmake new file mode 100644 index 000000000..98e2b4f82 --- /dev/null +++ b/ports/blosc/portfile.cmake @@ -0,0 +1,54 @@ +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO Blosc/c-blosc + REF v1.12.1 + SHA512 f65bbbfce6fc59d0c5a0889d5771dd78cae2796244c6ee69edf15b27c4563c28ce789fded9104a8626d12be3e46418d596dfdb204c43e33abae8dca40debfd92 + HEAD_REF master +) + +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES + ${CMAKE_CURRENT_LIST_DIR}/static-install-fix.patch +) + +if (VCPKG_LIBRARY_LINKAGE STREQUAL static) + set(BLOSC_STATIC ON) + set(BLOSC_SHARED OFF) +else() + set(BLOSC_STATIC OFF) + set(BLOSC_SHARED ON) +endif() + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + OPTIONS -DPREFER_EXTERNAL_LZ4=ON + -DPREFER_EXTERNAL_SNAPPY=ON + -DPREFER_EXTERNAL_ZLIB=ON + -DPREFER_EXTERNAL_ZSTD=ON + -DBUILD_TESTS=OFF + -DBUILD_BENCHMARKS=OFF + -DBUILD_STATIC=${BLOSC_STATIC} + -DBUILD_SHARED=${BLOSC_SHARED} +) + +vcpkg_install_cmake() + +vcpkg_copy_pdbs() + +if (BLOSC_SHARED) + file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/bin) + file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/bin) + + file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/blosc.dll ${CURRENT_PACKAGES_DIR}/debug/bin/blosc.dll) + file(RENAME ${CURRENT_PACKAGES_DIR}/lib/blosc.dll ${CURRENT_PACKAGES_DIR}/bin/blosc.dll) +endif() + +# cleanup +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +# Handle copyright +file(INSTALL ${SOURCE_PATH}/LICENSES/BLOSC.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/blosc RENAME copyright) + diff --git a/ports/blosc/static-install-fix.patch b/ports/blosc/static-install-fix.patch new file mode 100644 index 000000000..3416bde57 --- /dev/null +++ b/ports/blosc/static-install-fix.patch @@ -0,0 +1,15 @@ +diff --git a/blosc/CMakeLists.txt b/blosc/CMakeLists.txt +index cd163f4..8cb1bdb 100644 +--- a/blosc/CMakeLists.txt ++++ b/blosc/CMakeLists.txt +@@ -211,7 +211,9 @@ endif(BUILD_STATIC) + # install + if(BLOSC_INSTALL) + install(FILES blosc.h blosc-export.h DESTINATION include COMPONENT DEV) +- install(TARGETS blosc_shared DESTINATION ${lib_dir} COMPONENT LIB) ++ if(BUILD_SHARED) ++ install(TARGETS blosc_shared DESTINATION ${lib_dir} COMPONENT LIB) ++ endif(BUILD_SHARED) + if(BUILD_STATIC) + install(TARGETS blosc_static DESTINATION ${lib_dir} COMPONENT DEV) + endif(BUILD_STATIC) diff --git a/ports/bond/0001_boost_static_libs.patch b/ports/bond/0001_boost_static_libs.patch deleted file mode 100644 index de40a6254..000000000 --- a/ports/bond/0001_boost_static_libs.patch +++ /dev/null @@ -1,23 +0,0 @@ -diff --git a/cmake/Config.cmake b/cmake/Config.cmake -index d5125c70..a2eb536c 100644 ---- a/cmake/Config.cmake -+++ b/cmake/Config.cmake -@@ -46,7 +46,7 @@ if (MSVC) - add_compile_options (/permissive-) - endif() - -- set (Boost_USE_STATIC_LIBS ON) -+ set (Boost_USE_STATIC_LIBS OFF) - endif (MSVC) - - if (WIN32) -@@ -131,9 +131,6 @@ if (DEFINED ENV{APPVEYOR} AND ("$ENV{BOND_BUILD}" STREQUAL "C++")) - endif() - endif() - --# disable Boost auto-linking --add_definitions (-DBOOST_ALL_NO_LIB) -- - # VS2015U2 fixed a bug with atomics and emits a warning without this definition. - add_definitions (-D_ENABLE_ATOMIC_ALIGNMENT_FIX) - diff --git a/ports/bond/CONTROL b/ports/bond/CONTROL index e69c925d6..6680b6dd3 100644 --- a/ports/bond/CONTROL +++ b/ports/bond/CONTROL @@ -1,5 +1,5 @@ Source: bond Maintainer: bond@microsoft.com -Version: 6.0.0-1 +Version: 7.0.2 Description: Bond is a cross-platform framework for working with schematized data. It supports cross-language de/serialization and powerful generic mechanisms for efficiently manipulating data. Bond is broadly used at Microsoft in high scale services. <https://github.com/Microsoft/bond> Build-Depends: boost, rapidjson diff --git a/ports/bond/portfile.cmake b/ports/bond/portfile.cmake index 147ebeea8..2ad48a94d 100644 --- a/ports/bond/portfile.cmake +++ b/ports/bond/portfile.cmake @@ -4,24 +4,24 @@ if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") endif() include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/bond-6.0.0) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/bond-7.0.2) vcpkg_download_distfile(ARCHIVE - URLS "https://github.com/Microsoft/bond/archive/6.0.0.zip" - FILENAME "bond-6.0.0.zip" - SHA512 d585debabb7b74c1e85313278456bd6b63a388dbf64515c550b1d9739114b0963ffb1982d145fa4d3717747e8eba82e79ed2744a6c9e3cb1615d9a78b75b42bb + URLS "https://github.com/Microsoft/bond/archive/7.0.2.zip" + FILENAME "bond-7.0.2.zip" + SHA512 4ae3b88fafbede6c1433d171713bdbfcbed61a3d2a983d7df4e33af893a50f233be0e95c1ea8e5f30dafb017b2a8100a23721292b04184159e5fd796b1a43398 ) vcpkg_download_distfile(GBC_ARCHIVE - URLS "https://github.com/Microsoft/bond/releases/download/6.0.0/gbc-6.0.0-amd64.exe.zip" - FILENAME "gbc-6.0.0-amd64.zip" - SHA512 2aa4b5add478b952cb7733dcbf5c35634cde66812f1f1920d5fb1e2a52681a101ac6157bdba535a59316c4590fa37c74889b734106ca3e202a7a5ec0bcb1847f + URLS "https://github.com/Microsoft/bond/releases/download/7.0.2/gbc-7.0.2-amd64.exe.zip" + FILENAME "gbc-7.0.2-amd64.exe.zip" + SHA512 069eafd7641ebd719425037cb8249d2d214eb09c6ce38fbf1d1811c01d1839b0a0987c55217075b6ae9f477f750d582250134387a530edb2aee407b21d973915 ) vcpkg_extract_source_archive(${ARCHIVE}) # Extract the precompiled gbc vcpkg_extract_source_archive(${GBC_ARCHIVE} ${CURRENT_BUILDTREES_DIR}/tools/) -set(FETCHED_GBC_PATH ${CURRENT_BUILDTREES_DIR}/tools/gbc-6.0.0-amd64.exe) +set(FETCHED_GBC_PATH ${CURRENT_BUILDTREES_DIR}/tools/gbc-7.0.2-amd64.exe) if (NOT EXISTS "${FETCHED_GBC_PATH}") message(FATAL_ERROR "Fetching GBC failed. Expected '${FETCHED_GBC_PATH}' to exists, but it doesn't.") @@ -30,9 +30,6 @@ endif() vcpkg_apply_patches( SOURCE_PATH ${SOURCE_PATH} PATCHES - # Change Boost_USE_STATIC_LIBS to be compatible with vcpkg's treatment - # of Boost - ${CMAKE_CURRENT_LIST_DIR}/0001_boost_static_libs.patch # Don't install rapidjson from the (empty) submodule. With vcpkg, we get # rapidjson from vcpkg ${CMAKE_CURRENT_LIST_DIR}/0002_omit_rapidjson.patch diff --git a/ports/boost/CONTROL b/ports/boost/CONTROL index a5da89a5a..c07369e2e 100644 --- a/ports/boost/CONTROL +++ b/ports/boost/CONTROL @@ -1,5 +1,5 @@ Source: boost -Version: 1.65.1-1 +Version: 1.65.1-3 Description: Peer-reviewed portable C++ source libraries Build-Depends: zlib, bzip2 diff --git a/ports/boost/desktop/user-config.jam b/ports/boost/desktop/user-config.jam index 83206c098..311cc8951 100644 --- a/ports/boost/desktop/user-config.jam +++ b/ports/boost/desktop/user-config.jam @@ -6,33 +6,33 @@ using msvc : 14.1 : cl.exe : <setup>echo ; -using python : @PYTHON_VERSION@ : : @PYTHON_INCLUDE_PATH@ : @PYTHONLIBS_RELEASE@ ; -using python : @PYTHON_VERSION@ : : @PYTHON_INCLUDE_PATH@ : @PYTHONLIBS_DEBUG@ : <python-debugging>on ; +using python : @PYTHON_VERSION@ : : "@PYTHON_INCLUDE_PATH@" : "@PYTHONLIBS_RELEASE@" ; +using python : @PYTHON_VERSION@ : : "@PYTHON_INCLUDE_PATH@" : "@PYTHONLIBS_DEBUG@" : <python-debugging>on ; project user-config ; lib advapi32 ; -lib icuuc : : <search>@CURRENT_INSTALLED_DIR@/lib : : - <runtime-link>@LIB_RUNTIME_LINK@ +lib icuuc : : <search>"@CURRENT_INSTALLED_DIR@/lib" : : + <runtime-link>"@LIB_RUNTIME_LINK@" <library>advapi32 ; - -lib icuuc : : <search>@CURRENT_INSTALLED_DIR@/debug/lib + +lib icuuc : : <search>"@CURRENT_INSTALLED_DIR@/debug/lib" <variant>debug <name>icuucd : : - <runtime-link>@LIB_RUNTIME_LINK@ + <runtime-link>"@LIB_RUNTIME_LINK@" <library>advapi32 ; - -lib icuin : : <search>@CURRENT_INSTALLED_DIR@/lib : : - <runtime-link>@LIB_RUNTIME_LINK@ ; - -lib icuin : : <search>@CURRENT_INSTALLED_DIR@/debug/lib + +lib icuin : : <search>"@CURRENT_INSTALLED_DIR@/lib" : : + <runtime-link>"@LIB_RUNTIME_LINK@" ; + +lib icuin : : <search>"@CURRENT_INSTALLED_DIR@/debug/lib" <variant>debug <name>icuind : : - <runtime-link>@LIB_RUNTIME_LINK@ ; - -lib icudt : : <search>@CURRENT_INSTALLED_DIR@/lib : : - <runtime-link>@LIB_RUNTIME_LINK@ ; - -lib icudt : : <search>@CURRENT_INSTALLED_DIR@/debug/lib + <runtime-link>"@LIB_RUNTIME_LINK@" ; + +lib icudt : : <search>"@CURRENT_INSTALLED_DIR@/lib" : : + <runtime-link>"@LIB_RUNTIME_LINK@" ; + +lib icudt : : <search>"@CURRENT_INSTALLED_DIR@/debug/lib" <variant>debug - <name>icudtd : : - <runtime-link>@LIB_RUNTIME_LINK@ ;
\ No newline at end of file + <name>icudtd : : + <runtime-link>"@LIB_RUNTIME_LINK@" ;
\ No newline at end of file diff --git a/ports/boost/portfile.cmake b/ports/boost/portfile.cmake index b0699eaa2..5d7eee0b3 100644 --- a/ports/boost/portfile.cmake +++ b/ports/boost/portfile.cmake @@ -80,6 +80,7 @@ set(B2_OPTIONS -sICU_PATH="${CURRENT_INSTALLED_DIR}" -j$ENV{NUMBER_OF_PROCESSORS} --debug-configuration + --ignore-site-config --hash -q @@ -222,33 +223,37 @@ set(B2_OPTIONS_REL ###################### # Perform build + Package ###################### -message(STATUS "Building ${TARGET_TRIPLET}-rel") -set(ENV{BOOST_BUILD_PATH} ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel) -vcpkg_execute_required_process_repeat( - COUNT 2 - COMMAND "${SOURCE_PATH}/b2.exe" - --stagedir=${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/stage - --build-dir=${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel - ${B2_OPTIONS_REL} - variant=release - debug-symbols=on - WORKING_DIRECTORY ${SOURCE_PATH} - LOGNAME build-${TARGET_TRIPLET}-rel -) -message(STATUS "Building ${TARGET_TRIPLET}-rel done") -message(STATUS "Building ${TARGET_TRIPLET}-dbg") -set(ENV{BOOST_BUILD_PATH} ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg) -vcpkg_execute_required_process_repeat( - COUNT 2 - COMMAND "${SOURCE_PATH}/b2.exe" - --stagedir=${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/stage - --build-dir=${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg - ${B2_OPTIONS_DBG} - variant=debug - WORKING_DIRECTORY ${SOURCE_PATH} - LOGNAME build-${TARGET_TRIPLET}-dbg -) -message(STATUS "Building ${TARGET_TRIPLET}-dbg done") +if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") + message(STATUS "Building ${TARGET_TRIPLET}-rel") + set(ENV{BOOST_BUILD_PATH} ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel) + vcpkg_execute_required_process_repeat( + COUNT 2 + COMMAND "${SOURCE_PATH}/b2.exe" + --stagedir=${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/stage + --build-dir=${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel + ${B2_OPTIONS_REL} + variant=release + debug-symbols=on + WORKING_DIRECTORY ${SOURCE_PATH} + LOGNAME build-${TARGET_TRIPLET}-rel + ) + message(STATUS "Building ${TARGET_TRIPLET}-rel done") +endif() +if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") + message(STATUS "Building ${TARGET_TRIPLET}-dbg") + set(ENV{BOOST_BUILD_PATH} ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg) + vcpkg_execute_required_process_repeat( + COUNT 2 + COMMAND "${SOURCE_PATH}/b2.exe" + --stagedir=${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/stage + --build-dir=${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg + ${B2_OPTIONS_DBG} + variant=debug + WORKING_DIRECTORY ${SOURCE_PATH} + LOGNAME build-${TARGET_TRIPLET}-dbg + ) + message(STATUS "Building ${TARGET_TRIPLET}-dbg done") +endif() message(STATUS "Packaging headers") file( @@ -258,7 +263,7 @@ file( # Disable Boost auto-link. file(APPEND ${CURRENT_PACKAGES_DIR}/include/boost/config/user.hpp - "\n#define BOOST_ALL_NO_LIB\n" + "\n#ifndef BOOST_ALL_NO_LIB\n#define BOOST_ALL_NO_LIB\n#endif\n" ) file(APPEND ${CURRENT_PACKAGES_DIR}/include/boost/config/user.hpp "\n#undef BOOST_ALL_DYN_LINK\n" @@ -293,44 +298,57 @@ function(boost_rename_libs LIBS) endforeach() endfunction() -message(STATUS "Packaging ${TARGET_TRIPLET}-rel") -file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/stage/lib/ - DESTINATION ${CURRENT_PACKAGES_DIR}/lib - FILES_MATCHING PATTERN "*.lib") -if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) +if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") + message(STATUS "Packaging ${TARGET_TRIPLET}-rel") file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/stage/lib/ - DESTINATION ${CURRENT_PACKAGES_DIR}/bin - FILES_MATCHING PATTERN "*.dll") -endif() -file(GLOB RELEASE_LIBS ${CURRENT_PACKAGES_DIR}/lib/*.lib) -boost_rename_libs(RELEASE_LIBS) -if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/boost_test_exec_monitor-vc140-mt-${VERSION}.lib) - file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/lib/manual-link) - file(RENAME - ${CURRENT_PACKAGES_DIR}/lib/boost_test_exec_monitor-vc140-mt-${VERSION}.lib - ${CURRENT_PACKAGES_DIR}/lib/manual-link/boost_test_exec_monitor-vc140-mt-${VERSION}.lib - ) + DESTINATION ${CURRENT_PACKAGES_DIR}/lib + FILES_MATCHING PATTERN "*.lib") + if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) + file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/stage/lib/ + DESTINATION ${CURRENT_PACKAGES_DIR}/bin + FILES_MATCHING PATTERN "*.dll") + endif() + file(GLOB RELEASE_LIBS ${CURRENT_PACKAGES_DIR}/lib/*.lib) + + boost_rename_libs(RELEASE_LIBS) + message(STATUS "Packaging ${TARGET_TRIPLET}-rel done") endif() -message(STATUS "Packaging ${TARGET_TRIPLET}-rel done") -message(STATUS "Packaging ${TARGET_TRIPLET}-dbg") -file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/stage/lib/ - DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib - FILES_MATCHING PATTERN "*.lib") -if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) +if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") + message(STATUS "Packaging ${TARGET_TRIPLET}-dbg") file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/stage/lib/ - DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin - FILES_MATCHING PATTERN "*.dll") -endif() -file(GLOB DEBUG_LIBS ${CURRENT_PACKAGES_DIR}/debug/lib/*.lib) -boost_rename_libs(DEBUG_LIBS) -if(EXISTS ${CURRENT_PACKAGES_DIR}/debug/lib/boost_test_exec_monitor-vc140-mt-gd-${VERSION}.lib) - file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link) - file(RENAME - ${CURRENT_PACKAGES_DIR}/debug/lib/boost_test_exec_monitor-vc140-mt-gd-${VERSION}.lib - ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link/boost_test_exec_monitor-vc140-mt-gd-${VERSION}.lib - ) + DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib + FILES_MATCHING PATTERN "*.lib") + if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) + file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/stage/lib/ + DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin + FILES_MATCHING PATTERN "*.dll") + endif() + file(GLOB DEBUG_LIBS ${CURRENT_PACKAGES_DIR}/debug/lib/*.lib) + boost_rename_libs(DEBUG_LIBS) + message(STATUS "Packaging ${TARGET_TRIPLET}-dbg done") endif() -message(STATUS "Packaging ${TARGET_TRIPLET}-dbg done") + +macro(move_to_manual_link LIBNAME) + if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/${LIBNAME}-vc140-mt-${VERSION_FULL}.lib) + file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/lib/manual-link) + file(RENAME + ${CURRENT_PACKAGES_DIR}/lib/${LIBNAME}-vc140-mt-${VERSION_FULL}.lib + ${CURRENT_PACKAGES_DIR}/lib/manual-link/${LIBNAME}-vc140-mt-${VERSION_FULL}.lib + ) + endif() + if(EXISTS ${CURRENT_PACKAGES_DIR}/debug/lib/${LIBNAME}-vc140-mt-gd-${VERSION_FULL}.lib) + file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link) + file(RENAME + ${CURRENT_PACKAGES_DIR}/debug/lib/${LIBNAME}-vc140-mt-gd-${VERSION_FULL}.lib + ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link/${LIBNAME}-vc140-mt-gd-${VERSION_FULL}.lib + ) + endif() +endmacro() + +move_to_manual_link(boost_test_exec_monitor) +move_to_manual_link(boost_prg_exec_monitor) vcpkg_copy_pdbs() + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) diff --git a/ports/boost/usage b/ports/boost/usage new file mode 100644 index 000000000..28d429010 --- /dev/null +++ b/ports/boost/usage @@ -0,0 +1,5 @@ +The package boost is compatible with built-in CMake targets:
+
+ find_package(Boost REQUIRED [COMPONENTS <libs>...])
+ target_link_libraries(main PRIVATE ${Boost_LIBRARIES})
+ target_include_directories(main PRIVATE ${Boost_INCLUDE_DIRS})
diff --git a/ports/brotli/CONTROL b/ports/brotli/CONTROL index 25bc036a8..451b46f9f 100644 --- a/ports/brotli/CONTROL +++ b/ports/brotli/CONTROL @@ -1,3 +1,3 @@ Source: brotli
-Version: 0.6.0-1
+Version: 1.0.2
Description: a generic-purpose lossless compression algorithm that compresses data using a combination of a modern variant of the LZ77 algorithm, Huffman coding and 2nd order context modeling.
diff --git a/ports/brotli/portfile.cmake b/ports/brotli/portfile.cmake index 36e489bc4..2479a73aa 100644 --- a/ports/brotli/portfile.cmake +++ b/ports/brotli/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/brotli - REF v0.6.0 - SHA512 36caa277790efeb5bff0fdc090cdcf00fd9995c4e81a60ed31d36af2e13848ec1afe5d84e6926eebbee013525191e9404e112cb7fbede16097221c5bc3dfb5d5 + REF v1.0.2 + SHA512 b3ec98159e63b4169dea3e958d60d89247dc1c0f78aab27bfffb2ece659fa024df990d410aa15c12b2082d42e3785e32ec248dce2b116c7f34e98bb6337f9fc9 HEAD_REF master ) diff --git a/ports/bzip2/portfile.cmake b/ports/bzip2/portfile.cmake index f5823fb94..d4dd18fd5 100644 --- a/ports/bzip2/portfile.cmake +++ b/ports/bzip2/portfile.cmake @@ -36,3 +36,5 @@ file(WRITE ${CURRENT_PACKAGES_DIR}/include/bzlib.h "${BZLIB_H}") file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/bzip2)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/bzip2/LICENSE ${CURRENT_PACKAGES_DIR}/share/bzip2/copyright)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
diff --git a/ports/bzip2/usage b/ports/bzip2/usage new file mode 100644 index 000000000..084bf390a --- /dev/null +++ b/ports/bzip2/usage @@ -0,0 +1,4 @@ +The package bzip2 is compatible with built-in CMake targets:
+
+ find_package(BZip2 REQUIRED)
+ target_link_libraries(main PRIVATE BZip2::BZip2)
diff --git a/ports/capstone/CONTROL b/ports/capstone/CONTROL new file mode 100644 index 000000000..b442eccd9 --- /dev/null +++ b/ports/capstone/CONTROL @@ -0,0 +1,3 @@ +Source: capstone +Version: 3.0.5-rc3 +Description: diff --git a/ports/capstone/portfile.cmake b/ports/capstone/portfile.cmake new file mode 100644 index 000000000..430638322 --- /dev/null +++ b/ports/capstone/portfile.cmake @@ -0,0 +1,51 @@ +include(vcpkg_common_functions) +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REF 3.0.5-rc3 + REPO "aquynh/capstone" + SHA512 1327fc570fc2310f71c4d7329528c05e30b9ad68ea50254b9a8c4b3b113f5165c2e0474ec99bbe1e6e46f2820379f388e4c2082c156027e117d88a8f1908acfe + HEAD_REF master +) + +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" CAPSTONE_BUILD_STATIC) +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" CAPSTONE_BUILD_SHARED) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + -DCAPSTONE_BUILD_STATIC=${CAPSTONE_BUILD_STATIC} + -DCAPSTONE_BUILD_SHARED=${CAPSTONE_BUILD_SHARED} + + #-DCAPSTONE_ARCHS="x86" + -DCAPSTONE_X86_SUPPORT=ON + -DCAPSTONE_ARM_SUPPORT=ON + -DCAPSTONE_ARM64_SUPPORT=ON + -DCAPSTONE_MIPS_SUPPORT=OFF + -DCAPSTONE_PPC_SUPPORT=OFF + -DCAPSTONE_SPARC_SUPPORT=OFF + -DCAPSTONE_SYSZ_SUPPORT=OFF + -DCAPSTONE_XCORE_SUPPORT=OFF + + -DCAPSTONE_BUILD_TESTS=OFF + OPTIONS_RELEASE + -DCAPSTONE_BUILD_DIET=ON + -DCAPSTONE_X86_REDUCE=ON +) + +vcpkg_install_cmake() +vcpkg_copy_pdbs() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +file(GLOB EXES ${CURRENT_PACKAGES_DIR}/bin/*.exe ${CURRENT_PACKAGES_DIR}/debug/bin/*.exe) +if(EXES) + file(REMOVE ${EXES}) +endif() +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin) +endif() + +# Handle copyright +file(INSTALL ${SOURCE_PATH}/LICENSE.txt + DESTINATION ${CURRENT_PACKAGES_DIR}/share/capstone + RENAME copyright) diff --git a/ports/catch/CONTROL b/ports/catch/CONTROL index af18c49de..2975af555 100644 --- a/ports/catch/CONTROL +++ b/ports/catch/CONTROL @@ -1,3 +1,3 @@ Source: catch -Version: 1.10.0 +Version: 2.0.1-1 Description: C++ Automated Test Cases in Headers diff --git a/ports/catch/portfile.cmake b/ports/catch/portfile.cmake index d78260cb8..a1c5033cf 100644 --- a/ports/catch/portfile.cmake +++ b/ports/catch/portfile.cmake @@ -1,15 +1,15 @@ include(vcpkg_common_functions) -set(CATCH_VERSION v1.10.0) +set(CATCH_VERSION v2.0.1) vcpkg_download_distfile(HEADER - URLS "https://github.com/philsquared/Catch/releases/download/${CATCH_VERSION}/catch.hpp" + URLS "https://github.com/catchorg/Catch2/releases/download/${CATCH_VERSION}/catch.hpp" FILENAME "catch-${CATCH_VERSION}.hpp" - SHA512 275ab5b5d778cc8a91b5f3e8f241a37b680c81d1b8945ff64ad16a9708c98e6535b389746bf8cacbed07f874629f456b56bafbf1879c5a6f84fa87675c1361b6 + SHA512 e5e58c3a190cb0e848e19e885037e88e1b864e017f42b1306569850436c1c691b65640759d467061486931e7465a2b906fdd9e5208911b660fd960bf718305b4 ) vcpkg_download_distfile(LICENSE - URLS "https://raw.githubusercontent.com/philsquared/Catch/${CATCH_VERSION}/LICENSE.txt" + URLS "https://raw.githubusercontent.com/catchorg/Catch2/${CATCH_VERSION}/LICENSE.txt" FILENAME "catch-LICENSE-${CATCH_VERSION}.txt" SHA512 d6078467835dba8932314c1c1e945569a64b065474d7aced27c9a7acc391d52e9f234138ed9f1aa9cd576f25f12f557e0b733c14891d42c16ecdc4a7bd4d60b8 ) diff --git a/ports/cctz/portfile.cmake b/ports/cctz/portfile.cmake index 11955b365..c0bfc9720 100644 --- a/ports/cctz/portfile.cmake +++ b/ports/cctz/portfile.cmake @@ -1,3 +1,7 @@ +if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ message(FATAL_ERROR "${PORT} does not currently support UWP")
+endif()
+
include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
diff --git a/ports/ceres/CONTROL b/ports/ceres/CONTROL index 4dde8c0bd..300b106da 100644 --- a/ports/ceres/CONTROL +++ b/ports/ceres/CONTROL @@ -1,4 +1,4 @@ Source: ceres -Version: 1.13.0-1 +Version: 1.13.0-2 Build-Depends:suitesparse, eigen3, clapack, gflags, glog Description: non-linear optimization package diff --git a/ports/ceres/portfile.cmake b/ports/ceres/portfile.cmake index 2f9d9d6e9..e8ae03ce4 100644 --- a/ports/ceres/portfile.cmake +++ b/ports/ceres/portfile.cmake @@ -1,24 +1,13 @@ -# Common Ambient Variables: -# CURRENT_BUILDTREES_DIR = ${VCPKG_ROOT_DIR}\buildtrees\${PORT} -# CURRENT_PACKAGES_DIR = ${VCPKG_ROOT_DIR}\packages\${PORT}_${TARGET_TRIPLET} -# CURRENT_PORT DIR = ${VCPKG_ROOT_DIR}\ports\${PORT} -# PORT = current port name (zlib, etc) -# TARGET_TRIPLET = current triplet (x86-windows, x64-windows-static, etc) -# VCPKG_CRT_LINKAGE = C runtime linkage type (static, dynamic) -# VCPKG_LIBRARY_LINKAGE = target library linkage type (static, dynamic) -# VCPKG_ROOT_DIR = <C:\path\to\current\vcpkg> -# VCPKG_TARGET_ARCHITECTURE = target architecture (x64, x86, arm) -# - +set(MSVC_USE_STATIC_CRT_VALUE OFF) if(VCPKG_CRT_LINKAGE STREQUAL "static") - message(FATAL_ERROR "Ceres does not currently support static CRT linkage") + if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + message(FATAL_ERROR "Ceres does not currently support mixing static CRT and dynamic library linkage") + endif() + set(MSVC_USE_STATIC_CRT_VALUE ON) endif() include(vcpkg_common_functions) -set(VCPKG_PLATFORM_TOOLSET "v140") # Force VS2015 because VS2017 compiler return internal error -# eigen3\eigen\src\core\redux.h(237): fatal error C1001: An internal error has occurred in the compiler. [internal\ceres\ceres.vcxproj] - vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ceres-solver/ceres-solver @@ -47,6 +36,7 @@ vcpkg_configure_cmake( -DSUITESPARSE=ON -DGFLAGS_PREFER_EXPORTED_GFLAGS_CMAKE_CONFIGURATION=OFF # TheiaSfm doesn't work well with this -DGLOG_PREFER_EXPORTED_GLOG_CMAKE_CONFIGURATION=OFF # TheiaSfm doesn't work well with this + -DMSVC_USE_STATIC_CRT=${MSVC_USE_STATIC_CRT_VALUE} ) vcpkg_install_cmake() diff --git a/ports/cgal/CONTROL b/ports/cgal/CONTROL new file mode 100644 index 000000000..d6d01956d --- /dev/null +++ b/ports/cgal/CONTROL @@ -0,0 +1,4 @@ +Source: cgal +Version: 4.11 +Build-Depends:mpfr, mpir, zlib, boost, qt5 +Description: The Computational Geometry Algorithms Library (CGAL) is a C++ library that aims to provide easy access to efficient and reliable algorithms in computational geometry. diff --git a/ports/cgal/portfile.cmake b/ports/cgal/portfile.cmake new file mode 100644 index 000000000..c55d0ba3e --- /dev/null +++ b/ports/cgal/portfile.cmake @@ -0,0 +1,26 @@ +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO CGAL/cgal + REF releases/CGAL-4.11 + SHA512 91e555d5988bee387afa31331e1e3a8990206468fd8c774fd82979d9ff169e9c4835ecc6ba3d576cda617b6cb2cd52d27657d2434e38b29ce0e7e643436810ab + HEAD_REF master +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} +) + +vcpkg_install_cmake() + +vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/CGAL") + +vcpkg_copy_pdbs() + +# Clean +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) + +# Handle copyright of suitesparse and metis +file(COPY ${SOURCE_PATH}/copyright DESTINATION ${CURRENT_PACKAGES_DIR}/share/cgal) diff --git a/ports/chakracore/CONTROL b/ports/chakracore/CONTROL index f3b510ecd..b86fa8963 100644 --- a/ports/chakracore/CONTROL +++ b/ports/chakracore/CONTROL @@ -1,3 +1,3 @@ Source: chakracore -Version: 1.4.3 -Description: Core part of the Chakra Javascript engine
\ No newline at end of file +Version: 1.7.4 +Description: Core part of the Chakra Javascript engine diff --git a/ports/chakracore/portfile.cmake b/ports/chakracore/portfile.cmake index 331cd8b31..7bb628744 100644 --- a/ports/chakracore/portfile.cmake +++ b/ports/chakracore/portfile.cmake @@ -10,8 +10,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Microsoft/ChakraCore - REF v1.4.3 - SHA512 6083bbbb4b980f44fe0e1d3581eea17190e379134f9312f11d195694aa3e0d9723406d8048ce461bc2744306c07b44465d6d58636b114a82b2f42d7a3316c9af + REF v1.7.4 + SHA512 116ed75d3128f8d9e8ad5a12deed194e14403e05f495422b14277a31620a37b7c8324f04738947388393b0e204f7748bb81d90ebab3373a198db76b70f89f374 HEAD_REF master ) diff --git a/ports/clapack/portfile.cmake b/ports/clapack/portfile.cmake index 72b1aa23b..933294419 100644 --- a/ports/clapack/portfile.cmake +++ b/ports/clapack/portfile.cmake @@ -19,7 +19,7 @@ endif() set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/clapack-3.2.1-CMAKE) vcpkg_download_distfile(ARCHIVE URLS "http://www.netlib.org/clapack/clapack-3.2.1-CMAKE.tgz" - FILENAME "clapack-3.2.1" + FILENAME "clapack-3.2.1.tgz" SHA512 cf19c710291ddff3f6ead7d86bdfdeaebca21291d9df094bf0a8ef599546b007757fb2dbb19b56511bb53ef7456eac0c73973b9627bf4d02982c856124428b49 ) vcpkg_extract_source_archive(${ARCHIVE}) diff --git a/ports/coolprop/CONTROL b/ports/coolprop/CONTROL new file mode 100644 index 000000000..16cbefe24 --- /dev/null +++ b/ports/coolprop/CONTROL @@ -0,0 +1,4 @@ +Source: coolprop +Version: 6.1.0-2 +Description: Thermophysical properties for the masses +Build-Depends: catch, eigen3, pybind11, if97, fmt, rapidjson, msgpack, refprop-headers diff --git a/ports/coolprop/portfile.cmake b/ports/coolprop/portfile.cmake new file mode 100644 index 000000000..2e8c61005 --- /dev/null +++ b/ports/coolprop/portfile.cmake @@ -0,0 +1,125 @@ +include(vcpkg_common_functions) +set(PORT_VERSION 6.1.0) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO CoolProp/CoolProp + REF 0e934e842e9ce83eea64fda1d4ab8e59adf9d8cd + SHA512 a44eafc84f2b88259d7bcf6cfa81daeb81ea9d55bd356e59b3ef77b6f68ea405961c7cb54ba899e3896bb2a02d3e01119a4a51f72899126c8da6081fa2ece948 + HEAD_REF master +) + +vcpkg_find_acquire_program(PYTHON2) +get_filename_component(PYTHON2_DIR ${PYTHON2} DIRECTORY) +set(ENV{PATH} "$ENV{PATH};${PYTHON2_DIR}") + +file(REMOVE_RECURSE ${SOURCE_PATH}/externals) + +# Patch up the file locations +file(COPY + ${CURRENT_INSTALLED_DIR}/include/catch.hpp + DESTINATION ${SOURCE_PATH}/externals/Catch/single_include +) + +file(COPY + ${CURRENT_INSTALLED_DIR}/include/eigen3/Eigen + DESTINATION ${SOURCE_PATH}/externals/Eigen +) +file(COPY + ${CURRENT_INSTALLED_DIR}/include/eigen3/unsupported/Eigen + DESTINATION ${SOURCE_PATH}/externals/Eigen/unsupported +) + +file(COPY + ${CURRENT_INSTALLED_DIR}/include/rapidjson + DESTINATION ${SOURCE_PATH}/externals/rapidjson/include +) + +file(COPY + ${CURRENT_INSTALLED_DIR}/include/IF97.h + DESTINATION ${SOURCE_PATH}/externals/IF97 +) + +file(COPY + ${CURRENT_INSTALLED_DIR}/include/msgpack.h + ${CURRENT_INSTALLED_DIR}/include/msgpack.hpp + ${CURRENT_INSTALLED_DIR}/include/msgpack + DESTINATION ${SOURCE_PATH}/externals/msgpack-c/include +) + +file(COPY + ${CURRENT_INSTALLED_DIR}/include/fmt + DESTINATION ${SOURCE_PATH}/externals/cppformat +) + +file(COPY + ${CURRENT_INSTALLED_DIR}/include/REFPROP_lib.h + DESTINATION ${SOURCE_PATH}/externals/REFPROP-headers/ +) + +# Use a nasty hack to include the correct header +file(APPEND + ${SOURCE_PATH}/externals/msgpack-c/include/fmt/format.h + "#include \"fmt/printf.h\"" +) + +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" COOLPROP_SHARED_LIBRARY) +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" COOLPROP_STATIC_LIBRARY) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + -DCOOLPROP_SHARED_LIBRARY=${COOLPROP_SHARED_LIBRARY} + -DCOOLPROP_STATIC_LIBRARY=${COOLPROP_STATIC_LIBRARY} +) + +vcpkg_install_cmake() +vcpkg_copy_pdbs() + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + set(TARGET_FOLDER "shared_library") +else() + set(TARGET_FOLDER "static_library") +endif() + +# Install the headers +file(GLOB COOLPROP_HEADERS "${SOURCE_PATH}/install_root/${TARGET_FOLDER}/*.h") +file(INSTALL ${COOLPROP_HEADERS} DESTINATION ${CURRENT_PACKAGES_DIR}/include) + +# Install the libs +set(TARGET_FOLDER ${TARGET_FOLDER}/Windows) +if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") + set(BITS 32bit) +else() + set(BITS 64bit) +endif() + +file(INSTALL + "${SOURCE_PATH}/install_root/${TARGET_FOLDER}/${BITS}/CoolProp.lib" + DESTINATION ${COOLPROP_LIBS} DESTINATION ${CURRENT_PACKAGES_DIR}/lib +) + +file(INSTALL + "${SOURCE_PATH}/install_root/${TARGET_FOLDER}/${BITS}/CoolPropd.lib" + DESTINATION ${COOLPROP_LIBS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib +) + +file(INSTALL + "${SOURCE_PATH}/install_root/${TARGET_FOLDER}/${BITS}/CoolProp.dll" + DESTINATION ${COOLPROP_LIBS} DESTINATION ${CURRENT_PACKAGES_DIR}/bin +) + +file(INSTALL + "${SOURCE_PATH}/install_root/${TARGET_FOLDER}/${BITS}/CoolPropd.dll" + DESTINATION ${COOLPROP_LIBS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin +) + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +# Handle copyright +file( + INSTALL ${SOURCE_PATH}/LICENSE + DESTINATION ${CURRENT_PACKAGES_DIR}/share/coolprop + RENAME copyright +) diff --git a/ports/cppunit/CONTROL b/ports/cppunit/CONTROL index 76a315cdf..b7d8968d7 100644 --- a/ports/cppunit/CONTROL +++ b/ports/cppunit/CONTROL @@ -1,3 +1,3 @@ Source: cppunit -Version: 1.13.2 +Version: 1.14.0 Description: CppUnit is the C++ port of the famous JUnit framework for unit testing. Test output is in XML for automatic testing and GUI based for supervised tests.
\ No newline at end of file diff --git a/ports/cppunit/portfile.cmake b/ports/cppunit/portfile.cmake index 14b1d0478..a56f7849a 100644 --- a/ports/cppunit/portfile.cmake +++ b/ports/cppunit/portfile.cmake @@ -11,11 +11,12 @@ # include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src-${TARGET_TRIPLET}/cppunit-1.13.2) +set(VERSION 1.14.0) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src-${TARGET_TRIPLET}/cppunit-${VERSION}) vcpkg_download_distfile(ARCHIVE - URLS "http://dev-www.libreoffice.org/src/cppunit-1.13.2.tar.gz" - FILENAME "cppunit-1.13.2.tar.gz" - SHA512 8f4be569f321d577cec31931f49f4df143bc94e283605509b6ea50c60690aa91a2aed940e7eebd4b2413a4218f9a6c3978d312d8e587eab040283c6563846ecd + URLS "http://dev-www.libreoffice.org/src/cppunit-${VERSION}.tar.gz" + FILENAME "cppunit-${VERSION}.tar.gz" + SHA512 4ea1da423c6f7ab37e4144689f593396829ce74d43872d6b10709c1ad5fbda4ee945842f7e9803592520ef81ac713e95a3fe130295bf048cd32a605d1959882e ) file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/src-${TARGET_TRIPLET}) diff --git a/ports/cppwinrt/CONTROL b/ports/cppwinrt/CONTROL index e470b2458..cd911b99e 100644 --- a/ports/cppwinrt/CONTROL +++ b/ports/cppwinrt/CONTROL @@ -1,3 +1,3 @@ Source: cppwinrt -Version: spring_2017_creators_update_for_vs_15.3 +Version: fall_2017_creators_update_for_vs_15.3-2 Description: C++/WinRT is a standard C++ language projection for the Windows Runtime. diff --git a/ports/cppwinrt/portfile.cmake b/ports/cppwinrt/portfile.cmake index c83465efe..ec1cb0603 100644 --- a/ports/cppwinrt/portfile.cmake +++ b/ports/cppwinrt/portfile.cmake @@ -1,18 +1,21 @@ include(vcpkg_common_functions) -find_program(GIT git) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/cppwinrt-spring_2017_creators_update_for_vs_15.3) -vcpkg_download_distfile(ARCHIVE - URLS "https://github.com/Microsoft/cppwinrt/archive/spring_2017_creators_update_for_vs_15.3.tar.gz" - FILENAME "cppwinrt-spring_2017_creators_update_for_vs_15.3.tar.gz" - SHA512 779586122552e49a79aff08f4476905e00c3b4ad3dbc502240e9a7cc59ec0e4ab6304149a66505923ab84d2b334059de9e18c84a5b0ed6bde106d19119ef911f +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO Microsoft/cppwinrt + REF fall_2017_creators_update_for_vs_15.3 + SHA512 e3f987ed3f3dce019b8bf9f5451e53b42357473a003b8c14f9009e1848ee0463286bd46fdc3c739c8f7c2d232707e8018f5c087ffae784c745d51a8143f9a294 + HEAD_REF master ) -vcpkg_extract_source_archive(${ARCHIVE}) # Put the licence file where vcpkg expects it -file(COPY ${SOURCE_PATH}/license DESTINATION ${CURRENT_PACKAGES_DIR}/share/cppwinrt/license.txt) -file(RENAME ${CURRENT_PACKAGES_DIR}/share/cppwinrt/license.txt ${CURRENT_PACKAGES_DIR}/share/cppwinrt/copyright) +file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/cppwinrt) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/cppwinrt/LICENSE ${CURRENT_PACKAGES_DIR}/share/cppwinrt/copyright) # Copy the cppwinrt header files -file(GLOB HEADER_FILES ${SOURCE_PATH}/10.0.15063.0/winrt/*) -file(COPY ${HEADER_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/include/winrt) +file(GLOB HEADER_FILES ${SOURCE_PATH}/10.0.16299.0/winrt/*) +file( + COPY ${HEADER_FILES} + DESTINATION ${CURRENT_PACKAGES_DIR}/include/winrt + REGEX "\.(gitattributes|gitignore)$" EXCLUDE +) diff --git a/ports/cppzmq/CONTROL b/ports/cppzmq/CONTROL index bbf80d29a..39928046d 100644 --- a/ports/cppzmq/CONTROL +++ b/ports/cppzmq/CONTROL @@ -1,4 +1,4 @@ Source: cppzmq -Version: 4.2.1 +Version: 4.2.2 Build-Depends: zeromq Description: lightweight messaging kernel, C++ bindings diff --git a/ports/cppzmq/portfile.cmake b/ports/cppzmq/portfile.cmake index fdfc86257..4f0701c59 100644 --- a/ports/cppzmq/portfile.cmake +++ b/ports/cppzmq/portfile.cmake @@ -1,12 +1,13 @@ #header-only library include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/cppzmq-4.2.1) -vcpkg_download_distfile(ARCHIVE - URLS "https://github.com/zeromq/cppzmq/archive/v4.2.1.zip" - FILENAME "cppzmq-4.2.1.zip" - SHA512 ee75ce4bd28ecb5ef660d1ed6f5522654eced6ded8745dc0c61df351f4ff0ff8980d1bd848b2649fcce4aa539a457e56e55b0a59cb49f44b0a29875d0ea28dce + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO zeromq/cppzmq + REF v4.2.2 + SHA512 5f61ea4a16987c1363c3029cf46b3e83ddd86d65e8d639b0332d691f8fdb5cee121b5d72a9b8c89221daf52ea5892219e0bc4ea4e761bb1e7deb1659011dd3c9 + HEAD_REF master ) -vcpkg_extract_source_archive(${ARCHIVE}) # cppzmq is a single header library, so we just need to copy that file in the include directory file(INSTALL ${SOURCE_PATH}/zmq.hpp DESTINATION ${CURRENT_PACKAGES_DIR}/include) diff --git a/ports/curl/portfile.cmake b/ports/curl/portfile.cmake index c770d3f25..eaeba787d 100644 --- a/ports/curl/portfile.cmake +++ b/ports/curl/portfile.cmake @@ -73,3 +73,5 @@ endif() file(WRITE ${CURRENT_PACKAGES_DIR}/include/curl/curl.h "${CURL_H}") vcpkg_copy_pdbs() + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) diff --git a/ports/curl/usage b/ports/curl/usage new file mode 100644 index 000000000..d43e7112e --- /dev/null +++ b/ports/curl/usage @@ -0,0 +1,5 @@ +The package curl is compatible with built-in CMake targets:
+
+ find_package(CURL REQUIRED)
+ target_link_libraries(main PRIVATE ${CURL_LIBRARIES})
+ target_include_directories(main PRIVATE ${CURL_INCLUDE_DIRS})
diff --git a/ports/date/CMakeLists.txt b/ports/date/CMakeLists.txt index 91fcab1c7..c1efc4e2a 100644 --- a/ports/date/CMakeLists.txt +++ b/ports/date/CMakeLists.txt @@ -8,9 +8,9 @@ endif() add_definitions(-DNOMINMAX) -include_directories(".") +include_directories("./include") -add_library(tz tz.cpp) +add_library(tz src/tz.cpp) if(BUILD_SHARED_LIBS) target_compile_definitions(tz PRIVATE -DDATE_BUILD_DLL) @@ -26,5 +26,5 @@ install( ) if(NOT DISABLE_INSTALL_HEADERS) - install(FILES date.h tz.h julian.h iso_week.h islamic.h DESTINATION include) + install(FILES include/date/date.h include/date/tz.h include/date/julian.h include/date/iso_week.h include/date/islamic.h DESTINATION include/date) endif() diff --git a/ports/date/CONTROL b/ports/date/CONTROL index 8eab618c2..68fb435b6 100644 --- a/ports/date/CONTROL +++ b/ports/date/CONTROL @@ -1,3 +1,3 @@ Source: date -Version: 2.2 +Version: 2.3-c286981b3bf83c79554769df68b27415cee68d77 Description: A date and time library based on the C++11/14/17 <chrono> header diff --git a/ports/date/portfile.cmake b/ports/date/portfile.cmake index f73c72b52..a5270554f 100644 --- a/ports/date/portfile.cmake +++ b/ports/date/portfile.cmake @@ -8,8 +8,8 @@ message(WARNING vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO HowardHinnant/date - REF 272d487b3d490126e520b67fe76bbb2e67226c07 - SHA512 59e8ff642d3eb82cb6116a77d4c5e14bbc2ae6bd4019e64a49609b6e46d679c2cb4ccae74807b72223aed18ae015596193919cdb58b011bfb774ff3e29a1d43b + REF c286981b3bf83c79554769df68b27415cee68d77 + SHA512 226e2cbc2598fbbe3a451664b017ab5b4314a682a9303268bd531931ea23baa4c9677c4433a87dbbc4a7d960dcfad1fcb632ac430d5d81c9909bcc567cf7eadf HEAD_REF master ) @@ -25,7 +25,7 @@ vcpkg_install_cmake() vcpkg_copy_pdbs() -set(HEADER "${CURRENT_PACKAGES_DIR}/include/tz.h") +set(HEADER "${CURRENT_PACKAGES_DIR}/include/date/tz.h") file(READ "${HEADER}" _contents) if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) string(REPLACE "DATE_BUILD_DLL" "1" _contents "${_contents}") diff --git a/ports/devil/0001_fix-encoding.patch b/ports/devil/0001_fix-encoding.patch new file mode 100644 index 000000000..395171e71 --- /dev/null +++ b/ports/devil/0001_fix-encoding.patch @@ -0,0 +1,173 @@ +diff --git a/src-ILU/include/ilu_error/ilu_err-french.h b/src-ILU/include/ilu_error/ilu_err-french.h +index d3b280d..445440e 100644 +--- a/src-ILU/include/ilu_error/ilu_err-french.h ++++ b/src-ILU/include/ilu_error/ilu_err-french.h +@@ -17,19 +17,19 @@ + #include "ilu_internal.h" + + ILconst_string iluErrorStringsFrench[IL_FILE_READ_ERROR - IL_INVALID_ENUM + 1] = { +- IL_TEXT("énumération invalide"), +- IL_TEXT("dépassement de mémoire"), +- IL_TEXT("format non supporté"), ++ IL_TEXT("énumération invalide"), ++ IL_TEXT("dépassement de mémoire"), ++ IL_TEXT("format non supporté"), + IL_TEXT("erreur interne"), +- IL_TEXT("valeur illégale"), +- IL_TEXT("opération illégale"), +- IL_TEXT("valeur de fichier illégale"), +- IL_TEXT("en-tête de fichier invalide"), +- IL_TEXT("paramètre invalide"), ++ IL_TEXT("valeur illégale"), ++ IL_TEXT("opération illégale"), ++ IL_TEXT("valeur de fichier illégale"), ++ IL_TEXT("en-tête de fichier invalide"), ++ IL_TEXT("paramètre invalide"), + IL_TEXT("ne peut pas ouvrir le fichier"), + IL_TEXT("extension invalide"), +- IL_TEXT("fichier déjà existant"), +- IL_TEXT("équivalent hors-format"), ++ IL_TEXT("fichier déjà existant"), ++ IL_TEXT("équivalent hors-format"), + IL_TEXT("stack overflow"), //often used like this in French, so no need to translate + IL_TEXT("stack underflow"), + IL_TEXT("conversion invalide"), +@@ -38,7 +38,7 @@ ILconst_string iluErrorStringsFrench[IL_FILE_READ_ERROR - IL_INVALID_ENUM + 1] = + }; + + ILconst_string iluLibErrorStringsFrench[IL_LIB_EXR_ERROR - IL_LIB_GIF_ERROR + 1] = { +- IL_TEXT("gif : erreur dans la librairie"), //or: gif : erreur dans la bibliothèque (but less used) ++ IL_TEXT("gif : erreur dans la librairie"), //or: gif : erreur dans la bibliothèque (but less used) + IL_TEXT("jpeg : erreur dans la librairie"), + IL_TEXT("png : erreur dans la librairie"), + IL_TEXT("tiff : erreur dans la librairie"), +diff --git a/src-ILU/include/ilu_error/ilu_err-german.h b/src-ILU/include/ilu_error/ilu_err-german.h +index bf3f05c..acdbe8a 100644 +--- a/src-ILU/include/ilu_error/ilu_err-german.h ++++ b/src-ILU/include/ilu_error/ilu_err-german.h +@@ -6,7 +6,7 @@ + // + // Filename: src-ILU/include/ilu_error/ilu_err_German.h + // +-// Description: Error functions in German, translated by Andreas Stöckel. ++// Description: Error functions in German, translated by Andreas Stöckel. + // + //----------------------------------------------------------------------------- + +@@ -17,23 +17,23 @@ + #include "ilu_internal.h" + + ILconst_string iluErrorStringsGerman[IL_FILE_READ_ERROR - IL_INVALID_ENUM + 1] = { +- IL_TEXT("Ungültiger Enumerator"), +- IL_TEXT("Kein Speicher verfügbar"), +- IL_TEXT("Das Format wird noch nicht unterstützt"), ++ IL_TEXT("Ungültiger Enumerator"), ++ IL_TEXT("Kein Speicher verfügbar"), ++ IL_TEXT("Das Format wird noch nicht unterstützt"), + IL_TEXT("Interner Fehler"), +- IL_TEXT("Ungültiger Wert"), +- IL_TEXT("Unzulässige Operation"), +- IL_TEXT("Unzulässiger Datei-Wert"), +- IL_TEXT("Unzulässiger Datei-Header"), +- IL_TEXT("Unzulässiger Parameter"), +- IL_TEXT("Datei konnte nicht geöffnet werden"), +- IL_TEXT("Ungültiger Erweiterung"), ++ IL_TEXT("Ungültiger Wert"), ++ IL_TEXT("Unzulässige Operation"), ++ IL_TEXT("Unzulässiger Datei-Wert"), ++ IL_TEXT("Unzulässiger Datei-Header"), ++ IL_TEXT("Unzulässiger Parameter"), ++ IL_TEXT("Datei konnte nicht geöffnet werden"), ++ IL_TEXT("Ungültiger Erweiterung"), + IL_TEXT("Die Datei existiert bereits"), + IL_TEXT("out format equivalent"), +- IL_TEXT("Stack Überlauf"), ++ IL_TEXT("Stack Überlauf"), + IL_TEXT("Stack Unterlauf"), +- IL_TEXT("Ungültige Konvertierung"), +- IL_TEXT("Unzulässige Abmessungen"), ++ IL_TEXT("Ungültige Konvertierung"), ++ IL_TEXT("Unzulässige Abmessungen"), + IL_TEXT("Fehler beim Lesen der Datei") + }; + +diff --git a/src-ILU/include/ilu_error/ilu_err-italian.h b/src-ILU/include/ilu_error/ilu_err-italian.h +index 09d7bd1..d34b23f 100644 +--- a/src-ILU/include/ilu_error/ilu_err-italian.h ++++ b/src-ILU/include/ilu_error/ilu_err-italian.h +@@ -22,13 +22,13 @@ ILconst_string iluErrorStringsItalian[IL_FILE_READ_ERROR - IL_INVALID_ENUM + 1] + IL_TEXT("configuri non sostenne"), + IL_TEXT("erreur interne"), + IL_TEXT("errore interno"), +- IL_TEXT("opération illégale"), ++ IL_TEXT("opération illégale"), + IL_TEXT("operazione illegale"), + IL_TEXT("inebri archivio nullo"), + IL_TEXT("parametro nullo"), +- IL_TEXT("non può aprire l'archivio"), ++ IL_TEXT("non può aprire l'archivio"), + IL_TEXT("dilazione nulla"), +- IL_TEXT("archivi già esistendo"), ++ IL_TEXT("archivi già esistendo"), + IL_TEXT("equivalente fuori-configuri"), + IL_TEXT("inondi di batteria"), + IL_TEXT("insufficienza di batteria"), +diff --git a/src-ILU/include/ilu_error/ilu_err-spanish.h b/src-ILU/include/ilu_error/ilu_err-spanish.h +index 77b5a24..0945fdf 100644 +--- a/src-ILU/include/ilu_error/ilu_err-spanish.h ++++ b/src-ILU/include/ilu_error/ilu_err-spanish.h +@@ -6,7 +6,7 @@ + // + // Filename: src-ILU/include/ilu_error/ilu_err-spanish.h + // +-// Description: Error functions in Spanish, translated by Carlos Aragonés ++// Description: Error functions in Spanish, translated by Carlos Aragonés + // + //----------------------------------------------------------------------------- + +@@ -19,32 +19,32 @@ + ILconst_string iluErrorStringsSpanish[IL_FILE_READ_ERROR - IL_INVALID_ENUM + 1] = { + IL_TEXT("enumerador incorrecto"), + IL_TEXT("no queda memoria disponible"), +- IL_TEXT("formato no soportado todavía"), ++ IL_TEXT("formato no soportado todavÃa"), + IL_TEXT("error interno"), + IL_TEXT("valor incorrecto"), +- IL_TEXT("operación ilegaIL_TEXT("), ++ IL_TEXT("operación ilegaIL_TEXT("), + IL_TEXT("valor de fichero ilegaIL_TEXT("), + IL_TEXT("cabecera incorrecta"), +- IL_TEXT("parámetro incorrecto"), ++ IL_TEXT("parámetro incorrecto"), + IL_TEXT("no se puede abrir el fichero"), +- IL_TEXT("extensión desconocida"), ++ IL_TEXT("extensión desconocida"), + IL_TEXT("el fichero ya existe"), + IL_TEXT("formato de salida equivalente"), + IL_TEXT("desbordamiento superior de pila"), + IL_TEXT("desbordamiento inferior de pila"), +- IL_TEXT("conversión incorrecta"), +- IL_TEXT("número de dimensiones incorrecto"), ++ IL_TEXT("conversión incorrecta"), ++ IL_TEXT("número de dimensiones incorrecto"), + IL_TEXT("error de lectura en el fichero") + }; + + ILconst_string iluLibErrorStringsSpanish[IL_LIB_EXR_ERROR - IL_LIB_GIF_ERROR + 1] = { +- IL_TEXT("error en la librería gif"), // the correct translation will be 'error en la biblioteca gif', but nobody in spain uses the word 'biblioteca' for the translation the word 'library'. Almost all Spanish programmers translate 'library' incorrectly to 'librería'. +- IL_TEXT("error en la librería jpeg"), +- IL_TEXT("error en la librería png"), +- IL_TEXT("error en la librería tiff"), +- IL_TEXT("error en la librería mng"), +- IL_TEXT("error en la librería jp2"), +- IL_TEXT("error en la librería exr"), ++ IL_TEXT("error en la librerÃa gif"), // the correct translation will be 'error en la biblioteca gif', but nobody in spain uses the word 'biblioteca' for the translation the word 'library'. Almost all Spanish programmers translate 'library' incorrectly to 'librerÃa'. ++ IL_TEXT("error en la librerÃa jpeg"), ++ IL_TEXT("error en la librerÃa png"), ++ IL_TEXT("error en la librerÃa tiff"), ++ IL_TEXT("error en la librerÃa mng"), ++ IL_TEXT("error en la librerÃa jp2"), ++ IL_TEXT("error en la librerÃa exr"), + }; + + ILconst_string iluMiscErrorStringsSpanish[2] = { diff --git a/ports/devil/0002_fix-missing-mfc-includes.patch b/ports/devil/0002_fix-missing-mfc-includes.patch new file mode 100644 index 000000000..755d0d867 --- /dev/null +++ b/ports/devil/0002_fix-missing-mfc-includes.patch @@ -0,0 +1,102 @@ +diff --git a/src-IL/msvc/IL Unicode.rc b/src-IL/msvc/IL Unicode.rc +index 346758f..298a207 100644 +--- a/src-IL/msvc/IL Unicode.rc ++++ b/src-IL/msvc/IL Unicode.rc +@@ -7,7 +7,11 @@ + // + // Generated from the TEXTINCLUDE 2 resource. + // +-#include "afxres.h" ++#define APSTUDIO_HIDDEN_SYMBOLS ++#include "windows.h" ++#undef APSTUDIO_HIDDEN_SYMBOLS ++#include "resource.h" ++ + ///////////////////////////////////////////////////////////////////////////// + #undef APSTUDIO_READONLY_SYMBOLS + +diff --git a/src-IL/msvc/IL.rc b/src-IL/msvc/IL.rc +index 8bfadf9..0b8289f 100644 +--- a/src-IL/msvc/IL.rc ++++ b/src-IL/msvc/IL.rc +@@ -7,10 +7,13 @@ + // + // Generated from the TEXTINCLUDE 2 resource. + // +-#include "afxres.h" ++#define APSTUDIO_HIDDEN_SYMBOLS ++#include "windows.h" ++#undef APSTUDIO_HIDDEN_SYMBOLS ++#include "resource.h" + +-///////////////////////////////////////////////////////////////////////////// + #undef APSTUDIO_READONLY_SYMBOLS ++///////////////////////////////////////////////////////////////////////////// + + ///////////////////////////////////////////////////////////////////////////// + // English (United States) resources +diff --git a/src-IL/msvc8/IL Unicode.rc b/src-IL/msvc8/IL Unicode.rc +index 026ee49..66ca4bf 100644 +--- a/src-IL/msvc8/IL Unicode.rc ++++ b/src-IL/msvc8/IL Unicode.rc +@@ -7,7 +7,10 @@ + // + // Generated from the TEXTINCLUDE 2 resource. + // +-#include "afxres.h" ++#define APSTUDIO_HIDDEN_SYMBOLS ++#include "windows.h" ++#undef APSTUDIO_HIDDEN_SYMBOLS ++#include "resource.h" + + ///////////////////////////////////////////////////////////////////////////// + #undef APSTUDIO_READONLY_SYMBOLS +diff --git a/src-IL/msvc8/IL.rc b/src-IL/msvc8/IL.rc +index 9301d41..3ad52c0 100644 +--- a/src-IL/msvc8/IL.rc ++++ b/src-IL/msvc8/IL.rc +@@ -7,7 +7,10 @@ + // + // Generated from the TEXTINCLUDE 2 resource. + // +-#include "afxres.h" ++#define APSTUDIO_HIDDEN_SYMBOLS ++#include "windows.h" ++#undef APSTUDIO_HIDDEN_SYMBOLS ++#include "resource.h" + + ///////////////////////////////////////////////////////////////////////////// + #undef APSTUDIO_READONLY_SYMBOLS +diff --git a/src-IL/msvc9/IL Unicode.rc b/src-IL/msvc9/IL Unicode.rc +index d0dff4f..c9cf51f 100644 +--- a/src-IL/msvc9/IL Unicode.rc ++++ b/src-IL/msvc9/IL Unicode.rc +@@ -7,7 +7,10 @@ + // + // Generated from the TEXTINCLUDE 2 resource. + // +-#include "afxres.h" ++#define APSTUDIO_HIDDEN_SYMBOLS ++#include "windows.h" ++#undef APSTUDIO_HIDDEN_SYMBOLS ++#include "resource.h" + + ///////////////////////////////////////////////////////////////////////////// + #undef APSTUDIO_READONLY_SYMBOLS +diff --git a/src-IL/msvc9/IL.rc b/src-IL/msvc9/IL.rc +index 9f5c795..6b8c891 100644 +--- a/src-IL/msvc9/IL.rc ++++ b/src-IL/msvc9/IL.rc +@@ -7,7 +7,10 @@ + // + // Generated from the TEXTINCLUDE 2 resource. + // +-#include "afxres.h" ++#define APSTUDIO_HIDDEN_SYMBOLS ++#include "windows.h" ++#undef APSTUDIO_HIDDEN_SYMBOLS ++#include "resource.h" + + ///////////////////////////////////////////////////////////////////////////// + #undef APSTUDIO_READONLY_SYMBOLS +
\ No newline at end of file diff --git a/ports/devil/CONTROL b/ports/devil/CONTROL new file mode 100644 index 000000000..fcdf51a9d --- /dev/null +++ b/ports/devil/CONTROL @@ -0,0 +1,4 @@ +Source: devil +Version: 1.8.0-1 +Build-Depends: zlib, libpng, libjpeg-turbo, tiff, openjpeg, libwebp, libraw, jxrlib, openexr, jasper, liblzma +Description: A full featured cross-platform image library diff --git a/ports/devil/enable-static.patch b/ports/devil/enable-static.patch new file mode 100644 index 000000000..bf0cb618a --- /dev/null +++ b/ports/devil/enable-static.patch @@ -0,0 +1,26 @@ +diff --git a/devil/src-ILU/CMakeLists.txt b/devil/src-ILU/CMakeLists.txt +index 17a3afe..a46ab41 100644 +--- a/devil/src-ILU/CMakeLists.txt ++++ b/devil/src-ILU/CMakeLists.txt +@@ -43,7 +43,7 @@ source_group("Header Files" FILES ${ILU_INC} ) + source_group("Resource Files" FILES ${ILU_RSRC} ) + + # Remove SHARED to create a static library +-add_library(ILU SHARED ${ILU_SRCS} ${ILU_INC} ${ILU_RSRC}) ++add_library(ILU ${ILU_SRCS} ${ILU_INC} ${ILU_RSRC}) + + + ## ILU requires IL +diff --git a/devil/src-ILUT/CMakeLists.txt b/devil/src-ILUT/CMakeLists.txt +index 21470cb..398d3c1 100644 +--- a/devil/src-ILUT/CMakeLists.txt ++++ b/devil/src-ILUT/CMakeLists.txt +@@ -43,7 +43,7 @@ source_group("Header Files" FILES ${ILUT_INC} ) + source_group("Resource Files" FILES ${ILUT_RSRC} ) + + # Remove SHARED to create a static library +-add_library(ILUT SHARED ${ILUT_SRCS} ${ILUT_INC} ${ILUT_RSRC}) ++add_library(ILUT ${ILUT_SRCS} ${ILUT_INC} ${ILUT_RSRC}) + + ## add link sub library info + target_link_libraries(ILUT diff --git a/ports/devil/portfile.cmake b/ports/devil/portfile.cmake new file mode 100644 index 000000000..f9dc82293 --- /dev/null +++ b/ports/devil/portfile.cmake @@ -0,0 +1,32 @@ +include(vcpkg_common_functions) + +set(DEVIL_VERSION 1.8.0) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO DentonW/DevIL + REF v${DEVIL_VERSION} + SHA512 4aed5e50a730ece8b1eb6b2f6204374c6fb6f5334cf7c880d84c0f79645ea7c6b5118f57a7868a487510fc59c452f51472b272215d4c852f265f58b5857e17c7 + HEAD_REF master +) + +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH}/DevIL + PATCHES + ${CMAKE_CURRENT_LIST_DIR}/0001_fix-encoding.patch + ${CMAKE_CURRENT_LIST_DIR}/0002_fix-missing-mfc-includes.patch + ${CMAKE_CURRENT_LIST_DIR}/enable-static.patch +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH}/DevIL + PREFER_NINJA +) + +vcpkg_install_cmake() +vcpkg_copy_pdbs() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +# Handle copyright +file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/devil RENAME copyright) diff --git a/ports/dimcli/CONTROL b/ports/dimcli/CONTROL index 2b108239d..c8b8c56e2 100644 --- a/ports/dimcli/CONTROL +++ b/ports/dimcli/CONTROL @@ -1,3 +1,3 @@ Source: dimcli -Version: 2.0.0-1 +Version: 3.1.1-1 Description: C++ command line parser toolkit diff --git a/ports/dimcli/portfile.cmake b/ports/dimcli/portfile.cmake index 72097a5f5..3c4eb912c 100644 --- a/ports/dimcli/portfile.cmake +++ b/ports/dimcli/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO gknowles/dimcli - REF v2.0.0 - SHA512 55ff29e3ddd6a96946f58e661231a1d2197f56a86c9260142f083589738aaa5e2f7721c754fa4a86b450a943c19367e1c4f82aec57e5b7ae7336f989e0194dec + REF v3.1.1 + SHA512 ed9aeedc59a9d48c59aa8dd1adb9cb110771c1eab0bbab8f8b518e12a45cdafb0ea94301d082ed3a033ca2428c19c8d990c76f666d1e9822cddf6e744f1db701 HEAD_REF master ) set(staticCrt OFF) @@ -13,7 +13,7 @@ if(VCPKG_CRT_LINKAGE STREQUAL static) endif() vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} - OPTIONS -DLINK_STATIC_RUNTIME:BOOL=${staticCrt} + OPTIONS -DLINK_STATIC_RUNTIME:BOOL=${staticCrt} -DINSTALL_LIBS:BOOL=ON ) vcpkg_install_cmake() diff --git a/ports/discord-rpc/CONTROL b/ports/discord-rpc/CONTROL new file mode 100644 index 000000000..e6d3462aa --- /dev/null +++ b/ports/discord-rpc/CONTROL @@ -0,0 +1,3 @@ +Source: discord-rpc +Version: 2.0.1 +Description: Rich Presence allows you to leverage the totally overhauled "Now Playing" section in a Discord user's profile to help people play your game together. diff --git a/ports/discord-rpc/fix-debug.diff b/ports/discord-rpc/fix-debug.diff new file mode 100644 index 000000000..df33249b9 --- /dev/null +++ b/ports/discord-rpc/fix-debug.diff @@ -0,0 +1,24 @@ +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -30,7 +30,6 @@ if(WIN32) + set(BASE_RPC_SRC ${BASE_RPC_SRC} connection_win.cpp discord_register_win.cpp) + add_library(discord-rpc ${RPC_LIBRARY_TYPE} ${BASE_RPC_SRC}) + target_compile_options(discord-rpc PRIVATE /EHsc +- /MT + /Wall + /wd4100 # unreferenced formal parameter + /wd4514 # unreferenced inline +@@ -102,13 +101,10 @@ install( + EXPORT "discord-rpc" + RUNTIME + DESTINATION "bin" +- CONFIGURATIONS Release + LIBRARY + DESTINATION "lib" +- CONFIGURATIONS Release + ARCHIVE + DESTINATION "lib" +- CONFIGURATIONS Release + INCLUDES + DESTINATION "include" + ) diff --git a/ports/discord-rpc/portfile.cmake b/ports/discord-rpc/portfile.cmake new file mode 100644 index 000000000..ea59126a3 --- /dev/null +++ b/ports/discord-rpc/portfile.cmake @@ -0,0 +1,45 @@ +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO discordapp/discord-rpc + REF v2.0.1 + SHA512 496f8f34184c4be3c3341b05ebd440a9e89e36ecf15747ea8f4d1cc0404f1341404fda6c8358a2c08e0149023775472ea78603b9d41687f1004828523debda99 + HEAD_REF master +) + +vcpkg_apply_patches( + SOURCE_PATH + ${SOURCE_PATH} + PATCHES + ${CMAKE_CURRENT_LIST_DIR}/fix-debug.diff +) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) + set(BUILD_DYNAMIC_LIB ON) +else() + set(BUILD_DYNAMIC_LIB OFF) +endif() + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + OPTIONS + -DBUILD_DYNAMIC_LIB=${BUILD_DYNAMIC_LIB} +) + +vcpkg_install_cmake() + +# Remove bin and debug include +if(VCPKG_LIBRARY_LINKAGE STREQUAL static) + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin + ${CURRENT_PACKAGES_DIR}/debug/bin) +else() + file(REMOVE ${CURRENT_PACKAGES_DIR}/bin/send-presence.exe + ${CURRENT_PACKAGES_DIR}/debug/bin/send-presence.exe) +endif() +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +# Copy copright information +file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/discord-rpc" RENAME "copyright") + +vcpkg_copy_pdbs() diff --git a/ports/dlib/CONTROL b/ports/dlib/CONTROL index ce39fcb1b..c773d8d28 100644 --- a/ports/dlib/CONTROL +++ b/ports/dlib/CONTROL @@ -1,4 +1,11 @@ Source: dlib -Version: 19.4-5 +Version: 19.7 Build-Depends: libjpeg-turbo, libpng, sqlite3, fftw3 Description: Modern C++ toolkit containing machine learning algorithms and tools for creating complex software in C++ + +Feature: blas +Description: BLAS support for dlib + +Feature: cuda +Build-Depends: cuda +Description: CUDA support for dlib diff --git a/ports/dlib/portfile.cmake b/ports/dlib/portfile.cmake index 6c1bad0f8..e80176b7d 100644 --- a/ports/dlib/portfile.cmake +++ b/ports/dlib/portfile.cmake @@ -1,18 +1,13 @@ -# Common Ambient Variables: -# VCPKG_ROOT_DIR = <C:\path\to\current\vcpkg> -# TARGET_TRIPLET is the current triplet (x86-windows, etc) -# PORT is the current port name (zlib, etc) -# CURRENT_BUILDTREES_DIR = ${VCPKG_ROOT_DIR}\buildtrees\${PORT} -# CURRENT_PACKAGES_DIR = ${VCPKG_ROOT_DIR}\packages\${PORT}_${TARGET_TRIPLET} - include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/dlib-19.4) -vcpkg_download_distfile(ARCHIVE - URLS "http://dlib.net/files/dlib-19.4.tar.bz2" - FILENAME "dlib-19.4.tar.bz2" - SHA512 c5ae22c507b57a13d880d79e9671730829114d0276508b0a41b373d3abae9057d960fce84fafe1be468d943910853baaa70c88f2516e20a0c41f3895bf217f7b + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO davisking/dlib + REF v19.7 + SHA512 a3877066e04a411d96e910f4229c60a86971a9290e840aa4a5b2f0b102e9b8c37bfede259b80b71ba066d21eb0aa2565808e51d0eab6397ff5fd2bac60dcedd5 + HEAD_REF master ) -vcpkg_extract_source_archive(${ARCHIVE}) + file(REMOVE_RECURSE ${SOURCE_PATH}/dlib/external/libjpeg) file(REMOVE_RECURSE ${SOURCE_PATH}/dlib/external/libpng) file(REMOVE_RECURSE ${SOURCE_PATH}/dlib/external/zlib) @@ -22,6 +17,16 @@ file(READ "${SOURCE_PATH}/dlib/CMakeLists.txt" DLIB_CMAKE) string(REPLACE "PNG_LIBRARY" "PNG_LIBRARIES" DLIB_CMAKE "${DLIB_CMAKE}") file(WRITE "${SOURCE_PATH}/dlib/CMakeLists.txt" "${DLIB_CMAKE}") +set(WITH_BLAS OFF) +if("blas" IN_LIST FEATURES) + set(WITH_BLAS ON) +endif() + +set(WITH_CUDA OFF) +if("cuda" IN_LIST FEATURES) + set(WITH_CUDA ON) +endif() + vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA @@ -30,12 +35,11 @@ vcpkg_configure_cmake( -DDLIB_USE_FFTW=ON -DDLIB_PNG_SUPPORT=ON -DDLIB_JPEG_SUPPORT=ON - -DDLIB_USE_BLAS=OFF + -DDLIB_USE_BLAS=${WITH_BLAS} -DDLIB_USE_LAPACK=OFF - -DDLIB_USE_CUDA=OFF + -DDLIB_USE_CUDA=${WITH_CUDA} -DDLIB_GIF_SUPPORT=OFF -DDLIB_USE_MKL_FFT=OFF - #-DDLIB_USE_CUDA=ON OPTIONS_DEBUG -DDLIB_ENABLE_ASSERTS=ON #-DDLIB_ENABLE_STACK_TRACE=ON @@ -43,7 +47,7 @@ vcpkg_configure_cmake( vcpkg_install_cmake() -vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake) +vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/dlib) # There is no way to suppress installation of the headers and resource files in debug build. file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) @@ -53,7 +57,10 @@ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/dlib/all) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/dlib/test) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/dlib/travis) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/dlib/cmake_utils) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/dlib/cmake_utils/test_for_neon) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/dlib/cmake_utils/test_for_cudnn) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/dlib/cmake_utils/test_for_cuda) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/dlib/cmake_utils/test_for_cpp11) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/dlib/external/libpng/arm) # Dlib encodes debug/release in its config.h. Patch it to respond to the NDEBUG macro instead. @@ -62,7 +69,14 @@ string(REPLACE "/* #undef ENABLE_ASSERTS */" "#if !defined(NDEBUG)\n#define ENAB string(REPLACE "#define DLIB_DISABLE_ASSERTS" "#if defined(NDEBUG)\n#define DLIB_DISABLE_ASSERTS\n#endif" _contents ${_contents}) file(WRITE ${CURRENT_PACKAGES_DIR}/include/dlib/config.h ${_contents}) +file(READ ${CURRENT_PACKAGES_DIR}/share/dlib/dlib.cmake _contents) +string(REPLACE + "get_filename_component(_IMPORT_PREFIX \"\${CMAKE_CURRENT_LIST_FILE}\" PATH)\nget_filename_component(_IMPORT_PREFIX \"\${_IMPORT_PREFIX}\" PATH)" + "get_filename_component(_IMPORT_PREFIX \"\${CMAKE_CURRENT_LIST_FILE}\" PATH)" + _contents "${_contents}") +file(WRITE ${CURRENT_PACKAGES_DIR}/share/dlib/dlib.cmake "${_contents}") + # Handle copyright -file(COPY ${CURRENT_PACKAGES_DIR}/share/doc/dlib/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/dlib) +file(COPY ${SOURCE_PATH}/dlib/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/dlib) file(RENAME ${CURRENT_PACKAGES_DIR}/share/dlib/LICENSE.txt ${CURRENT_PACKAGES_DIR}/share/dlib/COPYRIGHT) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share/doc) diff --git a/ports/doctest/CONTROL b/ports/doctest/CONTROL index 29093fae4..872c47475 100644 --- a/ports/doctest/CONTROL +++ b/ports/doctest/CONTROL @@ -1,3 +1,3 @@ Source: doctest -Version: 1.2.0 +Version: 1.2.6 Description: The fastest feature-rich C++ single-header testing framework for unit tests and TDD diff --git a/ports/doctest/portfile.cmake b/ports/doctest/portfile.cmake index 4a98020f0..eef9b4ca1 100644 --- a/ports/doctest/portfile.cmake +++ b/ports/doctest/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO onqtam/doctest - REF 1.2.0 - SHA512 7e01e4b817e2200fcd7216342b184ddb60723180bb0a69e24d8c54b7b7d5d983bbd7a2fb0c629e87c95127f4213cca11beb95d079880313d2445703e289c23b5 + REF 1.2.6 + SHA512 bee59e9e18a474b9a7883e0c506a1133fdd382d3ecbe010c0402399d6c48572508bfa347a2196908d846e345508c564f758b17c268a19b65968f5c2ff87b25a4 HEAD_REF master ) diff --git a/ports/double-conversion/CONTROL b/ports/double-conversion/CONTROL index 8ef2de918..fb0afdb9a 100644 --- a/ports/double-conversion/CONTROL +++ b/ports/double-conversion/CONTROL @@ -1,3 +1,3 @@ Source: double-conversion -Version: 3.0.0-1 +Version: 3.0.0-2 Description: Efficient binary-decimal and decimal-binary conversion routines for IEEE doubles. diff --git a/ports/double-conversion/portfile.cmake b/ports/double-conversion/portfile.cmake index 7bf2f6a63..ee4881e88 100644 --- a/ports/double-conversion/portfile.cmake +++ b/ports/double-conversion/portfile.cmake @@ -23,28 +23,31 @@ vcpkg_configure_cmake( vcpkg_install_cmake() # Rename exported target files into something vcpkg_fixup_cmake_targets expects -file(RENAME ${CURRENT_PACKAGES_DIR}/debug/CMake/double-conversionLibraryDepends-debug.cmake - ${CURRENT_PACKAGES_DIR}/debug/CMake/double-conversionTargets-debug.cmake) -file(RENAME ${CURRENT_PACKAGES_DIR}/CMake/double-conversionLibraryDepends-release.cmake - ${CURRENT_PACKAGES_DIR}/CMake/double-conversionTargets-release.cmake) -file(RENAME ${CURRENT_PACKAGES_DIR}/CMake/double-conversionLibraryDepends.cmake - ${CURRENT_PACKAGES_DIR}/CMake/double-conversionTargets.cmake) - -file(READ ${CURRENT_PACKAGES_DIR}/CMake/double-conversionTargets.cmake TARGETS_FILE) -string(REPLACE "double-conversionLibraryDepends" "double-conversionTargets" TARGETS_FILE "${TARGETS_FILE}") -file(WRITE ${CURRENT_PACKAGES_DIR}/CMake/double-conversionTargets.cmake "${TARGETS_FILE}") - -# Remove hardcoded paths from config file -file(READ ${CURRENT_PACKAGES_DIR}/CMake/double-conversionConfig.cmake CONFIG_FILE) -string(REPLACE "${CURRENT_PACKAGES_DIR}/lib/cmake/double-conversion/double-conversionLibraryDepends.cmake" - "\${double-conversion_CMAKE_DIR}/double-conversionTargets.cmake" CONFIG_FILE "${CONFIG_FILE}") -string(REPLACE "${CURRENT_PACKAGES_DIR}" - "\${double-conversion_CMAKE_DIR}/../.." CONFIG_FILE "${CONFIG_FILE}") -file(WRITE ${CURRENT_PACKAGES_DIR}/CMake/double-conversionConfig.cmake "${CONFIG_FILE}") - -vcpkg_fixup_cmake_targets(CONFIG_PATH CMake) - -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) +if(NOT VCPKG_USE_HEAD_VERSION) + file(RENAME ${CURRENT_PACKAGES_DIR}/debug/CMake/double-conversionLibraryDepends-debug.cmake + ${CURRENT_PACKAGES_DIR}/debug/CMake/double-conversionTargets-debug.cmake) + file(RENAME ${CURRENT_PACKAGES_DIR}/CMake/double-conversionLibraryDepends-release.cmake + ${CURRENT_PACKAGES_DIR}/CMake/double-conversionTargets-release.cmake) + file(RENAME ${CURRENT_PACKAGES_DIR}/CMake/double-conversionLibraryDepends.cmake + ${CURRENT_PACKAGES_DIR}/CMake/double-conversionTargets.cmake) + + file(READ ${CURRENT_PACKAGES_DIR}/CMake/double-conversionTargets.cmake TARGETS_FILE) + string(REPLACE "double-conversionLibraryDepends" "double-conversionTargets" TARGETS_FILE "${TARGETS_FILE}") + file(WRITE ${CURRENT_PACKAGES_DIR}/CMake/double-conversionTargets.cmake "${TARGETS_FILE}") + + # Remove hardcoded paths from config file + file(READ ${CURRENT_PACKAGES_DIR}/CMake/double-conversionConfig.cmake CONFIG_FILE) + string(REPLACE "${CURRENT_PACKAGES_DIR}/lib/cmake/double-conversion/double-conversionLibraryDepends.cmake" + "\${double-conversion_CMAKE_DIR}/double-conversionTargets.cmake" CONFIG_FILE "${CONFIG_FILE}") + string(REPLACE "${CURRENT_PACKAGES_DIR}" + "\${double-conversion_CMAKE_DIR}/../.." CONFIG_FILE "${CONFIG_FILE}") + file(WRITE ${CURRENT_PACKAGES_DIR}/CMake/double-conversionConfig.cmake "${CONFIG_FILE}") + + vcpkg_fixup_cmake_targets(CONFIG_PATH CMake) + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) +else() + vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/double-conversion) +endif() vcpkg_copy_pdbs() diff --git a/ports/ecm/CONTROL b/ports/ecm/CONTROL index 12a9fd8a9..147603756 100644 --- a/ports/ecm/CONTROL +++ b/ports/ecm/CONTROL @@ -1,3 +1,3 @@ Source: ecm -Version: 5.37.0-1 +Version: 5.40.0 Description: Extra CMake Modules (ECM), extra modules and scripts for CMake diff --git a/ports/ecm/portfile.cmake b/ports/ecm/portfile.cmake index 0e016418c..56dcdcf7d 100644 --- a/ports/ecm/portfile.cmake +++ b/ports/ecm/portfile.cmake @@ -1,12 +1,13 @@ #cmake-only scripts include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/extra-cmake-modules-5.37.0) -vcpkg_download_distfile(ARCHIVE - URLS "https://download.kde.org/stable/frameworks/5.37/extra-cmake-modules-5.37.0.zip" - FILENAME "extra-cmake-modules-5.37.0.zip" - SHA512 a9cd585fb5c63452fc45c955df62b6e7aca3d19e47ca2db33216f83951645f393271f37a04630e5c7f01899063562548c2b0dfe79d7afa8661bb0a8bca5ccfbf + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO KDE/extra-cmake-modules + REF v5.40.0 + SHA512 1f79d797770367e79c2c6dd73c125d32fcc5fe404b350d953b69cc6544babc1c73e2986c833635daaac85a5af966977e40fe41c01ac48ccc45d46d2e1636d21f + HEAD_REF master ) -vcpkg_extract_source_archive(${ARCHIVE}) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} diff --git a/ports/eigen3/CONTROL b/ports/eigen3/CONTROL index 1e61ce95f..fe0641a98 100644 --- a/ports/eigen3/CONTROL +++ b/ports/eigen3/CONTROL @@ -1,3 +1,3 @@ Source: eigen3 -Version: 3.3.4-1 +Version: 3.3.4-2 Description: C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms. diff --git a/ports/eigen3/portfile.cmake b/ports/eigen3/portfile.cmake index a4922f008..7cae703ad 100644 --- a/ports/eigen3/portfile.cmake +++ b/ports/eigen3/portfile.cmake @@ -1,12 +1,12 @@ -#header-only library include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/eigen-eigen-5a0156e40feb) -vcpkg_download_distfile(ARCHIVE - URLS "http://bitbucket.org/eigen/eigen/get/3.3.4.tar.bz2" - FILENAME "eigen-3.3.4.tar.bz2" - SHA512 d67a3fd8f7ce811af65fc1d43ec347dadf9c643a49135f7e455fc303773bad09e80a125282c7dfca7a1993b79e1f66576ac92418119fbb0fa50c1a581b957c0d + +vcpkg_from_bitbucket( + OUT_SOURCE_PATH SOURCE_PATH + REPO eigen/eigen + REF 3.3.4 + SHA512 4077a5c3b95e3573774ccd3fe6c7233cb4b83db2358c19b43ea796925bd0201451d8632bddc5d68b1b57bbf67c5473a8908926eed065a745689a2acec9711d5c + HEAD_REF master ) -vcpkg_extract_source_archive(${ARCHIVE}) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} diff --git a/ports/expat/CONTROL b/ports/expat/CONTROL index 450b8e61d..edbcf2326 100644 --- a/ports/expat/CONTROL +++ b/ports/expat/CONTROL @@ -1,3 +1,3 @@ Source: expat -Version: 2.2.4-2 +Version: 2.2.5 Description: XML parser library written in C diff --git a/ports/expat/portfile.cmake b/ports/expat/portfile.cmake index da6ddc429..a8f320ab3 100644 --- a/ports/expat/portfile.cmake +++ b/ports/expat/portfile.cmake @@ -1,9 +1,13 @@ +if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") +message(FATAL_ERROR "${PORT} does not currently support UWP") +endif() + include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libexpat/libexpat - REF R_2_2_4 - SHA512 64f9deb2f75be70450a60a408ab867d1df800022e29000a31a801d85421178b400ebbf817864d1592ce998ada1012fa25fd896e5f25c6b314851ae62d94b45dc + REF R_2_2_5 + SHA512 61ce2a479521412e0c56c352106c4adfb61a6bedb883921aba3ebccc29311ddd192646ac2c51b41572728d4de6ab4cb60a1dbc71515d742a80a8b59d89ca74d6 HEAD_REF master) if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) diff --git a/ports/fdk-aac/CMakeLists.txt b/ports/fdk-aac/CMakeLists.txt new file mode 100644 index 000000000..869703c19 --- /dev/null +++ b/ports/fdk-aac/CMakeLists.txt @@ -0,0 +1,206 @@ +cmake_minimum_required(VERSION 3.8.0) + +project(fdk-aac) + +set(AACDEC_SRC + libAACdec/src/aacdec_drc.cpp + libAACdec/src/aacdec_hcr.cpp + libAACdec/src/aacdecoder.cpp + libAACdec/src/aacdec_pns.cpp + libAACdec/src/aac_ram.cpp + libAACdec/src/block.cpp + libAACdec/src/channelinfo.cpp + libAACdec/src/ldfiltbank.cpp + libAACdec/src/rvlcbit.cpp + libAACdec/src/rvlc.cpp + libAACdec/src/aacdec_hcr_bit.cpp + libAACdec/src/aacdec_hcrs.cpp + libAACdec/src/aacdecoder_lib.cpp + libAACdec/src/aacdec_tns.cpp + libAACdec/src/aac_rom.cpp + libAACdec/src/channel.cpp + libAACdec/src/conceal.cpp + libAACdec/src/pulsedata.cpp + libAACdec/src/rvlcconceal.cpp + libAACdec/src/stereo.cpp +) + +set(AACENC_SRC + libAACenc/src/aacenc.cpp + libAACenc/src/aacEnc_ram.cpp + libAACenc/src/band_nrg.cpp + libAACenc/src/block_switch.cpp + libAACenc/src/grp_data.cpp + libAACenc/src/metadata_main.cpp + libAACenc/src/pre_echo_control.cpp + libAACenc/src/quantize.cpp + libAACenc/src/tonality.cpp + libAACenc/src/aacEnc_rom.cpp + libAACenc/src/bandwidth.cpp + libAACenc/src/channel_map.cpp + libAACenc/src/intensity.cpp + libAACenc/src/ms_stereo.cpp + libAACenc/src/psy_configuration.cpp + libAACenc/src/sf_estim.cpp + libAACenc/src/transform.cpp + libAACenc/src/aacenc_lib.cpp + libAACenc/src/aacenc_tns.cpp + libAACenc/src/bit_cnt.cpp + libAACenc/src/chaosmeasure.cpp + libAACenc/src/line_pe.cpp + libAACenc/src/noisedet.cpp + libAACenc/src/psy_main.cpp + libAACenc/src/spreading.cpp + libAACenc/src/aacenc_pns.cpp + libAACenc/src/adj_thr.cpp + libAACenc/src/bitenc.cpp + libAACenc/src/dyn_bits.cpp + libAACenc/src/metadata_compressor.cpp + libAACenc/src/pnsparam.cpp + libAACenc/src/qc_main.cpp +) + +set(FDK_SRC + libFDK/src/autocorr2nd.cpp + libFDK/src/dct.cpp + libFDK/src/FDK_bitbuffer.cpp + libFDK/src/FDK_core.cpp + libFDK/src/FDK_crc.cpp + libFDK/src/FDK_hybrid.cpp + libFDK/src/FDK_tools_rom.cpp + libFDK/src/FDK_trigFcts.cpp + libFDK/src/fft.cpp + libFDK/src/fft_rad2.cpp + libFDK/src/fixpoint_math.cpp + libFDK/src/mdct.cpp + libFDK/src/qmf.cpp + libFDK/src/scale.cpp +) + +set(MPEGTPDEC_SRC + libMpegTPDec/src/tpdec_adif.cpp + libMpegTPDec/src/tpdec_adts.cpp + libMpegTPDec/src/tpdec_asc.cpp + libMpegTPDec/src/tpdec_drm.cpp + libMpegTPDec/src/tpdec_latm.cpp + libMpegTPDec/src/tpdec_lib.cpp +) + +set( MPEGTPENC_SRC + libMpegTPEnc/src/tpenc_adif.cpp + libMpegTPEnc/src/tpenc_adts.cpp + libMpegTPEnc/src/tpenc_asc.cpp + libMpegTPEnc/src/tpenc_latm.cpp + libMpegTPEnc/src/tpenc_lib.cpp +) + +set( PCMUTILS_SRC + libPCMutils/src/limiter.cpp + libPCMutils/src/pcmutils_lib.cpp +) + +set(SBRDEC_SRC + libSBRdec/src/env_calc.cpp + libSBRdec/src/env_dec.cpp + libSBRdec/src/env_extr.cpp + libSBRdec/src/huff_dec.cpp + libSBRdec/src/lpp_tran.cpp + libSBRdec/src/psbitdec.cpp + libSBRdec/src/psdec.cpp + libSBRdec/src/psdec_hybrid.cpp + libSBRdec/src/sbr_crc.cpp + libSBRdec/src/sbr_deb.cpp + libSBRdec/src/sbr_dec.cpp + libSBRdec/src/sbrdec_drc.cpp + libSBRdec/src/sbrdec_freq_sca.cpp + libSBRdec/src/sbrdecoder.cpp + libSBRdec/src/sbr_ram.cpp + libSBRdec/src/sbr_rom.cpp +) + +set(SBRENC_SRC + libSBRenc/src/bit_sbr.cpp + libSBRenc/src/env_bit.cpp + libSBRenc/src/fram_gen.cpp + libSBRenc/src/mh_det.cpp + libSBRenc/src/ps_bitenc.cpp + libSBRenc/src/ps_encode.cpp + libSBRenc/src/resampler.cpp + libSBRenc/src/sbr_encoder.cpp + libSBRenc/src/sbr_ram.cpp + libSBRenc/src/ton_corr.cpp + libSBRenc/src/code_env.cpp + libSBRenc/src/env_est.cpp + libSBRenc/src/invf_est.cpp + libSBRenc/src/nf_est.cpp + libSBRenc/src/ps_main.cpp + libSBRenc/src/sbrenc_freq_sca.cpp + libSBRenc/src/sbr_misc.cpp + libSBRenc/src/sbr_rom.cpp + libSBRenc/src/tran_det.cpp +) + +set(SYS_SRC + libSYS/src/cmdl_parser.cpp + libSYS/src/conv_string.cpp + libSYS/src/genericStds.cpp + libSYS/src/wav_file.cpp +) + +set( + libfdk_aac_SOURCES + ${AACDEC_SRC} ${AACENC_SRC} + ${MPEGTPDEC_SRC} ${MPEGTPENC_SRC} + ${SBRDEC_SRC} ${SBRENC_SRC} + ${PCMUTILS_SRC} ${FDK_SRC} ${SYS_SRC} + fdk-aac.def +) + +include_directories( + . + win32 + libAACdec/include + libAACenc/include + libSBRdec/include + libSBRenc/include + libMpegTPDec/include + libMpegTPEnc/include + libSYS/include + libFDK/include + libPCMutils/include +) +if(BUILD_SHARED_LIBS) + set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) +endif() + +add_library(fdk-aac ${libfdk_aac_SOURCES}) + +add_executable(aac-enc aac-enc.c wavreader.c) + +target_link_libraries(aac-enc fdk-aac) + +install( + TARGETS fdk-aac + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) + +if(NOT DISABLE_INSTALL_TOOLS) + install ( + TARGETS aac-enc + RUNTIME DESTINATION tools/fdk-aac + ) +endif() + +if(NOT DISABLE_INSTALL_HEADERS) + install( + FILES + libAACdec/include/aacdecoder_lib.h + libAACenc/include/aacenc_lib.h + libSYS/include/FDK_audio.h + libSYS/include/genericStds.h + libSYS/include/machine_type.h + DESTINATION include + ) +endif() diff --git a/ports/fdk-aac/CONTROL b/ports/fdk-aac/CONTROL new file mode 100644 index 000000000..126a2f5a1 --- /dev/null +++ b/ports/fdk-aac/CONTROL @@ -0,0 +1,3 @@ +Source: fdk-aac +Version: 2017-11-02-1e351 +Description: A standalone library of the Fraunhofer FDK AAC code diff --git a/ports/fdk-aac/fdk-aac.def b/ports/fdk-aac/fdk-aac.def new file mode 100644 index 000000000..8690b69b6 --- /dev/null +++ b/ports/fdk-aac/fdk-aac.def @@ -0,0 +1,19 @@ +EXPORTS +aacDecoder_AncDataGet +aacDecoder_AncDataInit +aacDecoder_Close +aacDecoder_ConfigRaw +aacDecoder_DecodeFrame +aacDecoder_Fill +aacDecoder_GetFreeBytes +aacDecoder_GetLibInfo +aacDecoder_GetStreamInfo +aacDecoder_Open +aacDecoder_SetParam +aacEncClose +aacEncEncode +aacEncGetLibInfo +aacEncInfo +aacEncOpen +aacEncoder_GetParam +aacEncoder_SetParam diff --git a/ports/fdk-aac/portfile.cmake b/ports/fdk-aac/portfile.cmake new file mode 100644 index 000000000..7142ca795 --- /dev/null +++ b/ports/fdk-aac/portfile.cmake @@ -0,0 +1,22 @@ +include(vcpkg_common_functions) +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO mstorsjo/fdk-aac + REF 1e3515e03e2dbdbd48dacc31ef75d25c201a4c51 + SHA512 4bb0cb75fac46b30f64f5588a528f3c97d66b456fb866524018596dc79eb8b01735eb7e2bc56489127091924117a8a5f4a722dd9cc90c4caa8ad5c55e58faa40 + HEAD_REF master +) + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) +file(COPY ${CMAKE_CURRENT_LIST_DIR}/fdk-aac.def DESTINATION ${SOURCE_PATH}) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON -DDISABLE_INSTALL_TOOLS=ON +) + +vcpkg_install_cmake() +vcpkg_copy_pdbs() +vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/fdk-aac) +file(INSTALL ${SOURCE_PATH}/NOTICE DESTINATION ${CURRENT_PACKAGES_DIR}/share/fdk-aac RENAME copyright) diff --git a/ports/ffmpeg/CONTROL b/ports/ffmpeg/CONTROL index 658c4b1f2..0b9d22dba 100644 --- a/ports/ffmpeg/CONTROL +++ b/ports/ffmpeg/CONTROL @@ -1,4 +1,8 @@ Source: ffmpeg -Version: 3.3.3 +Version: 3.3.3-1 Description: a library to decode, encode, transcode, mux, demux, stream, filter and play pretty much anything that humans and machines have created. FFmpeg is the leading multimedia framework, able to decode, encode, transcode, mux, demux, stream, filter and play pretty much anything that humans and machines have created. It supports the most obscure ancient formats up to the cutting edge. No matter if they were designed by some standards committee, the community or a corporation. It is also highly portable: FFmpeg compiles, runs, and passes our testing infrastructure FATE across Linux, Mac OS X, Microsoft Windows, the BSDs, Solaris, etc. under a wide variety of build environments, machine architectures, and configurations. + +Feature: openssl +Build-Depends: openssl +Description: openssl support in ffmpeg diff --git a/ports/ffmpeg/detect-openssl.patch b/ports/ffmpeg/detect-openssl.patch new file mode 100644 index 000000000..cb8a77e0a --- /dev/null +++ b/ports/ffmpeg/detect-openssl.patch @@ -0,0 +1,25 @@ +From 18de5c60ae0a987680681d5a0602009b428504fa Mon Sep 17 00:00:00 2001 +From: Gilles Khouzam <gillesk@microsoft.com> +Date: Mon, 19 Jun 2017 16:33:38 -0700 +Subject: [PATCH] Add better detection for Openssl on Windows. + +Look for libeay32 and ssleay32 as another detection mechanism +--- + configure | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/configure b/configure +index a1818dc..1cf2a7c 100755 +--- a/configure ++++ b/configure +@@ -5836,6 +5836,7 @@ enabled openssl && { use_pkg_config openssl openssl/ssl.h OPENSSL_init + check_lib openssl/ssl.h SSL_library_init -lssl -lcrypto || + check_lib openssl/ssl.h SSL_library_init -lssl32 -leay32 || + check_lib openssl/ssl.h SSL_library_init -lssl -lcrypto -lws2_32 -lgdi32 || ++ check_lib openssl/ssl.h SSL_library_init -llibeay32 -lssleay32 || + die "ERROR: openssl not found"; } + enabled qtkit_indev && { check_header_objcc QTKit/QTKit.h || disable qtkit_indev; } + +-- +2.10.1.windows.1 + diff --git a/ports/ffmpeg/portfile.cmake b/ports/ffmpeg/portfile.cmake index 8bd7abab0..0b3002c87 100644 --- a/ports/ffmpeg/portfile.cmake +++ b/ports/ffmpeg/portfile.cmake @@ -11,6 +11,10 @@ vcpkg_download_distfile(ARCHIVE SHA512 1cc63bf73356f4e618c0d3572a216bdf5689f10deff56b4262f6d740b0bee5a4b3eac234f45fca3d4d2da77903a507b4fba725b76d2d2070f31b6dae9e7a2dab ) vcpkg_extract_source_archive(${ARCHIVE}) +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES ${CMAKE_CURRENT_LIST_DIR}/detect-openssl.patch +) vcpkg_find_acquire_program(YASM) get_filename_component(YASM_EXE_PATH ${YASM} DIRECTORY) @@ -18,6 +22,8 @@ set(ENV{PATH} "$ENV{PATH};${YASM_EXE_PATH}") vcpkg_acquire_msys(MSYS_ROOT) set(BASH ${MSYS_ROOT}/usr/bin/bash.exe) +set(ENV{INCLUDE} "${CURRENT_INSTALLED_DIR}/include;$ENV{INCLUDE}") +set(ENV{LIB} "${CURRENT_INSTALLED_DIR}/lib;$ENV{LIB}") set(_csc_PROJECT_PATH ffmpeg) @@ -25,8 +31,14 @@ file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg ${CURRENT_BU set(OPTIONS "--disable-ffmpeg --disable-ffprobe --disable-doc --enable-debug") set(OPTIONS "${OPTIONS} --enable-runtime-cpudetect") +if("openssl" IN_LIST FEATURES) + set(OPTIONS "${OPTIONS} --enable-openssl") +else() + set(OPTIONS "${OPTIONS} --disable-openssl") +endif() if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + set(ENV{LIBPATH} "$ENV{LIBPATH};$ENV{_WKITS10}references\\windows.foundation.foundationcontract\\2.0.0.0\\;$ENV{_WKITS10}references\\windows.foundation.universalapicontract\\3.0.0.0\\") set(OPTIONS "${OPTIONS} --disable-programs --enable-cross-compile --target-os=win32 --arch=${VCPKG_TARGET_ARCHITECTURE}") set(OPTIONS "${OPTIONS} --extra-cflags=-DWINAPI_FAMILY=WINAPI_FAMILY_APP --extra-cflags=-D_WIN32_WINNT=0x0A00") @@ -54,6 +66,8 @@ endif() set(OPTIONS_DEBUG "") # Note: --disable-optimizations can't be used due to http://ffmpeg.org/pipermail/libav-user/2013-March/003945.html set(OPTIONS_RELEASE "") +set(OPTIONS "${OPTIONS} --extra-cflags=-DHAVE_UNISTD_H=0") + if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") set(OPTIONS "${OPTIONS} --disable-static --enable-shared") if (VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") diff --git a/ports/fftw3/CMakeLists.txt b/ports/fftw3/CMakeLists.txt deleted file mode 100644 index 10c63d710..000000000 --- a/ports/fftw3/CMakeLists.txt +++ /dev/null @@ -1,117 +0,0 @@ -cmake_minimum_required (VERSION 3.0)
-project (fftw3)
-
-# From: http://stackoverflow.com/questions/10252336/fftw-in-visual-studio-2010
-
-# Standard: /DWIN32 /D_WINDOWS /W3 /Zm1000 /EHsc /GR
-if (WIN32)
- add_definitions(-D_OPENMP -DLIBFFTWF33_EXPORTS /openmp /bigobj) # Visual Studio 2005 and up supports OpenMP
-endif (WIN32)
-
-if (BUILD_SHARED_LIBS)
- add_definitions(-DFFTW_DLL)
-endif()
-
-
-file(GLOB fftw_api_SOURCE api/*.c api/*.h)
-file(GLOB fftw_dft_SOURCE dft/*.c dft/*.h)
-file(GLOB fftw_dft_scalar_SOURCE dft/scalar/*.c dft/scalar/*.h)
-file(GLOB fftw_dft_scalar_codelets_SOURCE dft/scalar/codelets/*.c dft/scalar/codelets/*.h)
-file(GLOB fftw_dft_simd_SOURCE dft/simd/*.c dft/simd/*.h)
-
-file(GLOB fftw_dft_simd_sse2_SOURCE dft/simd/sse2/*.c dft/simd/sse2/*.h)
-file(GLOB fftw_kernel_SOURCE kernel/*.c kernel/*.h)
-file(GLOB fftw_rdft_SOURCE rdft/*.c rdft/*.h)
-file(GLOB fftw_rdft_scalar_SOURCE rdft/scalar/*.c rdft/scalar/*.h)
-
-file(GLOB fftw_rdft_scalar_r2cb_SOURCE rdft/scalar/r2cb/*.c
- rdft/scalar/r2cb/*.h)
-file(GLOB fftw_rdft_scalar_r2cf_SOURCE rdft/scalar/r2cf/*.c
- rdft/scalar/r2cf/*.h)
-file(GLOB fftw_rdft_scalar_r2r_SOURCE rdft/scalar/r2r/*.c
- rdft/scalar/r2r/*.h)
-
-file(GLOB fftw_rdft_simd_SOURCE rdft/simd/*.c rdft/simd/*.h)
-file(GLOB fftw_rdft_simd_sse2_SOURCE rdft/simd/sse2/*.c rdft/simd/sse2/*.h)
-
-file(GLOB fftw_reodft_SOURCE reodft/*.c reodft/*.h)
-file(GLOB fftw_simd_support_SOURCE simd-support/*.c simd-support/*.h)
-#file(GLOB fftw_threads_SOURCE threads/*.c threads/*.h)
-
-
-set(${fftw_threads_SOURCE}
- threads/api.c
- threads/conf.c
- threads/ct.c
- threads/dft-vrank-qeq1.c
- threads/f77api.c
- threads/hc2hc.c
- threads/openmp.c
- threads/rdft-vrank-geq1.c
- threads/vrank-geq1-rdft2.c)
-
-
-include_directories(
- kernel
- api
- dft
- dft/scalar
- dft/scalar/codelets # really needed?
- dft/simd
- dft/simd/sse2
- rdft
- rdft/scalar
- rdft/simd
- reodft
- ${CMAKE_CURRENT_SOURCE_DIR} # thats where the config.h is located
- simd-support
-)
-
-set(COMMON_SOURCES
- ${fftw_api_SOURCE}
- ${fftw_dft_SOURCE}
- ${fftw_dft_scalar_SOURCE}
- ${fftw_dft_scalar_codelets_SOURCE}
- ${fftw_dft_simd_SOURCE}
- ${fftw_kernel_SOURCE}
- ${fftw_rdft_SOURCE}
- ${fftw_rdft_scalar_SOURCE}
-
- ${fftw_rdft_scalar_r2cb_SOURCE}
- ${fftw_rdft_scalar_r2cf_SOURCE}
- ${fftw_rdft_scalar_r2r_SOURCE}
-
- ${fftw_rdft_simd_SOURCE}
- ${fftw_reodft_SOURCE}
- ${fftw_simd_support_SOURCE}
- ${fftw_threads_SOURCE}
-)
-
-set(SSE2_SOURCES
- ${fftw_dft_simd_sse2_SOURCE}
- ${fftw_rdft_simd_sse2_SOURCE}
-)
-
-# Create default target for the library (double precision)
-add_library(fftw3 ${COMMON_SOURCES} ${SSE2_SOURCES})
-target_compile_definitions(fftw3 PRIVATE HAVE_SSE2)
-set(INSTALL_TARGETS fftw3)
-
-# Optionally add single precision
-if(BUILD_SINGLE)
- add_library(fftw3f ${COMMON_SOURCES} ${SSE2_SOURCES})
- target_compile_definitions(fftw3f PRIVATE FFTW_SINGLE BENCHFFT_SINGLE HAVE_SSE2)
- set(INSTALL_TARGETS ${INSTALL_TARGETS} fftw3f)
-endif(BUILD_SINGLE)
-
-# Optionally add long-double precision (does not support SSE2)
-if(BUILD_LONG_DOUBLE)
- add_library(fftw3l ${COMMON_SOURCES})
- target_compile_definitions(fftw3l PRIVATE FFTW_LDOUBLE BENCHFFT_LDOUBLE)
- set(INSTALL_TARGETS ${INSTALL_TARGETS} fftw3l)
-endif(BUILD_LONG_DOUBLE)
-
-install(TARGETS ${INSTALL_TARGETS}
- RUNTIME DESTINATION bin
- ARCHIVE DESTINATION lib
- LIBRARY DESTINATION lib)
diff --git a/ports/fftw3/CONTROL b/ports/fftw3/CONTROL index 50513df27..ccdc0e7ee 100644 --- a/ports/fftw3/CONTROL +++ b/ports/fftw3/CONTROL @@ -1,3 +1,3 @@ Source: fftw3
-Version: 3.3.6-p12-1
+Version: 3.3.7-1
Description: FFTW is a C subroutine library for computing the discrete Fourier transform (DFT) in one or more dimensions, of arbitrary input size, and of both real and complex data (as well as of even/odd data, i.e. the discrete cosine/sine transforms or DCT/DST).
diff --git a/ports/fftw3/config.h b/ports/fftw3/config.h deleted file mode 100644 index 900062344..000000000 --- a/ports/fftw3/config.h +++ /dev/null @@ -1,393 +0,0 @@ -/* config.h.in. Generated from configure.ac by autoheader. */
-
-/* Define to compile in long-double precision. */
-/*#undef BENCHFFT_LDOUBLE*/
-
-/* Define to compile in quad precision. */
-#undef BENCHFFT_QUAD
-
-/* Define to compile in single precision. */
-/*#undef BENCHFFT_SINGLE*/
-
-/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
- systems. This function is required for `alloca.c' support on those systems.
- */
-#undef CRAY_STACKSEG_END
-
-/* Define to 1 if using `alloca.c'. */
-#undef C_ALLOCA
-
-/* Define to disable Fortran wrappers. */
-#define DISABLE_FORTRAN 1
-
-/* Define to dummy `main' function (if any) required to link to the Fortran
- libraries. */
-#undef F77_DUMMY_MAIN
-
-/* Define to a macro mangling the given C identifier (in lower and upper
- case), which must not contain underscores, for linking with Fortran. */
-#undef F77_FUNC
-
-/* As F77_FUNC, but for C identifiers containing underscores. */
-#undef F77_FUNC_
-
-/* Define if F77_FUNC and F77_FUNC_ are equivalent. */
-#undef F77_FUNC_EQUIV
-
-/* Define if F77 and FC dummy `main' functions are identical. */
-#undef FC_DUMMY_MAIN_EQ_F77
-
-/* C compiler name and flags */
-#define FFTW_CC "cl"
-
-/* Define to enable extra FFTW debugging code. */
-#undef FFTW_DEBUG
-
-/* Define to enable alignment debugging hacks. */
-#undef FFTW_DEBUG_ALIGNMENT
-
-/* Define to enable debugging malloc. */
-#undef FFTW_DEBUG_MALLOC
-
-/* Define to enable the use of alloca(). */
-#undef FFTW_ENABLE_ALLOCA
-
-/* Define to compile in long-double precision. */
-/*#undef FFTW_LDOUBLE*/
-
-/* Define to compile in quad precision. */
-#undef FFTW_QUAD
-
-/* Define to enable pseudorandom estimate planning for debugging. */
-#undef FFTW_RANDOM_ESTIMATOR
-
-/* Define to compile in single precision. */
-/*#undef FFTW_SINGLE*/
-
-/* Define to 1 if you have the `abort' function. */
-#define HAVE_ABORT 1
-
-/* Define to 1 if you have `alloca', as a function or macro. */
-#undef HAVE_ALLOCA
-
-/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
- */
-#undef HAVE_ALLOCA_H
-
-/* Define to enable Altivec optimizations. */
-#undef HAVE_ALTIVEC
-
-/* Define to 1 if you have the <altivec.h> header file. */
-#undef HAVE_ALTIVEC_H
-
-/* Define to enable AVX optimizations. */
-#undef HAVE_AVX
-
-/* Define to 1 if you have the `BSDgettimeofday' function. */
-#undef HAVE_BSDGETTIMEOFDAY
-
-/* Define to 1 if you have the `clock_gettime' function. */
-#undef HAVE_CLOCK_GETTIME
-
-/* Define to 1 if you have the `cosl' function. */
-#define HAVE_COSL 1
-
-/* Define to 1 if you have the <c_asm.h> header file. */
-#undef HAVE_C_ASM_H
-
-/* Define to 1 if you have the declaration of `cosl', and to 0 if you don't.
- */
-#define HAVE_DECL_COSL 1
-
-/* Define to 1 if you have the declaration of `cosq', and to 0 if you don't. */
-#define HAVE_DECL_COSQ 0
-
-/* Define to 1 if you have the declaration of `drand48', and to 0 if you don't. */
-#define HAVE_DECL_DRAND48 0
-
-/* Define to 1 if you have the declaration of `memalign', and to 0 if you don't. */
-#define HAVE_DECL_MEMALIGN 0
-
-/* Define to 1 if you have the declaration of `posix_memalign', and to 0 if you don't. */
-#define HAVE_DECL_POSIX_MEMALIGN 0
-
-/* Define to 1 if you have the declaration of `sinl', and to 0 if you don't. */
-#define HAVE_DECL_SINL 1
-
-/* Define to 1 if you have the declaration of `sinq', and to 0 if you don't.
- */
-#define HAVE_DECL_SINQ 0
-
-/* Define to 1 if you have the declaration of `srand48', and to 0 if you
- don't. */
-#define HAVE_DECL_SRAND48 0
-
-/* Define to 1 if you have the <dlfcn.h> header file. */
-#undef HAVE_DLFCN_H
-
-/* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */
-#undef HAVE_DOPRNT
-
-/* Define to 1 if you have the `drand48' function. */
-#undef HAVE_DRAND48
-
-/* Define if you have a machine with fused multiply-add */
-#undef HAVE_FMA
-
-/* Define to 1 if you have the `gethrtime' function. */
-#undef HAVE_GETHRTIME
-
-/* Define to 1 if you have the `gettimeofday' function. */
-#undef HAVE_GETTIMEOFDAY
-
-/* Define to 1 if hrtime_t is defined in <sys/time.h> */
-#undef HAVE_HRTIME_T
-
-/* Define to 1 if you have the <intrinsics.h> header file. */
-#undef HAVE_INTRINSICS_H
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#undef HAVE_INTTYPES_H
-
-/* Define if the isnan() function/macro is available. */
-#undef HAVE_ISNAN
-
-/* Define to 1 if you have the <libintl.h> header file. */
-#undef HAVE_LIBINTL_H
-
-/* Define to 1 if you have the `m' library (-lm). */
-#undef HAVE_LIBM
-
-/* Define to 1 if you have the `quadmath' library (-lquadmath). */
-#undef HAVE_LIBQUADMATH
-
-/* Define to 1 if you have the <limits.h> header file. */
-#define HAVE_LIMITS_H 1
-
-/* Define to 1 if the compiler supports `long double' */
-#define HAVE_LONG_DOUBLE 1
-
-/* Define to 1 if you have the `mach_absolute_time' function. */
-#undef HAVE_MACH_ABSOLUTE_TIME
-
-/* Define to 1 if you have the <mach/mach_time.h> header file. */
-#undef HAVE_MACH_MACH_TIME_H
-
-/* Define to 1 if you have the <malloc.h> header file. */
-#define HAVE_MALLOC_H 1
-
-/* Define to 1 if you have the `memalign' function. */
-#undef HAVE_MEMALIGN
-
-/* Define to 1 if you have the <memory.h> header file. */
-#define HAVE_MEMORY_H 1
-
-/* Define to 1 if you have the `memset' function. */
-#define HAVE_MEMSET 1
-
-/* Define to enable MIPS paired-single optimizations. */
-#undef HAVE_MIPS_PS
-
-/* Define to enable use of MIPS ZBus cycle-counter. */
-#undef HAVE_MIPS_ZBUS_TIMER
-
-/* Define if you have the MPI library. */
-#undef HAVE_MPI
-
-/* Define if OpenMP is enabled */
-#define HAVE_OPENMP 1
-
-/* Define to 1 if you have the `posix_memalign' function. */
-#undef HAVE_POSIX_MEMALIGN
-
-/* Define if you have POSIX threads libraries and header files. */
-#undef HAVE_PTHREAD
-
-/* Define to 1 if you have the `read_real_time' function. */
-#undef HAVE_READ_REAL_TIME
-
-/* Define to 1 if you have the `sinl' function. */
-#define HAVE_SINL 1
-
-/* Define to 1 if you have the `snprintf' function. */
-#define HAVE_SNPRINTF 1
-
-/* Define to 1 if you have the `sqrt' function. */
-#define HAVE_SQRT 1
-
-/* Define to enable SSE/SSE2 optimizations. */
-/* #define HAVE_SSE2 1 */
-
-/* Define to 1 if you have the <stddef.h> header file. */
-#define HAVE_STDDEF_H 1
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#define HAVE_STDINT_H 1
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#define HAVE_STDLIB_H 1
-
-/* Define to 1 if you have the <strings.h> header file. */
-#undef HAVE_STRINGS_H
-
-/* Define to 1 if you have the <string.h> header file. */
-#define HAVE_STRING_H 1
-
-/* Define to 1 if you have the `sysctl' function. */
-#undef HAVE_SYSCTL
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#define HAVE_SYS_STAT_H 1
-
-/* Define to 1 if you have the <sys/sysctl.h> header file. */
-#undef HAVE_SYS_SYSCTL_H
-
-/* Define to 1 if you have the <sys/time.h> header file. */
-#undef HAVE_SYS_TIME_H
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#define HAVE_SYS_TYPES_H 1
-
-/* Define to 1 if you have the `tanl' function. */
-#define HAVE_TANL 1
-
-/* Define if we have a threads library. */
-#undef HAVE_THREADS
-
-/* Define to 1 if you have the `time_base_to_time' function. */
-#undef HAVE_TIME_BASE_TO_TIME
-
-/* Define to 1 if the system has the type `uintptr_t'. */
-#define HAVE_UINTPTR_T 1
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#undef HAVE_UNISTD_H
-
-/* Define to 1 if you have the `vprintf' function. */
-#define HAVE_VPRINTF 1
-
-/* Define to 1 if you have the `_mm_free' function. */
-#undef HAVE__MM_FREE
-
-/* Define to 1 if you have the `_mm_malloc' function. */
-#undef HAVE__MM_MALLOC
-
-/* Define if you have the UNICOS _rtc() intrinsic. */
-#undef HAVE__RTC
-
-/* Define to the sub-directory in which libtool stores uninstalled libraries.
- */
-#undef LT_OBJDIR
-
-/* Define to 1 if your C compiler doesn't accept -c and -o together. */
-#undef NO_MINUS_C_MINUS_O
-
-/* Name of package */
-#define PACKAGE "fftw"
-
-/* Define to the address where bug reports for this package should be sent. */
-#define PACKAGE_BUGREPORT "fftw@fftw.org"
-
-/* Define to the full name of this package. */
-#define PACKAGE_NAME "fftw"
-
-/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "fftw-3.3"
-
-/* Define to the one symbol short name of this package. */
-#define PACKAGE_TARNAME "fftw"
-
-/* Define to the home page for this package. */
-#define PACKAGE_URL "http://www.fftw.org"
-
-/* Define to the version of this package. */
-#define PACKAGE_VERSION "3.3"
-
-/* Define to necessary symbol if this constant uses a non-standard name on
- your system. */
-#undef PTHREAD_CREATE_JOINABLE
-
-/* The size of `double', as computed by sizeof. */
-#undef SIZEOF_DOUBLE
-
-/* The size of `fftw_r2r_kind', as computed by sizeof. */
-#undef SIZEOF_FFTW_R2R_KIND
-
-/* The size of `float', as computed by sizeof. */
-#undef SIZEOF_FLOAT
-
-/* The size of `int', as computed by sizeof. */
-#undef SIZEOF_INT
-
-/* The size of `long', as computed by sizeof. */
-#undef SIZEOF_LONG
-
-/* The size of `long long', as computed by sizeof. */
-#undef SIZEOF_LONG_LONG
-
-/* The size of `MPI_Fint', as computed by sizeof. */
-#undef SIZEOF_MPI_FINT
-
-/* The size of `ptrdiff_t', as computed by sizeof. */
-#undef SIZEOF_PTRDIFF_T
-
-/* The size of `size_t', as computed by sizeof. */
-#undef SIZEOF_SIZE_T
-
-/* The size of `unsigned int', as computed by sizeof. */
-#undef SIZEOF_UNSIGNED_INT
-
-/* The size of `unsigned long', as computed by sizeof. */
-#undef SIZEOF_UNSIGNED_LONG
-
-/* The size of `unsigned long long', as computed by sizeof. */
-#undef SIZEOF_UNSIGNED_LONG_LONG
-
-/* The size of `void *', as computed by sizeof. */
-#undef SIZEOF_VOID_P
-
-/* If using the C implementation of alloca, define if you know the
- direction of stack growth for your system; otherwise it will be
- automatically deduced at runtime.
- STACK_DIRECTION > 0 => grows toward higher addresses
- STACK_DIRECTION < 0 => grows toward lower addresses
- STACK_DIRECTION = 0 => direction of growth unknown */
-#undef STACK_DIRECTION
-
-/* Define to 1 if you have the ANSI C header files. */
-#define STDC_HEADERS 1
-
-/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
-#undef TIME_WITH_SYS_TIME
-
-/* Define if we have and are using POSIX threads. */
-#undef USING_POSIX_THREADS
-
-/* Version number of package */
-#define VERSION "3.3"
-
-/* Use common Windows Fortran mangling styles for the Fortran interfaces. */
-#undef WINDOWS_F77_MANGLING
-
-/* Include g77-compatible wrappers in addition to any other Fortran wrappers.
- */
-#undef WITH_G77_WRAPPERS
-
-/* Use our own aligned malloc routine; mainly helpful for Windows systems
- lacking aligned allocation system-library routines. */
-#define WITH_OUR_MALLOC 1
-
-/* Use low-precision timers, making planner very slow */
-#undef WITH_SLOW_TIMER
-
-/* Define to empty if `const' does not conform to ANSI C. */
-#undef const
-
-/* Define to `__inline__' or `__inline' if that's what the C compiler
- calls it, or to nothing if 'inline' is not supported under any name. */
-#ifndef __cplusplus
-#define inline __inline
-#endif
-
-/* Define to `unsigned int' if <sys/types.h> does not define. */
-#undef size_t
diff --git a/ports/fftw3/portfile.cmake b/ports/fftw3/portfile.cmake index 99ac01e2d..d5fc1bf0b 100644 --- a/ports/fftw3/portfile.cmake +++ b/ports/fftw3/portfile.cmake @@ -1,17 +1,18 @@ -# Common Ambient Variables:
-# VCPKG_ROOT_DIR = <C:\path\to\current\vcpkg>
-# TARGET_TRIPLET is the current triplet (x86-windows, etc)
-# PORT is the current port name (zlib, etc)
-# CURRENT_BUILDTREES_DIR = ${VCPKG_ROOT_DIR}\buildtrees\${PORT}
-# CURRENT_PACKAGES_DIR = ${VCPKG_ROOT_DIR}\packages\${PORT}_${TARGET_TRIPLET}
-#
-
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/fftw-3.3.6-pl2)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/fftw-3.3.7)
+
+# This can be removed in the next source code update
+if(EXISTS "${SOURCE_PATH}/CMakeLists.txt")
+ file(READ "${SOURCE_PATH}/CMakeLists.txt" _contents)
+ if("${_contents}" MATCHES "-D_OPENMP -DLIBFFTWF33_EXPORTS /openmp /bigobj")
+ file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/src)
+ endif()
+endif()
+
vcpkg_download_distfile(ARCHIVE
- URLS "http://www.fftw.org/fftw-3.3.6-pl2.tar.gz"
- FILENAME "fftw-3.3.6-pl2.tar.gz"
- SHA512 e130309856752a1555b6d151c4d0ce9eb4b2c208fff7e3e89282ca8ef6104718f865cbb5e9c4af4367b3615b69b0d50fd001a26d74fd5324ff2faabe14fe3472
+ URLS "http://www.fftw.org/fftw-3.3.7.tar.gz"
+ FILENAME "fftw-3.3.7.tar.gz"
+ SHA512 a5db54293a6d711408bed5894766437eee920be015ad27023c7a91d4581e2ff5b96e3db0201e6eaccf7b064c4d32db1a2a8fab3e6813e524b4743ddd6216ba77
)
vcpkg_extract_source_archive(${ARCHIVE})
@@ -19,9 +20,6 @@ vcpkg_extract_source_archive(${ARCHIVE}) option(BUILD_SINGLE "Additionally build single precision library" ON)
option(BUILD_LONG_DOUBLE "Additionally build long-double precision library" ON)
-file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
-file(COPY ${CMAKE_CURRENT_LIST_DIR}/config.h DESTINATION ${SOURCE_PATH})
-
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
@@ -31,8 +29,15 @@ vcpkg_configure_cmake( vcpkg_install_cmake()
vcpkg_copy_pdbs()
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
file(COPY ${SOURCE_PATH}/api/fftw3.h DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share/)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share/fftw3)
+file(RENAME ${CURRENT_PACKAGES_DIR}/lib/cmake ${CURRENT_PACKAGES_DIR}/share/fftw3)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
+
+
if (VCPKG_CRT_LINKAGE STREQUAL dynamic)
vcpkg_apply_patches(
SOURCE_PATH ${CURRENT_PACKAGES_DIR}/include
diff --git a/ports/flann/CONTROL b/ports/flann/CONTROL index b70472913..850c76850 100644 --- a/ports/flann/CONTROL +++ b/ports/flann/CONTROL @@ -1,3 +1,3 @@ Source: flann -Version: 1.9.1-6 +Version: 1.9.1-7 Description: Fast Library for Approximate Nearest Neighbors diff --git a/ports/flann/portfile.cmake b/ports/flann/portfile.cmake index f1ead2ad9..6d251caa5 100644 --- a/ports/flann/portfile.cmake +++ b/ports/flann/portfile.cmake @@ -37,9 +37,9 @@ if(VCPKG_LIBRARY_LINKAGE STREQUAL static) file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/flann.lib ${CURRENT_PACKAGES_DIR}/debug/lib/flann-gd.lib) file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/flann_cpp.lib ${CURRENT_PACKAGES_DIR}/debug/lib/flann_cpp-gd.lib) - file(RENAME ${CURRENT_PACKAGES_DIR}/lib/flann_s.lib ${CURRENT_PACKAGES_DIR}/lib/flann-gd.lib) + file(RENAME ${CURRENT_PACKAGES_DIR}/lib/flann_s.lib ${CURRENT_PACKAGES_DIR}/lib/flann.lib) file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/flann_s-gd.lib ${CURRENT_PACKAGES_DIR}/debug/lib/flann-gd.lib) - file(RENAME ${CURRENT_PACKAGES_DIR}/lib/flann_cpp_s.lib ${CURRENT_PACKAGES_DIR}/lib/flann_cpp-gd.lib) + file(RENAME ${CURRENT_PACKAGES_DIR}/lib/flann_cpp_s.lib ${CURRENT_PACKAGES_DIR}/lib/flann_cpp.lib) file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/flann_cpp_s-gd.lib ${CURRENT_PACKAGES_DIR}/debug/lib/flann_cpp-gd.lib) elseif(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/flann_s.lib ${CURRENT_PACKAGES_DIR}/debug/lib/flann_s-gd.lib) diff --git a/ports/flatbuffers/portfile.cmake b/ports/flatbuffers/portfile.cmake index b785e2fc5..4df390de0 100644 --- a/ports/flatbuffers/portfile.cmake +++ b/ports/flatbuffers/portfile.cmake @@ -1,11 +1,3 @@ -# Common Ambient Variables: -# VCPKG_ROOT_DIR = <C:\path\to\current\vcpkg> -# TARGET_TRIPLET is the current triplet (x86-windows, etc) -# PORT is the current port name (zlib, etc) -# CURRENT_BUILDTREES_DIR = ${VCPKG_ROOT_DIR}\buildtrees\${PORT} -# CURRENT_PACKAGES_DIR = ${VCPKG_ROOT_DIR}\packages\${PORT}_${TARGET_TRIPLET} -# - if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") message("Building DLLs not supported. Building static instead.") set(VCPKG_LIBRARY_LINKAGE static) @@ -20,6 +12,10 @@ vcpkg_from_github( HEAD_REF master ) +if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + list(APPEND OPTIONS -DFLATBUFFERS_BUILD_FLATC=OFF -DFLATBUFFERS_BUILD_FLATHASH=OFF) +endif() + set(OPTIONS) if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") list(APPEND OPTIONS -DFLATBUFFERS_BUILD_SHAREDLIB=ON) diff --git a/ports/flint/CONTROL b/ports/flint/CONTROL new file mode 100644 index 000000000..ce4646883 --- /dev/null +++ b/ports/flint/CONTROL @@ -0,0 +1,4 @@ +Source: flint +Version: 2.5.2-1 +Description: Fast Library for Number Theory +Build-Depends: mpir, mpfr, pthreads, gettimeofday diff --git a/ports/flint/dll_flint.patch b/ports/flint/dll_flint.patch new file mode 100644 index 000000000..29e1fa77a --- /dev/null +++ b/ports/flint/dll_flint.patch @@ -0,0 +1,76 @@ +diff --git a/build.vc14/dll_flint/dll_flint.vcxproj b/build.vc14/dll_flint/dll_flint.vcxproj +index 3c8edd3c..947b4e38 100644 +--- a/build.vc14/dll_flint/dll_flint.vcxproj ++++ b/build.vc14/dll_flint/dll_flint.vcxproj +@@ -81,7 +81,7 @@ + <ClCompile> + <Optimization>Full</Optimization> + <IntrinsicFunctions>true</IntrinsicFunctions> +- <AdditionalIncludeDirectories>..\;..\..\;..\..\..\mpir\dll\$(IntDir);..\..\..\mpfr\dll\$(IntDir);..\..\..\pthreads\dll\$(IntDir);</AdditionalIncludeDirectories> ++ <AdditionalIncludeDirectories>..\;..\..\;@NATIVE_INSTALLED_DIR@\include</AdditionalIncludeDirectories> + <PreprocessorDefinitions>NDEBUG;WIN32;HAVE_CONFIG_H;MSC_BUILD_DLL;PTW32_BUILD;FLINT_REENTRANT=0;HAVE_TLS=1;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <ProgramDataBaseFileName>$(TargetDir)$(TargetName).pdb</ProgramDataBaseFileName> +@@ -90,7 +90,7 @@ + <Link> + <GenerateDebugInformation>true</GenerateDebugInformation> + <LargeAddressAware>true</LargeAddressAware> +- <AdditionalDependencies>..\..\..\mpir\dll\$(IntDir)mpir.lib;..\..\..\mpfr\dll\$(IntDir)mpfr.lib;..\..\..\pthreads\dll\$(IntDir)pthreads.lib;%(AdditionalDependencies)</AdditionalDependencies> ++ <AdditionalDependencies>@NATIVE_INSTALLED_DIR@\lib\mpir.lib;@NATIVE_INSTALLED_DIR@\lib\mpfr.lib;@NATIVE_INSTALLED_DIR@\lib\pthreadsVC2.lib;%(AdditionalDependencies)</AdditionalDependencies> + </Link> + <PostBuildEvent> + <Command>postbuild $(IntDir) DLL +@@ -105,7 +105,7 @@ + <ClCompile> + <Optimization>Disabled</Optimization> + <IntrinsicFunctions>true</IntrinsicFunctions> +- <AdditionalIncludeDirectories>..\;..\..\;..\..\..\mpir\dll\$(IntDir);..\..\..\mpfr\dll\$(IntDir);..\..\..\pthreads\dll\$(IntDir);</AdditionalIncludeDirectories> ++ <AdditionalIncludeDirectories>..\;..\..\;@NATIVE_INSTALLED_DIR@\include</AdditionalIncludeDirectories> + <PreprocessorDefinitions>_DEBUG;WIN32;HAVE_CONFIG_H;MSC_BUILD_DLL;PTW32_BUILD;FLINT_REENTRANT=0;HAVE_TLS=1;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> + <ProgramDataBaseFileName>$(TargetDir)$(TargetName).pdb</ProgramDataBaseFileName> +@@ -114,7 +114,7 @@ + <Link> + <GenerateDebugInformation>true</GenerateDebugInformation> + <LargeAddressAware>true</LargeAddressAware> +- <AdditionalDependencies>..\..\..\mpir\dll\$(IntDir)mpir.lib;..\..\..\mpfr\dll\$(IntDir)mpfr.lib;..\..\..\pthreads\dll\$(IntDir)pthreads.lib;%(AdditionalDependencies)</AdditionalDependencies> ++ <AdditionalDependencies>@NATIVE_INSTALLED_DIR@\lib\mpir.lib;@NATIVE_INSTALLED_DIR@\lib\mpfr.lib;@NATIVE_INSTALLED_DIR@\lib\pthreadsVC2.lib;%(AdditionalDependencies)</AdditionalDependencies> + </Link> + <PostBuildEvent> + <Command>postbuild $(IntDir) DLL +@@ -129,7 +129,7 @@ + <ClCompile> + <Optimization>Full</Optimization> + <IntrinsicFunctions>true</IntrinsicFunctions> +- <AdditionalIncludeDirectories>..\;..\..\;..\..\..\mpir\dll\$(IntDir);..\..\..\mpfr\dll\$(IntDir);..\..\..\pthreads\dll\$(IntDir);</AdditionalIncludeDirectories> ++ <AdditionalIncludeDirectories>..\;..\..\;@NATIVE_INSTALLED_DIR@\include</AdditionalIncludeDirectories> + <PreprocessorDefinitions>NDEBUG;WIN32;HAVE_CONFIG_H;MSC_BUILD_DLL;PTW32_BUILD;FLINT_REENTRANT=0;HAVE_TLS=1;_WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <ProgramDataBaseFileName>$(TargetDir)$(TargetName).pdb</ProgramDataBaseFileName> +@@ -138,7 +138,7 @@ + <Link> + <GenerateDebugInformation>true</GenerateDebugInformation> + <LargeAddressAware>true</LargeAddressAware> +- <AdditionalDependencies>..\..\..\mpir\dll\$(IntDir)mpir.lib;..\..\..\mpfr\dll\$(IntDir)mpfr.lib;..\..\..\pthreads\dll\$(IntDir)pthreads.lib;%(AdditionalDependencies)</AdditionalDependencies> ++ <AdditionalDependencies>@NATIVE_INSTALLED_DIR@\lib\mpir.lib;@NATIVE_INSTALLED_DIR@\lib\mpfr.lib;@NATIVE_INSTALLED_DIR@\lib\pthreadsVC2.lib;%(AdditionalDependencies)</AdditionalDependencies> + </Link> + <PostBuildEvent> + <Command>postbuild $(IntDir) DLL +@@ -153,7 +153,7 @@ + <ClCompile> + <Optimization>Disabled</Optimization> + <IntrinsicFunctions>true</IntrinsicFunctions> +- <AdditionalIncludeDirectories>..\;..\..\;..\..\..\mpir\dll\$(IntDir);..\..\..\mpfr\dll\$(IntDir);..\..\..\pthreads\dll\$(IntDir);</AdditionalIncludeDirectories> ++ <AdditionalIncludeDirectories>..\;..\..\;@NATIVE_INSTALLED_DIR@\include</AdditionalIncludeDirectories> + <PreprocessorDefinitions>_DEBUG;WIN32;HAVE_CONFIG_H;MSC_BUILD_DLL;PTW32_BUILD;FLINT_REENTRANT=0;HAVE_TLS=1;_WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> + <ProgramDataBaseFileName>$(TargetDir)$(TargetName).pdb</ProgramDataBaseFileName> +@@ -162,7 +162,7 @@ + <Link> + <GenerateDebugInformation>true</GenerateDebugInformation> + <LargeAddressAware>true</LargeAddressAware> +- <AdditionalDependencies>..\..\..\mpir\dll\$(IntDir)mpir.lib;..\..\..\mpfr\dll\$(IntDir)mpfr.lib;..\..\..\pthreads\dll\$(IntDir)pthreads.lib;%(AdditionalDependencies)</AdditionalDependencies> ++ <AdditionalDependencies>@NATIVE_INSTALLED_DIR@\lib\mpir.lib;@NATIVE_INSTALLED_DIR@\lib\mpfr.lib;@NATIVE_INSTALLED_DIR@\lib\pthreadsVC2.lib;%(AdditionalDependencies)</AdditionalDependencies> + </Link> + <PostBuildEvent> + <Command>postbuild $(IntDir) DLL diff --git a/ports/flint/lib_flint.patch b/ports/flint/lib_flint.patch new file mode 100644 index 000000000..3d0a4caea --- /dev/null +++ b/ports/flint/lib_flint.patch @@ -0,0 +1,40 @@ +diff --git a/build.vc14/lib_flint/lib_flint.vcxproj b/build.vc14/lib_flint/lib_flint.vcxproj +index c6bd44c0..197d7723 100644 +--- a/build.vc14/lib_flint/lib_flint.vcxproj ++++ b/build.vc14/lib_flint/lib_flint.vcxproj +@@ -81,7 +81,7 @@ + <ClCompile> + <Optimization>Full</Optimization> + <IntrinsicFunctions>true</IntrinsicFunctions> +- <AdditionalIncludeDirectories>..\;..\..\;..\..\..\mpir\lib\$(IntDir);..\..\..\mpfr\lib\$(IntDir);..\..\..\pthreads\lib\$(IntDir)</AdditionalIncludeDirectories> ++ <AdditionalIncludeDirectories>..\;..\..\;@NATIVE_INSTALLED_DIR@\include</AdditionalIncludeDirectories> + <PreprocessorDefinitions>NDEBUG;WIN32;_LIB;HAVE_CONFIG_H;PTW32_STATIC_LIB;FLINT_REENTRANT=0;HAVE_TLS=1;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreaded</RuntimeLibrary> + <ProgramDataBaseFileName>$(TargetDir)$(TargetName).pdb</ProgramDataBaseFileName> +@@ -100,7 +100,7 @@ + <ClCompile> + <Optimization>Disabled</Optimization> + <IntrinsicFunctions>true</IntrinsicFunctions> +- <AdditionalIncludeDirectories>..\;..\..\;..\..\..\mpir\lib\$(IntDir);..\..\..\mpfr\lib\$(IntDir);..\..\..\pthreads\lib\$(IntDir)</AdditionalIncludeDirectories> ++ <AdditionalIncludeDirectories>..\;..\..\;@NATIVE_INSTALLED_DIR@\include</AdditionalIncludeDirectories> + <PreprocessorDefinitions>_DEBUG;WIN32;_LIB;HAVE_CONFIG_H;PTW32_STATIC_LIB;FLINT_REENTRANT=0;HAVE_TLS=1;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> + <ProgramDataBaseFileName>$(TargetDir)$(TargetName).pdb</ProgramDataBaseFileName> +@@ -119,7 +119,7 @@ + <ClCompile> + <Optimization>Full</Optimization> + <IntrinsicFunctions>true</IntrinsicFunctions> +- <AdditionalIncludeDirectories>..\;..\..\;..\..\..\mpir\lib\$(IntDir);..\..\..\mpfr\lib\$(IntDir);..\..\..\pthreads\lib\$(IntDir)</AdditionalIncludeDirectories> ++ <AdditionalIncludeDirectories>..\;..\..\;@NATIVE_INSTALLED_DIR@\include</AdditionalIncludeDirectories> + <PreprocessorDefinitions>NDEBUG;WIN32;_LIB;HAVE_CONFIG_H;PTW32_STATIC_LIB;FLINT_REENTRANT=0;HAVE_TLS=1;_WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreaded</RuntimeLibrary> + <ProgramDataBaseFileName>$(TargetDir)$(TargetName).pdb</ProgramDataBaseFileName> +@@ -138,7 +138,7 @@ + <ClCompile> + <Optimization>Disabled</Optimization> + <IntrinsicFunctions>true</IntrinsicFunctions> +- <AdditionalIncludeDirectories>..\;..\..\;..\..\..\mpir\lib\$(IntDir);..\..\..\mpfr\lib\$(IntDir);..\..\..\pthreads\lib\$(IntDir)</AdditionalIncludeDirectories> ++ <AdditionalIncludeDirectories>..\;..\..\;@NATIVE_INSTALLED_DIR@\include</AdditionalIncludeDirectories> + <PreprocessorDefinitions>_DEBUG;WIN32;_LIB;HAVE_CONFIG_H;PTW32_STATIC_LIB;FLINT_REENTRANT=0;HAVE_TLS=1;_WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> + <ProgramDataBaseFileName>$(TargetDir)$(TargetName).pdb</ProgramDataBaseFileName> diff --git a/ports/flint/portfile.cmake b/ports/flint/portfile.cmake new file mode 100644 index 000000000..9a9d5136b --- /dev/null +++ b/ports/flint/portfile.cmake @@ -0,0 +1,111 @@ +include(vcpkg_common_functions) + +set(FLINT_VERSION 2.5.2) +set(FLINT_HASH "8606b369af505d5fcedd05d95fcd04afac2a916fc5291501c56785891cfdb2f9bc98700b2d05afd1d9482fb96df2a8c8bf1cd0e5696df46775df9fa743eb900b") +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/flint-${FLINT_VERSION}) + +vcpkg_download_distfile(ARCHIVE_FILE + URLS "http://www.flintlib.org/flint-${FLINT_VERSION}.zip" + FILENAME "flint-${FLINT_VERSION}.zip" + SHA512 ${FLINT_HASH} +) +vcpkg_extract_source_archive(${ARCHIVE_FILE}) + +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES "${CMAKE_CURRENT_LIST_DIR}/lib_flint.patch" + "${CMAKE_CURRENT_LIST_DIR}/dll_flint.patch" +) + +set(MSVC_VERSION 14) + +file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}) +file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}) +file(COPY ${SOURCE_PATH} DESTINATION ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}) +get_filename_component(SOURCE_DIR_NAME "${SOURCE_PATH}" NAME) + +# Use fresh copy of sources for building and modification +set(SOURCE_PATH "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}/${SOURCE_DIR_NAME}") + +file(TO_NATIVE_PATH ${CURRENT_INSTALLED_DIR} NATIVE_INSTALLED_DIR) +configure_file( + "${SOURCE_PATH}/build.vc${MSVC_VERSION}/dll_flint/dll_flint.vcxproj" "${SOURCE_PATH}/build.vc${MSVC_VERSION}/dll_flint/dll_flint.vcxproj" @ONLY +) +configure_file( + "${SOURCE_PATH}/build.vc${MSVC_VERSION}/lib_flint/lib_flint.vcxproj" "${SOURCE_PATH}/build.vc${MSVC_VERSION}/lib_flint/lib_flint.vcxproj" @ONLY +) + +file(RENAME "${SOURCE_PATH}/fmpz-conversions-gc.in" "${SOURCE_PATH}/fmpz-conversions.h") + +IF (VCPKG_TARGET_ARCHITECTURE MATCHES "x86") + file(RENAME "${SOURCE_PATH}/fft_tuning32.in" "${SOURCE_PATH}/fft_tuning.h") +ELSE() + file(RENAME "${SOURCE_PATH}/fft_tuning64.in" "${SOURCE_PATH}/fft_tuning.h") +ENDIF() + +if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + vcpkg_build_msbuild( + PROJECT_PATH ${SOURCE_PATH}/build.vc${MSVC_VERSION}/dll_flint/dll_flint.vcxproj + ) +else() + vcpkg_build_msbuild( + PROJECT_PATH ${SOURCE_PATH}/build.vc${MSVC_VERSION}/lib_flint/lib_flint.vcxproj + ) +endif() + +IF (VCPKG_TARGET_ARCHITECTURE MATCHES "x86") + SET(BUILD_ARCH "Win32") +ELSE() + SET(BUILD_ARCH ${VCPKG_TARGET_ARCHITECTURE}) +ENDIF() + +if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + file(GLOB FLINT_HEADERS "${SOURCE_PATH}/dll/${BUILD_ARCH}/Release/*.h") + file(INSTALL + ${FLINT_HEADERS} + DESTINATION ${CURRENT_PACKAGES_DIR}/include/flint + ) + file(INSTALL + ${SOURCE_PATH}/build.vc${MSVC_VERSION}/dll_flint/${BUILD_ARCH}/Release/dll_flint.dll + DESTINATION ${CURRENT_PACKAGES_DIR}/bin + ) + file(INSTALL + ${SOURCE_PATH}/build.vc${MSVC_VERSION}/dll_flint/${BUILD_ARCH}/Debug/dll_flint.dll + DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin + ) + file(INSTALL + ${SOURCE_PATH}/build.vc${MSVC_VERSION}/dll_flint/${BUILD_ARCH}/Release/dll_flint.lib + DESTINATION ${CURRENT_PACKAGES_DIR}/lib + RENAME flint.lib + ) + file(INSTALL + ${SOURCE_PATH}/build.vc${MSVC_VERSION}/dll_flint/${BUILD_ARCH}/Debug/dll_flint.lib + DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib + RENAME flint.lib + ) + vcpkg_copy_pdbs() +else() + file(GLOB FLINT_HEADERS "${SOURCE_PATH}/lib/${BUILD_ARCH}/Release/*.h") + file(INSTALL + ${FLINT_HEADERS} + DESTINATION ${CURRENT_PACKAGES_DIR}/include/flint + ) + file(INSTALL + ${SOURCE_PATH}/build.vc${MSVC_VERSION}/lib_flint/${BUILD_ARCH}/Release/lib_flint.lib + DESTINATION ${CURRENT_PACKAGES_DIR}/lib + RENAME flint.lib + ) + file(INSTALL + ${SOURCE_PATH}/build.vc${MSVC_VERSION}/lib_flint/${BUILD_ARCH}/Debug/lib_flint.lib + DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib + RENAME flint.lib + ) +endif() + +file(INSTALL + ${SOURCE_PATH}/gpl-2.0.txt + DESTINATION ${CURRENT_PACKAGES_DIR}/share/flint + RENAME copyright +) + +message(STATUS "Installing done") diff --git a/ports/folly/CONTROL b/ports/folly/CONTROL index 027979146..7a239386a 100644 --- a/ports/folly/CONTROL +++ b/ports/folly/CONTROL @@ -1,4 +1,4 @@ Source: folly -Version: 2017.10.02.00 +Version: 2017.11.27.00 Description: An open-source C++ library developed and used at Facebook. The library is UNSTABLE on Windows Build-Depends: zlib, openssl, boost, libevent, double-conversion, glog, gflags, lz4, liblzma, snappy diff --git a/ports/folly/fix-MSG_ERRQUEUE.diff b/ports/folly/fix-MSG_ERRQUEUE.diff deleted file mode 100644 index ee3a1215a..000000000 --- a/ports/folly/fix-MSG_ERRQUEUE.diff +++ /dev/null @@ -1,22 +0,0 @@ -diff --git a/folly/io/async/AsyncSocket.cpp b/folly/io/async/AsyncSocket.cpp -index 7f8c5f13..f77adbc0 100644 ---- a/folly/io/async/AsyncSocket.cpp -+++ b/folly/io/async/AsyncSocket.cpp -@@ -41,7 +41,7 @@ namespace fsp = folly::portability::sockets; - namespace folly { - - static constexpr bool msgErrQueueSupported = --#ifdef MSG_ERRQUEUE -+#if defined(MSG_ERRQUEUE) && !defined(_WIN32) - true; - #else - false; -@@ -1551,7 +1551,7 @@ void AsyncSocket::handleErrMessages() noexcept { - return; - } - --#ifdef MSG_ERRQUEUE -+#if defined(MSG_ERRQUEUE) && !defined(_WIN32) - uint8_t ctrl[1024]; - unsigned char data; - struct msghdr msg; diff --git a/ports/folly/fix-histogram.diff b/ports/folly/fix-histogram.diff deleted file mode 100644 index ca92a891e..000000000 --- a/ports/folly/fix-histogram.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- a/folly/stats/Histogram.h -+++ b/folly/stats/Histogram.h -@@ -485,7 +485,7 @@ - // with /permissive- (the default for the CMake build), so we directly include - // the -defs as if it were -inl, and don't provide the explicit instantiations. - // https://developercommunity.visualstudio.com/content/problem/81223/incorrect-error-c5037-with-permissive.html --#if defined(_MSC_VER) && _MSC_FULL_VER >= 191125506 && _MSC_FULL_VER < 191125542 -+#if defined(_MSC_VER) && _MSC_FULL_VER >= 191125506 && _MSC_FULL_VER <= 191125547 - #define FOLLY_MSVC_USE_WORKAROUND_FOR_C5037 1 - #else - #define FOLLY_MSVC_USE_WORKAROUND_FOR_C5037 0 diff --git a/ports/folly/fix-malloc.diff b/ports/folly/fix-malloc.diff deleted file mode 100644 index db7a23063..000000000 --- a/ports/folly/fix-malloc.diff +++ /dev/null @@ -1,12 +0,0 @@ ---- a/folly/Malloc.h Mon Oct 09 04:35:09 2017 -+++ b/folly/Malloc.h Fri Oct 13 15:31:36 2017 -@@ -189,9 +189,6 @@ - return false; - } - -- /* Avoid optimizing away the malloc. */ -- asm volatile("" ::"m"(ptr) : "memory"); -- - return (origAllocated != *counter); - }(); - diff --git a/ports/folly/fix-static-linking.diff b/ports/folly/fix-static-linking.diff deleted file mode 100644 index 80434faca..000000000 --- a/ports/folly/fix-static-linking.diff +++ /dev/null @@ -1,98 +0,0 @@ -diff --git a/CMake/folly-deps.cmake b/CMake/folly-deps.cmake -index 211c6fbf..fbcbddf0 100755 ---- a/CMake/folly-deps.cmake -+++ b/CMake/folly-deps.cmake -@@ -10,9 +10,26 @@ find_package(Boost 1.55.0 MODULE - thread - REQUIRED - ) -+ - find_package(DoubleConversion MODULE REQUIRED) --find_package(GFlags MODULE REQUIRED) --find_package(GLog MODULE REQUIRED) --find_package(LibEvent MODULE REQUIRED) -+ -+find_package(gflags CONFIG) -+if(NOT TARGET gflags) -+ message(STATUS "MODULE: GFlags") -+ find_package(GFlags MODULE REQUIRED) -+endif() -+ -+find_package(glog CONFIG) -+if(NOT TARGET glog::glog) -+ message(STATUS "MODULE: GLog") -+ find_package(GLog MODULE REQUIRED) -+endif() -+ -+find_package(Libevent CONFIG) -+if(NOT TARGET event) -+ message(STATUS "MODULE: Libevent") -+ find_package(LibEvent MODULE REQUIRED) -+endif() -+ - find_package(OpenSSL MODULE REQUIRED) - find_package(PThread MODULE) -diff --git a/CMakeLists.txt b/CMakeLists.txt -index cdc992a8..c0231402 100755 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -141,9 +141,38 @@ set(FOLLY_SHINY_DEPENDENCIES - - set(FOLLY_LINK_LIBRARIES - ${DOUBLE_CONVERSION_LIBRARY} -- ${LIBEVENT_LIB} -- ${LIBGFLAGS_LIBRARY} -- ${LIBGLOG_LIBRARY} -+) -+ -+set(FOLLY_INCLUDE_DIRECTORIES -+ ${DOUBLE_CONVERSION_INCLUDE_DIR} -+) -+ -+if(TARGET gflags_static) -+ set(FOLLY_SHINY_DEPENDENCIES ${FOLLY_SHINY_DEPENDENCIES} gflags_static) -+elseif(TARGET gflags) -+ set(FOLLY_SHINY_DEPENDENCIES ${FOLLY_SHINY_DEPENDENCIES} gflags) -+else() -+ set(FOLLY_LINK_LIBRARIES ${FOLLY_LINK_LIBRARIES} ${LIBGFLAGS_LIBRARY}) -+ set(FOLLY_INCLUDE_DIRECTORIES ${FOLLY_INCLUDE_DIRECTORIES} ${LIBGFLAGS_INCLUDE_DIR}) -+endif() -+ -+if(TARGET glog::glog) -+ set(FOLLY_SHINY_DEPENDENCIES ${FOLLY_SHINY_DEPENDENCIES} glog::glog) -+else() -+ set(FOLLY_LINK_LIBRARIES ${FOLLY_LINK_LIBRARIES} ${LIBGLOG_LIBRARY}) -+ set(FOLLY_INCLUDE_DIRECTORIES ${FOLLY_INCLUDE_DIRECTORIES} ${LIBGLOG_INCLUDE_DIR}) -+endif() -+ -+if(TARGET event) -+ set(FOLLY_SHINY_DEPENDENCIES ${FOLLY_SHINY_DEPENDENCIES} event) -+else() -+ set(FOLLY_LINK_LIBRARIES ${FOLLY_LINK_LIBRARIES} ${LIBEVENT_LIB}) -+ set(FOLLY_INCLUDE_DIRECTORIES ${FOLLY_INCLUDE_DIRECTORIES} ${LIBEVENT_INCLUDE_DIR}) -+endif() -+ -+ -+set(FOLLY_LINK_LIBRARIES -+ ${FOLLY_LINK_LIBRARIES} - Iphlpapi.lib - Ws2_32.lib - -@@ -152,15 +181,12 @@ set(FOLLY_LINK_LIBRARIES - - target_include_directories(folly_base - PUBLIC -- ${DOUBLE_CONVERSION_INCLUDE_DIR} -- ${LIBGFLAGS_INCLUDE_DIR} -- ${LIBGLOG_INCLUDE_DIR} -- ${LIBEVENT_INCLUDE_DIR} -- $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}> -+ ${FOLLY_INCLUDE_DIRECTORIES} - ) - - foreach (LIB ${FOLLY_SHINY_DEPENDENCIES}) - target_include_directories(folly_base PUBLIC $<TARGET_PROPERTY:${LIB},INCLUDE_DIRECTORIES>) -+ target_compile_definitions(folly_base PUBLIC $<TARGET_PROPERTY:${LIB},INTERFACE_COMPILE_DEFINITIONS>) - endforeach() - - if (FOLLY_HAVE_PTHREAD) diff --git a/ports/folly/portfile.cmake b/ports/folly/portfile.cmake index 8a48ee85d..fc3584860 100644 --- a/ports/folly/portfile.cmake +++ b/ports/folly/portfile.cmake @@ -17,21 +17,11 @@ set(ENV{PATH} "$ENV{PATH};${PYTHON3_DIR}") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO facebook/folly - REF v2017.10.02.00 - SHA512 4fc7840c7a6c528c8ba6a21817bc75f15f5cd5f781d104a1f0622fe1085a6cb26ff9749616b164afff0ea46be6d16877457a98f417e6dbe1044db7605650a6d3 + REF v2017.11.27.00 + SHA512 738bb00047a7cbd807f2dccd64031763df80bbebca73f1ae9500b750dcad156dde84e47f4eda7af1bcd7abfae10c973da47515f2e111929979d1637869cf06ee HEAD_REF master ) -vcpkg_apply_patches( - SOURCE_PATH - ${SOURCE_PATH} - PATCHES - ${CMAKE_CURRENT_LIST_DIR}/fix-static-linking.diff - ${CMAKE_CURRENT_LIST_DIR}/fix-malloc.diff - ${CMAKE_CURRENT_LIST_DIR}/fix-MSG_ERRQUEUE.diff - ${CMAKE_CURRENT_LIST_DIR}/fix-histogram.diff -) - if(VCPKG_CRT_LINKAGE STREQUAL static) set(MSVC_USE_STATIC_RUNTIME ON) else() diff --git a/ports/freeglut/CONTROL b/ports/freeglut/CONTROL index 82f0dc1f1..d7c3801f7 100644 --- a/ports/freeglut/CONTROL +++ b/ports/freeglut/CONTROL @@ -1,3 +1,3 @@ Source: freeglut -Version: 3.0.0-2 +Version: 3.0.0-3 Description: Open source implementation of GLUT with source and binary backwards compatibility. diff --git a/ports/freeglut/portfile.cmake b/ports/freeglut/portfile.cmake index c2d1f2816..3e6248126 100644 --- a/ports/freeglut/portfile.cmake +++ b/ports/freeglut/portfile.cmake @@ -35,11 +35,17 @@ vcpkg_install_cmake() # Patch header file(READ ${CURRENT_PACKAGES_DIR}/include/GL/freeglut_std.h FREEGLUT_STDH) string(REPLACE "pragma comment (lib, \"freeglut_staticd.lib\")" - "pragma comment (lib, \"freeglut_static.lib\")" FREEGLUT_STDH "${FREEGLUT_STDH}") + "pragma comment (lib, \"freeglut.lib\")" FREEGLUT_STDH "${FREEGLUT_STDH}") string(REPLACE "pragma comment (lib, \"freeglutd.lib\")" "pragma comment (lib, \"freeglut.lib\")" FREEGLUT_STDH "${FREEGLUT_STDH}") file(WRITE ${CURRENT_PACKAGES_DIR}/include/GL/freeglut_std.h "${FREEGLUT_STDH}") +# Rename static lib (otherwise it's incompatible with FindGLUT.cmake) +if (VCPKG_LIBRARY_LINKAGE STREQUAL static) + file(RENAME ${CURRENT_PACKAGES_DIR}/lib/freeglut_static.lib ${CURRENT_PACKAGES_DIR}/lib/freeglut.lib) + file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/freeglut_static.lib ${CURRENT_PACKAGES_DIR}/debug/lib/freeglut.lib) +endif() + # Clean file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) @@ -47,4 +53,5 @@ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/freeglut) file(RENAME ${CURRENT_PACKAGES_DIR}/share/freeglut/COPYING ${CURRENT_PACKAGES_DIR}/share/freeglut/copyright) -vcpkg_copy_pdbs()
\ No newline at end of file +vcpkg_copy_pdbs() +file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) diff --git a/ports/freeglut/usage b/ports/freeglut/usage new file mode 100644 index 000000000..40e214fde --- /dev/null +++ b/ports/freeglut/usage @@ -0,0 +1,4 @@ +The package freeglut is compatible with built-in CMake targets:
+
+ find_package(GLUT REQUIRED)
+ target_link_libraries(main PRIVATE GLUT::GLUT)
diff --git a/ports/freerdp/CONTROL b/ports/freerdp/CONTROL index 5a730efb7..6a2d5d480 100644 --- a/ports/freerdp/CONTROL +++ b/ports/freerdp/CONTROL @@ -1,4 +1,4 @@ Source: freerdp -Version: 2.0.0-rc0~vcpkg1-1 +Version: 2.0.0-rc1~vcpkg1 Description: A free implementation of the Remote Desktop Protocol (RDP) Build-Depends: openssl diff --git a/ports/freerdp/portfile.cmake b/ports/freerdp/portfile.cmake index 6805c5a69..cd27da88c 100644 --- a/ports/freerdp/portfile.cmake +++ b/ports/freerdp/portfile.cmake @@ -1,8 +1,8 @@ include(vcpkg_common_functions) -set(FREERDP_VERSION 2.0.0-rc0) -set(FREERDP_REVISION 2.0.0-rc0) -set(FREERDP_HASH d3eb0d5d23aa2a4d0277414f13a984d40aba051102c5af1e5ade975cdb469ef3549b145cd4339415fc33f056044929cfac71884512ea77a1e718d70d5b21b9dd) +set(FREERDP_VERSION 2.0.0-rc1) +set(FREERDP_REVISION 2.0.0-rc1) +set(FREERDP_HASH 5d8fd7d6900feac1e42bfc0ebc111524205c3baa093958ced42d03635076ae7d88cd86439a22ff0656bc53f0302daee5a114a4ac26328ae598ee086490926182) string(REGEX REPLACE "\\+" "-" FREERDP_VERSION_ESCAPED ${FREERDP_VERSION}) set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/FreeRDP-${FREERDP_VERSION_ESCAPED}) diff --git a/ports/freetype-gl/0001-Use-external-Glew-and-Freetype.patch b/ports/freetype-gl/0001-Use-external-Glew-and-Freetype.patch new file mode 100644 index 000000000..6c33f9e0e --- /dev/null +++ b/ports/freetype-gl/0001-Use-external-Glew-and-Freetype.patch @@ -0,0 +1,24 @@ +From 653dae652bac66e4e96a94ba8ebfabb2227738b7 Mon Sep 17 00:00:00 2001 +From: Daniel Olivier <dan_olivier@hotmail.com> +Date: Thu, 19 Oct 2017 21:26:09 -0400 +Subject: [PATCH] Use external Glew and Freetype + + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 4eb55e9..2546de6 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -74,13 +74,6 @@ if(NOT HAVE_M_PI) + endif() + endif() + +-if(NOT MINGW AND (WIN32 OR WIN64)) +- set(GLEW_ROOT_DIR +- ${CMAKE_CURRENT_SOURCE_DIR}/windows/glew) +- set(ENV{FREETYPE_DIR} +- ${CMAKE_CURRENT_SOURCE_DIR}/windows/freetype) +-endif() +- + find_package(OpenGL REQUIRED) + find_package(Freetype REQUIRED) +
\ No newline at end of file diff --git a/ports/freetype-gl/CONTROL b/ports/freetype-gl/CONTROL new file mode 100644 index 000000000..f88d6f185 --- /dev/null +++ b/ports/freetype-gl/CONTROL @@ -0,0 +1,4 @@ +Source: freetype-gl +Version: 2017-10-9-82fb152a74f01b1483ac80d15935fbdfaf3ed836 +Description: OpenGL text using one vertex buffer, one texture and FreeType +Build-Depends: glew, freetype diff --git a/ports/freetype-gl/portfile.cmake b/ports/freetype-gl/portfile.cmake new file mode 100644 index 000000000..8771c15fc --- /dev/null +++ b/ports/freetype-gl/portfile.cmake @@ -0,0 +1,65 @@ +if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) + message(STATUS "Warning: Dynamic building not supported yet. Building static.") + set(VCPKG_LIBRARY_LINKAGE static) +endif() + +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO rougier/freetype-gl + REF 82fb152a74f01b1483ac80d15935fbdfaf3ed836 + SHA512 4842d9e66fd25dbb3a4e3f4bf597a0c1fc3c3c30e0cb1baae1c3306ddcb663ff9108d8fc01bde539fea7cb03a6329054f66166d9e448086358ab7b05953f5884 + HEAD_REF master +) + +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES "${CMAKE_CURRENT_LIST_DIR}/0001-Use-external-Glew-and-Freetype.patch" +) + +# make sure that no "internal" libraries are used by removing them +file(REMOVE_RECURSE ${SOURCE_PATH}/windows/freetype) +file(REMOVE_RECURSE ${SOURCE_PATH}/windows/AntTweakBar) +file(REMOVE_RECURSE ${SOURCE_PATH}/windows/glew) +file(REMOVE ${SOURCE_PATH}/cmake/Modules/FindGLEW.cmake) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + -Dfreetype-gl_BUILD_APIDOC=OFF + -Dfreetype-gl_BUILD_DEMOS=OFF + -Dfreetype-gl_BUILD_TESTS=OFF + -Dfreetype-gl_BUILD_MAKEFONT=OFF +) + +# We may soon install using a modified cmake process with install target + +# Although FreeType-GL uses CMake as its build system, the implementation +# (*.cmake,CMakeLists.txt) doesn't provide for any type of installation. +# Presumably, it has been used as-is, in-tree, without ever needing to install +# itself within a larger system. +vcpkg_build_cmake(LOGFILE_ROOT install) + +file(GLOB HEADER_FILES "${SOURCE_PATH}/*.h") +file(INSTALL ${HEADER_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/include/freetype-gl) + +# LIB +file(GLOB LIBS + "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/*.lib" + "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/Release/*.lib" + "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/*/Release/*.lib" +) +file(GLOB DEBUG_LIBS + "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/*.lib" + "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/Debug/*.lib" + "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/*/Debug/*.lib" +) +file(INSTALL ${LIBS} DESTINATION ${CURRENT_PACKAGES_DIR}/lib) +file(INSTALL ${DEBUG_LIBS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) + +vcpkg_copy_pdbs() + +# Handle copyright +file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/freetype-gl RENAME copyright) diff --git a/ports/freetype/CONTROL b/ports/freetype/CONTROL index bf65eb28f..c6fcc4243 100644 --- a/ports/freetype/CONTROL +++ b/ports/freetype/CONTROL @@ -1,4 +1,4 @@ Source: freetype -Version: 2.8-1 +Version: 2.8.1-1 Build-Depends: zlib, bzip2, libpng Description: A library to render fonts. diff --git a/ports/freetype/portfile.cmake b/ports/freetype/portfile.cmake index 8bce2577e..7b98fa477 100644 --- a/ports/freetype/portfile.cmake +++ b/ports/freetype/portfile.cmake @@ -1,10 +1,10 @@ include(vcpkg_common_functions) -set(FT_VERSION 2.8) +set(FT_VERSION 2.8.1) set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/freetype-${FT_VERSION}) vcpkg_download_distfile(ARCHIVE URLS "http://download.savannah.gnu.org/releases/freetype/freetype-${FT_VERSION}.tar.bz2" FILENAME "freetype-${FT_VERSION}.tar.bz2" - SHA512 3842c34bf6100a8c9b78258146b2ff35e9bb4c993937d3ef09982c1e2552dfd15f8849ddd8a1e84edf08b5a5fb918b68cf7b1584545c5900e22a00bfa1c89ff5 + SHA512 ca59e47f0fceeeb9b8032be2671072604d0c79094675df24187829c05e99757d0a48a0f8062d4d688e056f783aa8f6090d732ad116562e94784fccf1339eb823 ) vcpkg_extract_source_archive(${ARCHIVE}) @@ -58,3 +58,4 @@ file(COPY file(RENAME ${CURRENT_PACKAGES_DIR}/share/freetype/LICENSE.TXT ${CURRENT_PACKAGES_DIR}/share/freetype/copyright) vcpkg_copy_pdbs() +file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) diff --git a/ports/freetype/usage b/ports/freetype/usage new file mode 100644 index 000000000..3b42b86e4 --- /dev/null +++ b/ports/freetype/usage @@ -0,0 +1,5 @@ +The package freetype is compatible with built-in CMake targets:
+
+ find_package(Freetype REQUIRED)
+ target_link_libraries(main PRIVATE ${FREETYPE_LIBRARIES})
+ target_include_directories(main PRIVATE ${FREETYPE_INCLUDE_DIRS})
diff --git a/ports/gdcm2/CONTROL b/ports/gdcm2/CONTROL index b39b3e19f..eacb3a839 100644 --- a/ports/gdcm2/CONTROL +++ b/ports/gdcm2/CONTROL @@ -1,4 +1,4 @@ Source: gdcm2 -Version: 2.6.8-1 +Version: 2.8.3 Description: Grassroots DICOM library Build-Depends: zlib, expat diff --git a/ports/gdcm2/gdcmSystem.patch b/ports/gdcm2/gdcmSystem.patch deleted file mode 100644 index 63722c4f1..000000000 --- a/ports/gdcm2/gdcmSystem.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/Source/Common/gdcmSystem.cxx -+++ b/Source/Common/gdcmSystem.cxx -@@ -977,7 +977,7 @@ - } - } - // We need to tell the user... -- gdcmWarningMacro( "Could not find Charset from alias: " + alias ); -+ gdcmWarningMacro( std::string("Could not find Charset from alias: ") + alias ); - return NULL; - } - #endif //_WIN32 diff --git a/ports/gdcm2/portfile.cmake b/ports/gdcm2/portfile.cmake index 0293ea714..7f7ba930b 100644 --- a/ports/gdcm2/portfile.cmake +++ b/ports/gdcm2/portfile.cmake @@ -14,15 +14,14 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO malaterre/GDCM - REF v2.6.8 - SHA512 f3b571f7e00b42b444acd6d696ba1979b6ef83e84744ecddb05ad09d8d2443027145c50cb67c6bc25d6b8e009833b643e575ab988106cb981f529cf455a9b0bc - HEAD_REF master + REF v2.8.3 + SHA512 f8c3d600f067c9b60a32ff5fb7e751c06088e1e4a8e8d0f5e25d9fc7d49e8fab1f0242b10433f522d2043777cddace78c5a9c2cb25bac75a8e84fee554370f62 ) vcpkg_apply_patches( SOURCE_PATH ${SOURCE_PATH} PATCHES - ${CMAKE_CURRENT_LIST_DIR}/gdcmSystem.patch + ${CMAKE_CURRENT_LIST_DIR}/socketxx.patch ) diff --git a/ports/gdcm2/socketxx.patch b/ports/gdcm2/socketxx.patch new file mode 100644 index 000000000..0142910b1 --- /dev/null +++ b/ports/gdcm2/socketxx.patch @@ -0,0 +1,11 @@ +--- a/Utilities/socketxx/socket++/CMakeLists.txt ++++ b/Utilities/socketxx/socket++/CMakeLists.txt +@@ -76,7 +76,7 @@ + endif() + set_target_properties(${SOCKETXX_LIBRARY_NAME} PROPERTIES ${SOCKETXX_LIBRARY_PROPERTIES}) + if(BUILD_SHARED_LIBS) +- set_target_properties(${SOCKETXX_LIBRARY_NAME} PROPERTIES INTERFACE_LINK_LIBRARIES "" LINK_INTERFACE_LIBRARIES "") ++ set_target_properties(${SOCKETXX_LIBRARY_NAME} PROPERTIES INTERFACE_LINK_LIBRARIES "") + endif() + + # Install library diff --git a/ports/gettimeofday/CMakeLists.txt b/ports/gettimeofday/CMakeLists.txt new file mode 100644 index 000000000..4ec5b43a0 --- /dev/null +++ b/ports/gettimeofday/CMakeLists.txt @@ -0,0 +1,14 @@ +cmake_minimum_required(VERSION 3.8) +project(gettimeofday C) + +add_library(gettimeofday gettimeofday.c gettimeofday.def) + +install(TARGETS gettimeofday + RUNTIME DESTINATION bin + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib +) + +if(CMAKE_BUILD_TYPE STREQUAL "Release") + install(FILES gettimeofday.h DESTINATION include) +endif() diff --git a/ports/gettimeofday/CONTROL b/ports/gettimeofday/CONTROL new file mode 100644 index 000000000..3ae7e0682 --- /dev/null +++ b/ports/gettimeofday/CONTROL @@ -0,0 +1,3 @@ +Source: gettimeofday +Version: 2017-10-14-2 +Description: An implementation of gettimeofday for WIN32 diff --git a/ports/gettimeofday/LICENSE b/ports/gettimeofday/LICENSE new file mode 100644 index 000000000..57c986d30 --- /dev/null +++ b/ports/gettimeofday/LICENSE @@ -0,0 +1,33 @@ +/* + * Copied from PostgreSQL source: + * http://doxygen.postgresql.org/gettimeofday_8c_source.html + * + */ + +/* + * gettimeofday.c + * Win32 gettimeofday() replacement + * + * src/port/gettimeofday.c + * + * Copyright (c) 2003 SRA, Inc. + * Copyright (c) 2003 SKC, Inc. + * + * Permission to use, copy, modify, and distribute this software and + * its documentation for any purpose, without fee, and without a + * written agreement is hereby granted, provided that the above + * copyright notice and this paragraph and the following two + * paragraphs appear in all copies. + * + * IN NO EVENT SHALL THE AUTHOR BE LIABLE TO ANY PARTY FOR DIRECT, + * INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING + * LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS + * DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * + * THE AUTHOR SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS + * IS" BASIS, AND THE AUTHOR HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, + * SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + */ diff --git a/ports/gettimeofday/gettimeofday.c b/ports/gettimeofday/gettimeofday.c new file mode 100644 index 000000000..62abf344a --- /dev/null +++ b/ports/gettimeofday/gettimeofday.c @@ -0,0 +1,67 @@ +/* + * Copied from PostgreSQL source: + * http://doxygen.postgresql.org/gettimeofday_8c_source.html + * + */ + +/* + * gettimeofday.c + * Win32 gettimeofday() replacement + * + * src/port/gettimeofday.c + * + * Copyright (c) 2003 SRA, Inc. + * Copyright (c) 2003 SKC, Inc. + * + * Permission to use, copy, modify, and distribute this software and + * its documentation for any purpose, without fee, and without a + * written agreement is hereby granted, provided that the above + * copyright notice and this paragraph and the following two + * paragraphs appear in all copies. + * + * IN NO EVENT SHALL THE AUTHOR BE LIABLE TO ANY PARTY FOR DIRECT, + * INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING + * LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS + * DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * + * THE AUTHOR SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS + * IS" BASIS, AND THE AUTHOR HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, + * SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + */ + +#ifdef _MSC_VER + +#include <winsock2.h> + + +/* FILETIME of Jan 1 1970 00:00:00. */ +static const unsigned __int64 epoch = 116444736000000000Ui64; + +/* + * timezone information is stored outside the kernel so tzp isn't used anymore. + * + * Note: this function is not for Win32 high precision timing purpose. See + * elapsed_time(). + */ +int +gettimeofday(struct timeval * tp, struct timezone * tzp) +{ + FILETIME file_time; + SYSTEMTIME system_time; + ULARGE_INTEGER ularge; + + GetSystemTime(&system_time); + SystemTimeToFileTime(&system_time, &file_time); + ularge.LowPart = file_time.dwLowDateTime; + ularge.HighPart = file_time.dwHighDateTime; + + tp->tv_sec = (long) ((ularge.QuadPart - epoch) / 10000000L); + tp->tv_usec = (long) (system_time.wMilliseconds * 1000); + + return 0; +} + +#endif /* _MSC_VER */ diff --git a/ports/gettimeofday/gettimeofday.def b/ports/gettimeofday/gettimeofday.def new file mode 100644 index 000000000..7a46b866b --- /dev/null +++ b/ports/gettimeofday/gettimeofday.def @@ -0,0 +1,2 @@ +EXPORTS
+ gettimeofday
diff --git a/ports/gettimeofday/gettimeofday.h b/ports/gettimeofday/gettimeofday.h new file mode 100644 index 000000000..227317524 --- /dev/null +++ b/ports/gettimeofday/gettimeofday.h @@ -0,0 +1,13 @@ +#ifndef _MY_GETTIMEOFDAY_H_ +#define _MY_GETTIMEOFDAY_H_ + +#ifdef _MSC_VER + +#include <winsock2.h> +#include <time.h> + +int gettimeofday(struct timeval * tp, struct timezone * tzp); + +#endif /* _MSC_VER */ + +#endif /* _MY_GETTIMEOFDAY_H_ */ diff --git a/ports/gettimeofday/portfile.cmake b/ports/gettimeofday/portfile.cmake new file mode 100644 index 000000000..51c88c989 --- /dev/null +++ b/ports/gettimeofday/portfile.cmake @@ -0,0 +1,11 @@ +include(vcpkg_common_functions) + +vcpkg_configure_cmake( + SOURCE_PATH ${CMAKE_CURRENT_LIST_DIR} + PREFER_NINJA +) + +vcpkg_install_cmake() +vcpkg_copy_pdbs() + +file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/gettimeofday RENAME copyright) diff --git a/ports/gflags/portfile.cmake b/ports/gflags/portfile.cmake index 463b6d9b2..13d9a831b 100644 --- a/ports/gflags/portfile.cmake +++ b/ports/gflags/portfile.cmake @@ -1,5 +1,8 @@ +if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + message(FATAL_ERROR "${PORT} does not currently support UWP") +endif() + include(vcpkg_common_functions) -find_program(GIT git) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH diff --git a/ports/glbinding/CONTROL b/ports/glbinding/CONTROL index b6eaf06bd..1fd781901 100644 --- a/ports/glbinding/CONTROL +++ b/ports/glbinding/CONTROL @@ -1,3 +1,3 @@ Source: glbinding -Version: 2.1.1-2 +Version: 2.1.1-3 Description: glbinding is an MIT licensed, cross-platform C++ binding for the OpenGL API diff --git a/ports/glbinding/portfile.cmake b/ports/glbinding/portfile.cmake index 6f6dfcc68..cf3f64e5d 100644 --- a/ports/glbinding/portfile.cmake +++ b/ports/glbinding/portfile.cmake @@ -7,14 +7,20 @@ # include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/glbinding-2.1.1) -vcpkg_download_distfile(ARCHIVE - URLS "https://github.com/cginternals/glbinding/archive/v2.1.1.zip" - FILENAME "glbinding-2.1.1.zip" - SHA512 66b21853a4f4760b7b22cafd5211958769c513e83be999018fe79cf56a9271e0e28566caaa2286393f54ac2154d564a68d12159598d03c965adf6756f3753f11 +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO cginternals/glbinding + REF v2.1.1 + SHA512 6c7251555801272a90c87a9386324eb6993102601a036fc7d9f9b4ebed64c74d011909566e5fc5a34ef8242e24915848296023daa1420c91aaf08cf9635be397 + HEAD_REF master ) -vcpkg_extract_source_archive(${ARCHIVE}) -vcpkg_configure_cmake(SOURCE_PATH ${SOURCE_PATH}) +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + OPTIONS + -DOPTION_BUILD_TESTS=OFF + -DOPTION_BUILD_GPU_TESTS=OFF +) + #vcpkg_build_cmake() vcpkg_install_cmake() diff --git a/ports/glew/portfile.cmake b/ports/glew/portfile.cmake index a18a8ceeb..dddaf51c1 100644 --- a/ports/glew/portfile.cmake +++ b/ports/glew/portfile.cmake @@ -48,4 +48,5 @@ vcpkg_copy_pdbs() file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) -file(INSTALL ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/glew RENAME copyright)
\ No newline at end of file +file(INSTALL ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/glew RENAME copyright) +file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) diff --git a/ports/glew/usage b/ports/glew/usage new file mode 100644 index 000000000..c0678a825 --- /dev/null +++ b/ports/glew/usage @@ -0,0 +1,4 @@ +The package glew is compatible with built-in CMake targets:
+
+ find_package(GLEW REQUIRED)
+ target_link_libraries(main PRIVATE GLEW::GLEW)
diff --git a/ports/glibmm/CONTROL b/ports/glibmm/CONTROL new file mode 100644 index 000000000..52a4e0e05 --- /dev/null +++ b/ports/glibmm/CONTROL @@ -0,0 +1,4 @@ +Source: glibmm +Version: 2.52.1 +Description: This is glibmm, a C++ API for parts of glib that are useful for C++. See http://www.gtkmm.org. +Build-Depends: zlib, pcre, libffi, gettext, libiconv, glib, libsigcpp diff --git a/ports/glibmm/COPYING b/ports/glibmm/COPYING new file mode 100644 index 000000000..5e1f37e13 --- /dev/null +++ b/ports/glibmm/COPYING @@ -0,0 +1,514 @@ + + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations +below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. +^L + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it +becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. +^L + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control +compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. +^L + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. +^L + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. +^L + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. +^L + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply, and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License +may add an explicit geographical distribution limitation excluding those +countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. +^L + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS +^L + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms +of the ordinary General Public License). + + To apply these terms, attach the following notices to the library. +It is safest to attach them to the start of each source file to most +effectively convey the exclusion of warranty; and each file should +have at least the "copyright" line and a pointer to where the full +notice is found. + + + <one line to give the library's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper +mail. + +You should also get your employer (if you work as a programmer) or +your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James +Random Hacker. + + <signature of Ty Coon>, 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + diff --git a/ports/glibmm/README b/ports/glibmm/README new file mode 100644 index 000000000..341c67e43 --- /dev/null +++ b/ports/glibmm/README @@ -0,0 +1,4 @@ +This is glibmm, a C++ API for parts of glib that are useful for C++. +See http://www.gtkmm.org + + diff --git a/ports/glibmm/fix_charset.patch b/ports/glibmm/fix_charset.patch new file mode 100644 index 000000000..8831fc946 --- /dev/null +++ b/ports/glibmm/fix_charset.patch @@ -0,0 +1,2702 @@ +diff --git a/MSVC_Net2013/compose.vcxproj b/MSVC_Net2013/compose.vcxproj +index 4775af3..72a7054 100644 +--- a/MSVC_Net2013/compose.vcxproj ++++ b/MSVC_Net2013/compose.vcxproj +@@ -23,26 +23,27 @@ + <ProjectGuid>{D1C74410-023C-48DE-B636-E8B6D177C306}</ProjectGuid> + <RootNamespace>compose</RootNamespace> + <Keyword>Win32Proj</Keyword> ++ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> +@@ -189,4 +190,4 @@ + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +-</Project> ++</Project> +\ No newline at end of file +diff --git a/MSVC_Net2013/dispatcher.vcxproj b/MSVC_Net2013/dispatcher.vcxproj +index 6c403c0..90d254a 100644 +--- a/MSVC_Net2013/dispatcher.vcxproj ++++ b/MSVC_Net2013/dispatcher.vcxproj +@@ -23,26 +23,27 @@ + <ProjectGuid>{129ECC08-6D30-4884-B824-4AF96EF0A45C}</ProjectGuid> + <RootNamespace>dispatcher</RootNamespace> + <Keyword>Win32Proj</Keyword> ++ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> +@@ -189,4 +190,4 @@ + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +-</Project> ++</Project> +\ No newline at end of file +diff --git a/MSVC_Net2013/dispatcher2.vcxproj b/MSVC_Net2013/dispatcher2.vcxproj +index db6a5fd..9cf6b57 100644 +--- a/MSVC_Net2013/dispatcher2.vcxproj ++++ b/MSVC_Net2013/dispatcher2.vcxproj +@@ -22,26 +22,27 @@ + <ProjectName>dispatcher2</ProjectName> + <ProjectGuid>{18A82706-B645-4DF5-AB09-06B90128BAC5}</ProjectGuid> + <Keyword>Win32Proj</Keyword> ++ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> +@@ -188,4 +189,4 @@ + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +-</Project> ++</Project> +\ No newline at end of file +diff --git a/MSVC_Net2013/gendef.vcxproj b/MSVC_Net2013/gendef.vcxproj +index 8894039..0b2cb08 100644 +--- a/MSVC_Net2013/gendef.vcxproj ++++ b/MSVC_Net2013/gendef.vcxproj +@@ -1,168 +1,169 @@ +-???<?xml version="1.0" encoding="utf-8"?> +-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> +- <ItemGroup Label="ProjectConfigurations"> +- <ProjectConfiguration Include="Debug|Win32"> +- <Configuration>Debug</Configuration> +- <Platform>Win32</Platform> +- </ProjectConfiguration> +- <ProjectConfiguration Include="Debug|x64"> +- <Configuration>Debug</Configuration> +- <Platform>x64</Platform> +- </ProjectConfiguration> +- <ProjectConfiguration Include="Release|Win32"> +- <Configuration>Release</Configuration> +- <Platform>Win32</Platform> +- </ProjectConfiguration> +- <ProjectConfiguration Include="Release|x64"> +- <Configuration>Release</Configuration> +- <Platform>x64</Platform> +- </ProjectConfiguration> +- </ItemGroup> +- <PropertyGroup Label="Globals"> +- <ProjectGuid>{07324745-C9BE-4D65-B08A-9C88188C0C28}</ProjectGuid> +- <Keyword>Win32Proj</Keyword> +- </PropertyGroup> +- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> +- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> +- <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> +- <PlatformToolset>v120</PlatformToolset> +- </PropertyGroup> +- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> +- <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> +- <PlatformToolset>v120</PlatformToolset> +- </PropertyGroup> +- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> +- <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> +- <PlatformToolset>v120</PlatformToolset> +- </PropertyGroup> +- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> +- <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> +- <PlatformToolset>v120</PlatformToolset> +- </PropertyGroup> +- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> +- <ImportGroup Label="ExtensionSettings"> +- </ImportGroup> +- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> +- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> +- <Import Project=".\glibmm-build-defines.props" /> +- </ImportGroup> +- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> +- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> +- <Import Project=".\glibmm-build-defines.props" /> +- </ImportGroup> +- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> +- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> +- <Import Project=".\glibmm-build-defines.props" /> +- </ImportGroup> +- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets"> +- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> +- <Import Project=".\glibmm-build-defines.props" /> +- </ImportGroup> +- <PropertyGroup Label="UserMacros" /> +- <PropertyGroup> +- <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental> +- <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</GenerateManifest> +- <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental> +- <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</GenerateManifest> +- <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental> +- <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</GenerateManifest> +- <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental> +- <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</GenerateManifest> +- </PropertyGroup> +- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> +- <ClCompile> +- <Optimization>Disabled</Optimization> +- <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> +- <MinimalRebuild>true</MinimalRebuild> +- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> +- <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> +- <WarningLevel>Level3</WarningLevel> +- <DebugInformationFormat>EditAndContinue</DebugInformationFormat> +- </ClCompile> +- <Link> +- <GenerateDebugInformation>true</GenerateDebugInformation> +- <ProgramDatabaseFile>$(OutDir)\$(TargetName).pdb</ProgramDatabaseFile> +- <SubSystem>Console</SubSystem> +- <RandomizedBaseAddress>false</RandomizedBaseAddress> +- <DataExecutionPrevention> +- </DataExecutionPrevention> +- <TargetMachine>MachineX86</TargetMachine> ++???<?xml version="1.0" encoding="utf-8"?> ++<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> ++ <ItemGroup Label="ProjectConfigurations"> ++ <ProjectConfiguration Include="Debug|Win32"> ++ <Configuration>Debug</Configuration> ++ <Platform>Win32</Platform> ++ </ProjectConfiguration> ++ <ProjectConfiguration Include="Debug|x64"> ++ <Configuration>Debug</Configuration> ++ <Platform>x64</Platform> ++ </ProjectConfiguration> ++ <ProjectConfiguration Include="Release|Win32"> ++ <Configuration>Release</Configuration> ++ <Platform>Win32</Platform> ++ </ProjectConfiguration> ++ <ProjectConfiguration Include="Release|x64"> ++ <Configuration>Release</Configuration> ++ <Platform>x64</Platform> ++ </ProjectConfiguration> ++ </ItemGroup> ++ <PropertyGroup Label="Globals"> ++ <ProjectGuid>{07324745-C9BE-4D65-B08A-9C88188C0C28}</ProjectGuid> ++ <Keyword>Win32Proj</Keyword> ++ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion> ++ </PropertyGroup> ++ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> ++ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> ++ <ConfigurationType>Application</ConfigurationType> ++ <CharacterSet>Unicode</CharacterSet> ++ <PlatformToolset>v120</PlatformToolset> ++ </PropertyGroup> ++ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> ++ <ConfigurationType>Application</ConfigurationType> ++ <CharacterSet>Unicode</CharacterSet> ++ <PlatformToolset>v120</PlatformToolset> ++ </PropertyGroup> ++ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> ++ <ConfigurationType>Application</ConfigurationType> ++ <CharacterSet>Unicode</CharacterSet> ++ <PlatformToolset>v120</PlatformToolset> ++ </PropertyGroup> ++ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> ++ <ConfigurationType>Application</ConfigurationType> ++ <CharacterSet>Unicode</CharacterSet> ++ <PlatformToolset>v120</PlatformToolset> ++ </PropertyGroup> ++ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> ++ <ImportGroup Label="ExtensionSettings"> ++ </ImportGroup> ++ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> ++ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> ++ <Import Project=".\glibmm-build-defines.props" /> ++ </ImportGroup> ++ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> ++ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> ++ <Import Project=".\glibmm-build-defines.props" /> ++ </ImportGroup> ++ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> ++ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> ++ <Import Project=".\glibmm-build-defines.props" /> ++ </ImportGroup> ++ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets"> ++ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> ++ <Import Project=".\glibmm-build-defines.props" /> ++ </ImportGroup> ++ <PropertyGroup Label="UserMacros" /> ++ <PropertyGroup> ++ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental> ++ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</GenerateManifest> ++ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental> ++ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</GenerateManifest> ++ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental> ++ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</GenerateManifest> ++ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental> ++ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</GenerateManifest> ++ </PropertyGroup> ++ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> ++ <ClCompile> ++ <Optimization>Disabled</Optimization> ++ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> ++ <MinimalRebuild>true</MinimalRebuild> ++ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> ++ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> ++ <WarningLevel>Level3</WarningLevel> ++ <DebugInformationFormat>EditAndContinue</DebugInformationFormat> ++ </ClCompile> ++ <Link> ++ <GenerateDebugInformation>true</GenerateDebugInformation> ++ <ProgramDatabaseFile>$(OutDir)\$(TargetName).pdb</ProgramDatabaseFile> ++ <SubSystem>Console</SubSystem> ++ <RandomizedBaseAddress>false</RandomizedBaseAddress> ++ <DataExecutionPrevention> ++ </DataExecutionPrevention> ++ <TargetMachine>MachineX86</TargetMachine> + <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> +- </Link> +- </ItemDefinitionGroup> +- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> +- <ClCompile> +- <PreprocessorDefinitions>;%(PreprocessorDefinitions)</PreprocessorDefinitions> +- <RuntimeLibrary>MultiThreaded</RuntimeLibrary> +- <WarningLevel>Level3</WarningLevel> +- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> +- </ClCompile> +- <Link> +- <GenerateDebugInformation>true</GenerateDebugInformation> +- <SubSystem>Console</SubSystem> +- <OptimizeReferences>true</OptimizeReferences> +- <EnableCOMDATFolding>true</EnableCOMDATFolding> +- <RandomizedBaseAddress>false</RandomizedBaseAddress> +- <DataExecutionPrevention> +- </DataExecutionPrevention> +- <TargetMachine>MachineX86</TargetMachine> ++ </Link> ++ </ItemDefinitionGroup> ++ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> ++ <ClCompile> ++ <PreprocessorDefinitions>;%(PreprocessorDefinitions)</PreprocessorDefinitions> ++ <RuntimeLibrary>MultiThreaded</RuntimeLibrary> ++ <WarningLevel>Level3</WarningLevel> ++ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> ++ </ClCompile> ++ <Link> ++ <GenerateDebugInformation>true</GenerateDebugInformation> ++ <SubSystem>Console</SubSystem> ++ <OptimizeReferences>true</OptimizeReferences> ++ <EnableCOMDATFolding>true</EnableCOMDATFolding> ++ <RandomizedBaseAddress>false</RandomizedBaseAddress> ++ <DataExecutionPrevention> ++ </DataExecutionPrevention> ++ <TargetMachine>MachineX86</TargetMachine> + <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> +- </Link> +- </ItemDefinitionGroup> +- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> +- <Midl> +- <TargetEnvironment>X64</TargetEnvironment> +- </Midl> +- <ClCompile> +- <Optimization>Disabled</Optimization> +- <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> +- <MinimalRebuild>true</MinimalRebuild> +- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> +- <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> +- <WarningLevel>Level3</WarningLevel> +- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> +- </ClCompile> +- <Link> +- <GenerateDebugInformation>true</GenerateDebugInformation> +- <ProgramDatabaseFile>$(OutDir)\$(TargetName).pdb</ProgramDatabaseFile> +- <SubSystem>Console</SubSystem> +- <RandomizedBaseAddress>false</RandomizedBaseAddress> +- <DataExecutionPrevention> +- </DataExecutionPrevention> +- <TargetMachine>MachineX64</TargetMachine> ++ </Link> ++ </ItemDefinitionGroup> ++ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> ++ <Midl> ++ <TargetEnvironment>X64</TargetEnvironment> ++ </Midl> ++ <ClCompile> ++ <Optimization>Disabled</Optimization> ++ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> ++ <MinimalRebuild>true</MinimalRebuild> ++ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> ++ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> ++ <WarningLevel>Level3</WarningLevel> ++ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> ++ </ClCompile> ++ <Link> ++ <GenerateDebugInformation>true</GenerateDebugInformation> ++ <ProgramDatabaseFile>$(OutDir)\$(TargetName).pdb</ProgramDatabaseFile> ++ <SubSystem>Console</SubSystem> ++ <RandomizedBaseAddress>false</RandomizedBaseAddress> ++ <DataExecutionPrevention> ++ </DataExecutionPrevention> ++ <TargetMachine>MachineX64</TargetMachine> + <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> +- </Link> +- </ItemDefinitionGroup> +- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> +- <Midl> +- <TargetEnvironment>X64</TargetEnvironment> +- </Midl> +- <ClCompile> +- <PreprocessorDefinitions>;%(PreprocessorDefinitions)</PreprocessorDefinitions> +- <RuntimeLibrary>MultiThreaded</RuntimeLibrary> +- <WarningLevel>Level3</WarningLevel> +- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> +- </ClCompile> +- <Link> +- <GenerateDebugInformation>true</GenerateDebugInformation> +- <SubSystem>Console</SubSystem> +- <OptimizeReferences>true</OptimizeReferences> +- <EnableCOMDATFolding>true</EnableCOMDATFolding> +- <RandomizedBaseAddress>false</RandomizedBaseAddress> +- <DataExecutionPrevention> +- </DataExecutionPrevention> +- <TargetMachine>MachineX64</TargetMachine> ++ </Link> ++ </ItemDefinitionGroup> ++ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> ++ <Midl> ++ <TargetEnvironment>X64</TargetEnvironment> ++ </Midl> ++ <ClCompile> ++ <PreprocessorDefinitions>;%(PreprocessorDefinitions)</PreprocessorDefinitions> ++ <RuntimeLibrary>MultiThreaded</RuntimeLibrary> ++ <WarningLevel>Level3</WarningLevel> ++ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> ++ </ClCompile> ++ <Link> ++ <GenerateDebugInformation>true</GenerateDebugInformation> ++ <SubSystem>Console</SubSystem> ++ <OptimizeReferences>true</OptimizeReferences> ++ <EnableCOMDATFolding>true</EnableCOMDATFolding> ++ <RandomizedBaseAddress>false</RandomizedBaseAddress> ++ <DataExecutionPrevention> ++ </DataExecutionPrevention> ++ <TargetMachine>MachineX64</TargetMachine> + <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> +- </Link> +- </ItemDefinitionGroup> +- <ItemGroup> +- <ClCompile Include=".\gendef\gendef.cc" /> +- </ItemGroup> +- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> +- <ImportGroup Label="ExtensionTargets"> +- </ImportGroup> +-</Project> +\ No newline at end of file ++ </Link> ++ </ItemDefinitionGroup> ++ <ItemGroup> ++ <ClCompile Include=".\gendef\gendef.cc" /> ++ </ItemGroup> ++ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> ++ <ImportGroup Label="ExtensionTargets"> ++ </ImportGroup> ++</Project> +\ No newline at end of file +diff --git a/MSVC_Net2013/giomm.vcxproj b/MSVC_Net2013/giomm.vcxproj +index df3c4f8..f9baf6b 100644 +--- a/MSVC_Net2013/giomm.vcxproj ++++ b/MSVC_Net2013/giomm.vcxproj +@@ -1,458 +1,459 @@ +-???<?xml version="1.0" encoding="utf-8"?> +-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> +- <ItemGroup Label="ProjectConfigurations"> +- <ProjectConfiguration Include="Debug|Win32"> +- <Configuration>Debug</Configuration> +- <Platform>Win32</Platform> +- </ProjectConfiguration> +- <ProjectConfiguration Include="Debug|x64"> +- <Configuration>Debug</Configuration> +- <Platform>x64</Platform> +- </ProjectConfiguration> +- <ProjectConfiguration Include="Release|Win32"> +- <Configuration>Release</Configuration> +- <Platform>Win32</Platform> +- </ProjectConfiguration> +- <ProjectConfiguration Include="Release|x64"> +- <Configuration>Release</Configuration> +- <Platform>x64</Platform> +- </ProjectConfiguration> +- </ItemGroup> +- <PropertyGroup Label="Globals"> +- <ProjectName>giomm</ProjectName> +- <ProjectGuid>{EE6C0430-C2C9-425C-8EBA-963FAC3E9832}</ProjectGuid> +- </PropertyGroup> +- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> +- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> +- <ConfigurationType>DynamicLibrary</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> +- <PlatformToolset>v120</PlatformToolset> +- </PropertyGroup> +- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> +- <ConfigurationType>DynamicLibrary</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> +- <PlatformToolset>v120</PlatformToolset> +- </PropertyGroup> +- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> +- <ConfigurationType>DynamicLibrary</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> +- <PlatformToolset>v120</PlatformToolset> +- </PropertyGroup> +- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> +- <ConfigurationType>DynamicLibrary</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> +- <PlatformToolset>v120</PlatformToolset> +- </PropertyGroup> +- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> +- <ImportGroup Label="ExtensionSettings"> +- </ImportGroup> +- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> +- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> +- <Import Project=".\glibmm-build-defines.props" /> +- </ImportGroup> +- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> +- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> +- <Import Project=".\glibmm-build-defines.props" /> +- </ImportGroup> +- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> +- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> +- <Import Project=".\glibmm-build-defines.props" /> +- </ImportGroup> +- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets"> +- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> +- <Import Project=".\glibmm-build-defines.props" /> +- </ImportGroup> +- <PropertyGroup Label="UserMacros" /> +- <PropertyGroup> +- </PropertyGroup> +- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> +- <ClCompile> +- <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions> +- <Optimization>Disabled</Optimization> ++???<?xml version="1.0" encoding="utf-8"?> ++<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> ++ <ItemGroup Label="ProjectConfigurations"> ++ <ProjectConfiguration Include="Debug|Win32"> ++ <Configuration>Debug</Configuration> ++ <Platform>Win32</Platform> ++ </ProjectConfiguration> ++ <ProjectConfiguration Include="Debug|x64"> ++ <Configuration>Debug</Configuration> ++ <Platform>x64</Platform> ++ </ProjectConfiguration> ++ <ProjectConfiguration Include="Release|Win32"> ++ <Configuration>Release</Configuration> ++ <Platform>Win32</Platform> ++ </ProjectConfiguration> ++ <ProjectConfiguration Include="Release|x64"> ++ <Configuration>Release</Configuration> ++ <Platform>x64</Platform> ++ </ProjectConfiguration> ++ </ItemGroup> ++ <PropertyGroup Label="Globals"> ++ <ProjectName>giomm</ProjectName> ++ <ProjectGuid>{EE6C0430-C2C9-425C-8EBA-963FAC3E9832}</ProjectGuid> ++ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion> ++ </PropertyGroup> ++ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> ++ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> ++ <ConfigurationType>DynamicLibrary</ConfigurationType> ++ <CharacterSet>Unicode</CharacterSet> ++ <PlatformToolset>v120</PlatformToolset> ++ </PropertyGroup> ++ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> ++ <ConfigurationType>DynamicLibrary</ConfigurationType> ++ <CharacterSet>Unicode</CharacterSet> ++ <PlatformToolset>v120</PlatformToolset> ++ </PropertyGroup> ++ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> ++ <ConfigurationType>DynamicLibrary</ConfigurationType> ++ <CharacterSet>Unicode</CharacterSet> ++ <PlatformToolset>v120</PlatformToolset> ++ </PropertyGroup> ++ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> ++ <ConfigurationType>DynamicLibrary</ConfigurationType> ++ <CharacterSet>Unicode</CharacterSet> ++ <PlatformToolset>v120</PlatformToolset> ++ </PropertyGroup> ++ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> ++ <ImportGroup Label="ExtensionSettings"> ++ </ImportGroup> ++ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> ++ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> ++ <Import Project=".\glibmm-build-defines.props" /> ++ </ImportGroup> ++ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> ++ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> ++ <Import Project=".\glibmm-build-defines.props" /> ++ </ImportGroup> ++ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> ++ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> ++ <Import Project=".\glibmm-build-defines.props" /> ++ </ImportGroup> ++ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets"> ++ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> ++ <Import Project=".\glibmm-build-defines.props" /> ++ </ImportGroup> ++ <PropertyGroup Label="UserMacros" /> ++ <PropertyGroup> ++ </PropertyGroup> ++ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> ++ <ClCompile> ++ <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions> ++ <Optimization>Disabled</Optimization> + <AdditionalIncludeDirectories>.\giomm;..\gio;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> +- <PreprocessorDefinitions>_DEBUG;$(GioMMBuildDefs);%(PreprocessorDefinitions)</PreprocessorDefinitions> +- <MinimalRebuild>true</MinimalRebuild> +- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> +- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> +- <WarningLevel>Level3</WarningLevel> +- <DebugInformationFormat>EditAndContinue</DebugInformationFormat> +- </ClCompile> +- <PreLinkEvent> +- <Message>Generate giomm def file</Message> +- <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(ProjectName)$(DebugDllSuffix).dll $(IntDir)*.obj</Command> +- </PreLinkEvent> +- <Link> ++ <PreprocessorDefinitions>_DEBUG;$(GioMMBuildDefs);%(PreprocessorDefinitions)</PreprocessorDefinitions> ++ <MinimalRebuild>true</MinimalRebuild> ++ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> ++ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> ++ <WarningLevel>Level3</WarningLevel> ++ <DebugInformationFormat>EditAndContinue</DebugInformationFormat> ++ </ClCompile> ++ <PreLinkEvent> ++ <Message>Generate giomm def file</Message> ++ <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(ProjectName)$(DebugDllSuffix).dll $(IntDir)*.obj</Command> ++ </PreLinkEvent> ++ <Link> + <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> +- <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> +- <OutputFile>$(OutDir)\$(ProjectName)$(DebugDllSuffix).dll</OutputFile> +- <ImportLibrary>$(TargetDir)$(ProjectName)$(DebugDllSuffix).lib</ImportLibrary> +- <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile> +- <GenerateDebugInformation>true</GenerateDebugInformation> +- <RandomizedBaseAddress>false</RandomizedBaseAddress> +- <DataExecutionPrevention> +- </DataExecutionPrevention> +- </Link> +- </ItemDefinitionGroup> +- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> +- <Midl> +- <TargetEnvironment>X64</TargetEnvironment> +- </Midl> +- <ClCompile> +- <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions> +- <Optimization>Disabled</Optimization> ++ <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> ++ <OutputFile>$(OutDir)\$(ProjectName)$(DebugDllSuffix).dll</OutputFile> ++ <ImportLibrary>$(TargetDir)$(ProjectName)$(DebugDllSuffix).lib</ImportLibrary> ++ <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile> ++ <GenerateDebugInformation>true</GenerateDebugInformation> ++ <RandomizedBaseAddress>false</RandomizedBaseAddress> ++ <DataExecutionPrevention> ++ </DataExecutionPrevention> ++ </Link> ++ </ItemDefinitionGroup> ++ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> ++ <Midl> ++ <TargetEnvironment>X64</TargetEnvironment> ++ </Midl> ++ <ClCompile> ++ <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions> ++ <Optimization>Disabled</Optimization> + <AdditionalIncludeDirectories>.\giomm;..\gio;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> +- <PreprocessorDefinitions>_DEBUG;$(GioMMBuildDefs);%(PreprocessorDefinitions)</PreprocessorDefinitions> +- <MinimalRebuild>true</MinimalRebuild> +- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> +- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> +- <WarningLevel>Level3</WarningLevel> +- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> +- </ClCompile> +- <PreLinkEvent> +- <Message>Generate giomm def file</Message> +- <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(ProjectName)$(DebugDllSuffix).dll $(IntDir)*.obj</Command> +- </PreLinkEvent> +- <Link> ++ <PreprocessorDefinitions>_DEBUG;$(GioMMBuildDefs);%(PreprocessorDefinitions)</PreprocessorDefinitions> ++ <MinimalRebuild>true</MinimalRebuild> ++ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> ++ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> ++ <WarningLevel>Level3</WarningLevel> ++ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> ++ </ClCompile> ++ <PreLinkEvent> ++ <Message>Generate giomm def file</Message> ++ <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(ProjectName)$(DebugDllSuffix).dll $(IntDir)*.obj</Command> ++ </PreLinkEvent> ++ <Link> + <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> +- <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> +- <OutputFile>$(OutDir)\$(ProjectName)$(DebugDllSuffix).dll</OutputFile> +- <ImportLibrary>$(TargetDir)$(ProjectName)$(DebugDllSuffix).lib</ImportLibrary> +- <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile> +- <GenerateDebugInformation>true</GenerateDebugInformation> +- <RandomizedBaseAddress>false</RandomizedBaseAddress> +- <DataExecutionPrevention> +- </DataExecutionPrevention> +- <TargetMachine>MachineX64</TargetMachine> +- </Link> +- </ItemDefinitionGroup> +- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> +- <ClCompile> +- <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions> ++ <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> ++ <OutputFile>$(OutDir)\$(ProjectName)$(DebugDllSuffix).dll</OutputFile> ++ <ImportLibrary>$(TargetDir)$(ProjectName)$(DebugDllSuffix).lib</ImportLibrary> ++ <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile> ++ <GenerateDebugInformation>true</GenerateDebugInformation> ++ <RandomizedBaseAddress>false</RandomizedBaseAddress> ++ <DataExecutionPrevention> ++ </DataExecutionPrevention> ++ <TargetMachine>MachineX64</TargetMachine> ++ </Link> ++ </ItemDefinitionGroup> ++ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> ++ <ClCompile> ++ <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions> + <AdditionalIncludeDirectories>.\giomm;..\gio;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> +- <PreprocessorDefinitions>$(GioMMBuildDefs);%(PreprocessorDefinitions)</PreprocessorDefinitions> +- <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> +- <WarningLevel>Level3</WarningLevel> +- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> +- </ClCompile> +- <PreLinkEvent> +- <Message>Generate giomm def file</Message> +- <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(ProjectName)$(ReleaseDllSuffix).dll $(IntDir)*.obj</Command> +- </PreLinkEvent> +- <Link> ++ <PreprocessorDefinitions>$(GioMMBuildDefs);%(PreprocessorDefinitions)</PreprocessorDefinitions> ++ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> ++ <WarningLevel>Level3</WarningLevel> ++ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> ++ </ClCompile> ++ <PreLinkEvent> ++ <Message>Generate giomm def file</Message> ++ <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(ProjectName)$(ReleaseDllSuffix).dll $(IntDir)*.obj</Command> ++ </PreLinkEvent> ++ <Link> + <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> +- <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> +- <OutputFile>$(OutDir)\$(ProjectName)$(ReleaseDllSuffix).dll</OutputFile> +- <ImportLibrary>$(TargetDir)$(ProjectName)$(ReleaseDllSuffix).lib</ImportLibrary> +- <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile> +- <RandomizedBaseAddress>false</RandomizedBaseAddress> +- <GenerateDebugInformation>true</GenerateDebugInformation> +- <ProgramDatabaseFile>$(OutDir)\$(ProjectName)$(ReleaseDllSuffix).pdb</ProgramDatabaseFile> +- <OptimizeReferences>true</OptimizeReferences> +- <DataExecutionPrevention> +- </DataExecutionPrevention> +- </Link> +- </ItemDefinitionGroup> +- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> +- <Midl> +- <TargetEnvironment>X64</TargetEnvironment> +- </Midl> +- <ClCompile> +- <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions> ++ <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> ++ <OutputFile>$(OutDir)\$(ProjectName)$(ReleaseDllSuffix).dll</OutputFile> ++ <ImportLibrary>$(TargetDir)$(ProjectName)$(ReleaseDllSuffix).lib</ImportLibrary> ++ <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile> ++ <RandomizedBaseAddress>false</RandomizedBaseAddress> ++ <GenerateDebugInformation>true</GenerateDebugInformation> ++ <ProgramDatabaseFile>$(OutDir)\$(ProjectName)$(ReleaseDllSuffix).pdb</ProgramDatabaseFile> ++ <OptimizeReferences>true</OptimizeReferences> ++ <DataExecutionPrevention> ++ </DataExecutionPrevention> ++ </Link> ++ </ItemDefinitionGroup> ++ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> ++ <Midl> ++ <TargetEnvironment>X64</TargetEnvironment> ++ </Midl> ++ <ClCompile> ++ <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions> + <AdditionalIncludeDirectories>.\giomm;..\gio;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> +- <PreprocessorDefinitions>$(GioMMBuildDefs);%(PreprocessorDefinitions)</PreprocessorDefinitions> +- <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> +- <WarningLevel>Level3</WarningLevel> +- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> +- </ClCompile> +- <PreLinkEvent> +- <Message>Generate giomm def file</Message> +- <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(ProjectName)$(ReleaseDllSuffix).dll $(IntDir)*.obj</Command> +- </PreLinkEvent> +- <Link> ++ <PreprocessorDefinitions>$(GioMMBuildDefs);%(PreprocessorDefinitions)</PreprocessorDefinitions> ++ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> ++ <WarningLevel>Level3</WarningLevel> ++ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> ++ </ClCompile> ++ <PreLinkEvent> ++ <Message>Generate giomm def file</Message> ++ <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(ProjectName)$(ReleaseDllSuffix).dll $(IntDir)*.obj</Command> ++ </PreLinkEvent> ++ <Link> + <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> +- <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> +- <OutputFile>$(OutDir)\$(ProjectName)$(ReleaseDllSuffix).dll</OutputFile> +- <ImportLibrary>$(TargetDir)$(ProjectName)$(ReleaseDllSuffix).lib</ImportLibrary> +- <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile> +- <RandomizedBaseAddress>false</RandomizedBaseAddress> +- <GenerateDebugInformation>true</GenerateDebugInformation> +- <ProgramDatabaseFile>$(OutDir)\$(ProjectName)$(ReleaseDllSuffix).pdb</ProgramDatabaseFile> +- <OptimizeReferences>true</OptimizeReferences> +- <DataExecutionPrevention> +- </DataExecutionPrevention> +- <TargetMachine>MachineX64</TargetMachine> +- </Link> +- </ItemDefinitionGroup> +- <ItemGroup> +- <ClCompile Include="..\gio\giomm\action.cc" /> +- <ClCompile Include="..\gio\giomm\actiongroup.cc" /> +- <ClCompile Include="..\gio\giomm\actionmap.cc" /> +- <ClCompile Include="..\gio\giomm\appinfo.cc" /> +- <ClCompile Include="..\gio\giomm\applaunchcontext.cc" /> +- <ClCompile Include="..\gio\giomm\application.cc" /> +- <ClCompile Include="..\gio\giomm\applicationcommandline.cc" /> +- <ClCompile Include="..\gio\giomm\asyncresult.cc" /> +- <ClCompile Include="..\gio\giomm\asyncinitable.cc" /> +- <ClCompile Include="..\gio\giomm\bufferedinputstream.cc" /> +- <ClCompile Include="..\gio\giomm\bufferedoutputstream.cc" /> +- <ClCompile Include="..\gio\giomm\cancellable.cc" /> +- <ClCompile Include="..\gio\giomm\charsetconverter.cc" /> +- <ClCompile Include="..\gio\giomm\contenttype.cc" /> +- <ClCompile Include="..\gio\giomm\converter.cc" /> +- <ClCompile Include="..\gio\giomm\converterinputstream.cc" /> +- <ClCompile Include="..\gio\giomm\converteroutputstream.cc" /> +- <ClCompile Include="..\gio\giomm\credentials.cc" /> +- <ClCompile Include="..\gio\giomm\datainputstream.cc" /> +- <ClCompile Include="..\gio\giomm\dataoutputstream.cc" /> +- <ClCompile Include="..\gio\giomm\dbusactiongroup.cc" /> +- <ClCompile Include="..\gio\giomm\dbusaddress.cc" /> +- <ClCompile Include="..\gio\giomm\dbusauthobserver.cc" /> +- <ClCompile Include="..\gio\giomm\dbusconnection.cc" /> +- <ClCompile Include="..\gio\giomm\dbuserror.cc" /> +- <ClCompile Include="..\gio\giomm\dbuserrorutils.cc" /> +- <ClCompile Include="..\gio\giomm\dbusinterface.cc" /> +- <ClCompile Include="..\gio\giomm\dbusinterfaceskeleton.cc" /> +- <ClCompile Include="..\gio\giomm\dbusinterfacevtable.cc" /> +- <ClCompile Include="..\gio\giomm\dbusintrospection.cc" /> +- <ClCompile Include="..\gio\giomm\dbusmenumodel.cc" /> +- <ClCompile Include="..\gio\giomm\dbusmessage.cc" /> +- <ClCompile Include="..\gio\giomm\dbusmethodinvocation.cc" /> +- <ClCompile Include="..\gio\giomm\dbusobject.cc" /> +- <ClCompile Include="..\gio\giomm\dbusownname.cc" /> +- <ClCompile Include="..\gio\giomm\dbusproxy.cc" /> +- <ClCompile Include="..\gio\giomm\dbusserver.cc" /> +- <ClCompile Include="..\gio\giomm\dbussubtreevtable.cc" /> +- <ClCompile Include="..\gio\giomm\dbusutils.cc" /> +- <ClCompile Include="..\gio\giomm\dbuswatchname.cc" /> +- <ClCompile Include="..\gio\giomm\drive.cc" /> +- <ClCompile Include="..\gio\giomm\emblem.cc" /> +- <ClCompile Include="..\gio\giomm\emblemedicon.cc" /> +- <ClCompile Include="..\gio\giomm\enums.cc" /> +- <ClCompile Include="..\gio\giomm\error.cc" /> +- <ClCompile Include="..\gio\giomm\file.cc" /> +- <ClCompile Include="..\gio\giomm\fileattributeinfo.cc" /> +- <ClCompile Include="..\gio\giomm\fileattributeinfolist.cc" /> +- <ClCompile Include="..\gio\giomm\fileenumerator.cc" /> +- <ClCompile Include="..\gio\giomm\fileicon.cc" /> +- <ClCompile Include="..\gio\giomm\fileinfo.cc" /> +- <ClCompile Include="..\gio\giomm\fileinputstream.cc" /> +- <ClCompile Include="..\gio\giomm\fileiostream.cc" /> +- <ClCompile Include="..\gio\giomm\filemonitor.cc" /> +- <ClCompile Include="..\gio\giomm\filenamecompleter.cc" /> +- <ClCompile Include="..\gio\giomm\fileoutputstream.cc" /> +- <ClCompile Include="..\gio\giomm\filterinputstream.cc" /> +- <ClCompile Include="..\gio\giomm\filteroutputstream.cc" /> +- <ClCompile Include="..\gio\giomm\icon.cc" /> +- <ClCompile Include="..\gio\giomm\inetaddress.cc" /> +- <ClCompile Include="..\gio\giomm\inetsocketaddress.cc" /> +- <ClCompile Include="..\gio\giomm\init.cc" /> +- <ClCompile Include="..\gio\giomm\initable.cc" /> +- <ClCompile Include="..\gio\giomm\inputstream.cc" /> +- <ClCompile Include="..\gio\giomm\iostream.cc" /> +- <ClCompile Include="..\gio\giomm\listmodel.cc" /> +- <ClCompile Include="..\gio\giomm\liststore.cc" /> +- <ClCompile Include="..\gio\giomm\loadableicon.cc" /> +- <ClCompile Include="..\gio\giomm\memoryinputstream.cc" /> +- <ClCompile Include="..\gio\giomm\memoryoutputstream.cc" /> +- <ClCompile Include="..\gio\giomm\menu.cc" /> +- <ClCompile Include="..\gio\giomm\menuattributeiter.cc" /> +- <ClCompile Include="..\gio\giomm\menuitem.cc" /> +- <ClCompile Include="..\gio\giomm\menulinkiter.cc" /> +- <ClCompile Include="..\gio\giomm\menumodel.cc" /> +- <ClCompile Include="..\gio\giomm\mount.cc" /> +- <ClCompile Include="..\gio\giomm\mountoperation.cc" /> +- <ClCompile Include="..\gio\giomm\networkaddress.cc" /> +- <ClCompile Include="..\gio\giomm\networkmonitor.cc" /> +- <ClCompile Include="..\gio\giomm\networkservice.cc" /> +- <ClCompile Include="..\gio\giomm\notification.cc" /> +- <ClCompile Include="..\gio\giomm\outputstream.cc" /> +- <ClCompile Include="..\gio\giomm\permission.cc" /> +- <ClCompile Include="..\gio\giomm\pollableinputstream.cc" /> +- <ClCompile Include="..\gio\giomm\pollableoutputstream.cc" /> +- <ClCompile Include="..\gio\giomm\proxy.cc" /> +- <ClCompile Include="..\gio\giomm\proxyaddress.cc" /> +- <ClCompile Include="..\gio\giomm\proxyresolver.cc" /> +- <ClCompile Include="..\gio\giomm\remoteactiongroup.cc" /> +- <ClCompile Include="..\gio\giomm\resolver.cc" /> +- <ClCompile Include="..\gio\giomm\resource.cc" /> +- <ClCompile Include="..\gio\giomm\seekable.cc" /> +- <ClCompile Include="..\gio\giomm\settings.cc" /> +- <ClCompile Include="..\gio\giomm\settingsschema.cc" /> +- <ClCompile Include="..\gio\giomm\settingsschemakey.cc" /> +- <ClCompile Include="..\gio\giomm\settingsschemasource.cc" /> +- <ClCompile Include="..\gio\giomm\simpleaction.cc" /> +- <ClCompile Include="..\gio\giomm\simpleactiongroup.cc" /> +- <ClCompile Include="..\gio\giomm\simpleiostream.cc" /> +- <ClCompile Include="..\gio\giomm\simplepermission.cc" /> +- <ClCompile Include="..\gio\giomm\slot_async.cc" /> +- <ClCompile Include="..\gio\giomm\socket.cc" /> +- <ClCompile Include="..\gio\giomm\socketaddress.cc" /> +- <ClCompile Include="..\gio\giomm\socketaddressenumerator.cc" /> +- <ClCompile Include="..\gio\giomm\socketclient.cc" /> +- <ClCompile Include="..\gio\giomm\socketconnectable.cc" /> +- <ClCompile Include="..\gio\giomm\socketconnection.cc" /> +- <ClCompile Include="..\gio\giomm\socketcontrolmessage.cc" /> +- <ClCompile Include="..\gio\giomm\socketlistener.cc" /> +- <ClCompile Include="..\gio\giomm\socketservice.cc" /> +- <ClCompile Include="..\gio\giomm\socketsource.cc" /> +- <ClCompile Include="..\gio\giomm\srvtarget.cc" /> +- <ClCompile Include="..\gio\giomm\tcpconnection.cc" /> +- <ClCompile Include="..\gio\giomm\tcpwrapperconnection.cc" /> +- <ClCompile Include="..\gio\giomm\themedicon.cc" /> +- <ClCompile Include="..\gio\giomm\threadedsocketservice.cc" /> +- <ClCompile Include="..\gio\giomm\tlscertificate.cc" /> +- <ClCompile Include="..\gio\giomm\tlsclientconnection.cc" /> +- <ClCompile Include="..\gio\giomm\tlsconnection.cc" /> +- <ClCompile Include="..\gio\giomm\tlsdatabase.cc" /> +- <ClCompile Include="..\gio\giomm\tlsinteraction.cc" /> +- <ClCompile Include="..\gio\giomm\tlspassword.cc" /> +- <ClCompile Include="..\gio\giomm\tlsserverconnection.cc" /> +- <ClCompile Include="..\gio\giomm\volume.cc" /> +- <ClCompile Include="..\gio\giomm\volumemonitor.cc" /> +- <ClCompile Include="..\gio\giomm\wrap_init.cc" /> +- <ClCompile Include="..\gio\giomm\zlibcompressor.cc" /> +- <ClCompile Include="..\gio\giomm\zlibdecompressor.cc" /> +- </ItemGroup> +- <ItemGroup> +- <ClInclude Include="..\gio\giomm\action.h" /> +- <ClInclude Include="..\gio\giomm\actiongroup.h" /> +- <ClInclude Include="..\gio\giomm\actionmap.h" /> +- <ClInclude Include="..\gio\giomm\appinfo.h" /> +- <ClInclude Include="..\gio\giomm\applaunchcontext.h" /> +- <ClInclude Include="..\gio\giomm\application.h" /> +- <ClInclude Include="..\gio\giomm\applicationcommandline.h" /> +- <ClInclude Include="..\gio\giomm\asyncinitable.h" /> +- <ClInclude Include="..\gio\giomm\asyncresult.h" /> +- <ClInclude Include="..\gio\giomm\bufferedinputstream.h" /> +- <ClInclude Include="..\gio\giomm\bufferedoutputstream.h" /> +- <ClInclude Include="..\gio\giomm\cancellable.h" /> +- <ClInclude Include="..\gio\giomm\charsetconverter.h" /> +- <ClInclude Include="..\gio\giomm\contenttype.h" /> +- <ClInclude Include="..\gio\giomm\converter.h" /> +- <ClInclude Include="..\gio\giomm\converterinputstream.h" /> +- <ClInclude Include="..\gio\giomm\converteroutputstream.h" /> +- <ClInclude Include="..\gio\giomm\credentials.h" /> +- <ClInclude Include="..\gio\giomm\datainputstream.h" /> +- <ClInclude Include="..\gio\giomm\dataoutputstream.h" /> +- <ClInclude Include="..\gio\giomm\dbusactiongroup.h" /> +- <ClInclude Include="..\gio\giomm\dbusaddress.h" /> +- <ClInclude Include="..\gio\giomm\dbusauthobserver.h" /> +- <ClInclude Include="..\gio\giomm\dbusconnection.h" /> +- <ClInclude Include="..\gio\giomm\dbuserror.h" /> +- <ClInclude Include="..\gio\giomm\dbuserrorutils.h" /> +- <ClInclude Include="..\gio\giomm\dbusinterface.h" /> +- <ClInclude Include="..\gio\giomm\dbusinterfaceskeleton.h" /> +- <ClInclude Include="..\gio\giomm\dbusinterfacevtable.h" /> +- <ClInclude Include="..\gio\giomm\dbusintrospection.h" /> +- <ClInclude Include="..\gio\giomm\dbusmenumodel.h" /> +- <ClInclude Include="..\gio\giomm\dbusmessage.h" /> +- <ClInclude Include="..\gio\giomm\dbusmethodinvocation.h" /> +- <ClInclude Include="..\gio\giomm\dbusobject.h" /> +- <ClInclude Include="..\gio\giomm\dbusownname.h" /> +- <ClInclude Include="..\gio\giomm\dbusproxy.h" /> +- <ClInclude Include="..\gio\giomm\dbusserver.h" /> +- <ClInclude Include="..\gio\giomm\dbussubtreevtable.h" /> +- <ClInclude Include="..\gio\giomm\dbusutils.h" /> +- <ClInclude Include="..\gio\giomm\dbuswatchname.h" /> +- <ClInclude Include="..\gio\giomm\drive.h" /> +- <ClInclude Include="..\gio\giomm\emblem.h" /> +- <ClInclude Include="..\gio\giomm\emblemedicon.h" /> +- <ClInclude Include="..\gio\giomm\enums.h" /> +- <ClInclude Include="..\gio\giomm\error.h" /> +- <ClInclude Include="..\gio\giomm\file.h" /> +- <ClInclude Include="..\gio\giomm\fileattributeinfo.h" /> +- <ClInclude Include="..\gio\giomm\fileattributeinfolist.h" /> +- <ClInclude Include="..\gio\giomm\fileenumerator.h" /> +- <ClInclude Include="..\gio\giomm\fileicon.h" /> +- <ClInclude Include="..\gio\giomm\fileinfo.h" /> +- <ClInclude Include="..\gio\giomm\fileinputstream.h" /> +- <ClInclude Include="..\gio\giomm\fileiostream.h" /> +- <ClInclude Include="..\gio\giomm\filemonitor.h" /> +- <ClInclude Include="..\gio\giomm\filenamecompleter.h" /> +- <ClInclude Include="..\gio\giomm\fileoutputstream.h" /> +- <ClInclude Include="..\gio\giomm\filterinputstream.h" /> +- <ClInclude Include="..\gio\giomm\filteroutputstream.h" /> +- <ClInclude Include="..\gio\giomm\icon.h" /> +- <ClInclude Include="..\gio\giomm\inetaddress.h" /> +- <ClInclude Include="..\gio\giomm\inetsocketaddress.h" /> +- <ClInclude Include="..\gio\giomm\init.h" /> +- <ClInclude Include="..\gio\giomm\initable.h" /> +- <ClInclude Include="..\gio\giomm\inputstream.h" /> +- <ClInclude Include="..\gio\giomm\iostream.h" /> +- <ClInclude Include="..\gio\giomm\listmodel.h" /> +- <ClInclude Include="..\gio\giomm\liststore.h" /> +- <ClInclude Include="..\gio\giomm\loadableicon.h" /> +- <ClInclude Include="..\gio\giomm\memoryinputstream.h" /> +- <ClInclude Include="..\gio\giomm\memoryoutputstream.h" /> +- <ClInclude Include="..\gio\giomm\menu.h" /> +- <ClInclude Include="..\gio\giomm\menuattributeiter.h" /> +- <ClInclude Include="..\gio\giomm\menuitem.h" /> +- <ClInclude Include="..\gio\giomm\menulinkiter.h" /> +- <ClInclude Include="..\gio\giomm\menumodel.h" /> +- <ClInclude Include="..\gio\giomm\mount.h" /> +- <ClInclude Include="..\gio\giomm\mountoperation.h" /> +- <ClInclude Include="..\gio\giomm\networkaddress.h" /> +- <ClInclude Include="..\gio\giomm\networkmonitor.h" /> +- <ClInclude Include="..\gio\giomm\networkservice.h" /> +- <ClInclude Include="..\gio\giomm\notification.h" /> +- <ClInclude Include="..\gio\giomm\outputstream.h" /> +- <ClInclude Include="..\gio\giomm\permission.h" /> +- <ClInclude Include="..\gio\giomm\pollableinputstream.h" /> +- <ClInclude Include="..\gio\giomm\pollableoutputstream.h" /> +- <ClInclude Include="..\gio\giomm\proxy.h" /> +- <ClInclude Include="..\gio\giomm\proxyaddress.h" /> +- <ClInclude Include="..\gio\giomm\proxyresolver.h" /> +- <ClInclude Include="..\gio\giomm\remoteactiongroup.h" /> +- <ClInclude Include="..\gio\giomm\resolver.h" /> +- <ClInclude Include="..\gio\giomm\resource.h" /> +- <ClInclude Include="..\gio\giomm\seekable.h" /> +- <ClInclude Include="..\gio\giomm\settings.h" /> +- <ClInclude Include="..\gio\giomm\settingsschema.h" /> +- <ClInclude Include="..\gio\giomm\settingsschemakey.h" /> +- <ClInclude Include="..\gio\giomm\settingsschemasource.h" /> +- <ClInclude Include="..\gio\giomm\simpleaction.h" /> +- <ClInclude Include="..\gio\giomm\simpleactiongroup.h" /> +- <ClInclude Include="..\gio\giomm\simpleiostream.h" /> +- <ClInclude Include="..\gio\giomm\simplepermission.h" /> +- <ClInclude Include="..\gio\giomm\slot_async.h" /> +- <ClInclude Include="..\gio\giomm\socket.h" /> +- <ClInclude Include="..\gio\giomm\socketaddress.h" /> +- <ClInclude Include="..\gio\giomm\socketaddressenumerator.h" /> +- <ClInclude Include="..\gio\giomm\socketclient.h" /> +- <ClInclude Include="..\gio\giomm\socketconnectable.h" /> +- <ClInclude Include="..\gio\giomm\socketconnection.h" /> +- <ClInclude Include="..\gio\giomm\socketcontrolmessage.h" /> +- <ClInclude Include="..\gio\giomm\socketlistener.h" /> +- <ClInclude Include="..\gio\giomm\socketservice.h" /> +- <ClInclude Include="..\gio\giomm\socketsource.h" /> +- <ClInclude Include="..\gio\giomm\srvtarget.h" /> +- <ClInclude Include="..\gio\giomm\tcpconnection.h" /> +- <ClInclude Include="..\gio\giomm\tcpwrapperconnection.h" /> +- <ClInclude Include="..\gio\giomm\themedicon.h" /> +- <ClInclude Include="..\gio\giomm\threadedsocketservice.h" /> +- <ClInclude Include="..\gio\giomm\tlscertificate.h" /> +- <ClInclude Include="..\gio\giomm\tlsclientconnection.h" /> +- <ClInclude Include="..\gio\giomm\tlsconnection.h" /> +- <ClInclude Include="..\gio\giomm\tlsdatabase.h" /> +- <ClInclude Include="..\gio\giomm\tlsinteraction.h" /> +- <ClInclude Include="..\gio\giomm\tlspassword.h" /> +- <ClInclude Include="..\gio\giomm\tlsserverconnection.h" /> +- <ClInclude Include="..\gio\giomm\volume.h" /> +- <ClInclude Include="..\gio\giomm\volumemonitor.h" /> +- <ClInclude Include="..\gio\giomm\wrap_init.h" /> +- <ClInclude Include="..\gio\giomm\zlibcompressor.h" /> +- <ClInclude Include="..\gio\giomm\zlibdecompressor.h" /> +- </ItemGroup> +- <ItemGroup> +- <ResourceCompile Include=".\giomm\giomm.rc" /> +- </ItemGroup> +- <ItemGroup> +- <ProjectReference Include="glibmm.vcxproj"> +- <Project>{58b2b53c-c4ff-47fd-817b-095e45b7f7d4}</Project> +- <ReferenceOutputAssembly>false</ReferenceOutputAssembly> +- </ProjectReference> +- </ItemGroup> +- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> +- <ImportGroup Label="ExtensionTargets"> +- </ImportGroup> +-</Project> +\ No newline at end of file ++ <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> ++ <OutputFile>$(OutDir)\$(ProjectName)$(ReleaseDllSuffix).dll</OutputFile> ++ <ImportLibrary>$(TargetDir)$(ProjectName)$(ReleaseDllSuffix).lib</ImportLibrary> ++ <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile> ++ <RandomizedBaseAddress>false</RandomizedBaseAddress> ++ <GenerateDebugInformation>true</GenerateDebugInformation> ++ <ProgramDatabaseFile>$(OutDir)\$(ProjectName)$(ReleaseDllSuffix).pdb</ProgramDatabaseFile> ++ <OptimizeReferences>true</OptimizeReferences> ++ <DataExecutionPrevention> ++ </DataExecutionPrevention> ++ <TargetMachine>MachineX64</TargetMachine> ++ </Link> ++ </ItemDefinitionGroup> ++ <ItemGroup> ++ <ClCompile Include="..\gio\giomm\action.cc" /> ++ <ClCompile Include="..\gio\giomm\actiongroup.cc" /> ++ <ClCompile Include="..\gio\giomm\actionmap.cc" /> ++ <ClCompile Include="..\gio\giomm\appinfo.cc" /> ++ <ClCompile Include="..\gio\giomm\applaunchcontext.cc" /> ++ <ClCompile Include="..\gio\giomm\application.cc" /> ++ <ClCompile Include="..\gio\giomm\applicationcommandline.cc" /> ++ <ClCompile Include="..\gio\giomm\asyncresult.cc" /> ++ <ClCompile Include="..\gio\giomm\asyncinitable.cc" /> ++ <ClCompile Include="..\gio\giomm\bufferedinputstream.cc" /> ++ <ClCompile Include="..\gio\giomm\bufferedoutputstream.cc" /> ++ <ClCompile Include="..\gio\giomm\cancellable.cc" /> ++ <ClCompile Include="..\gio\giomm\charsetconverter.cc" /> ++ <ClCompile Include="..\gio\giomm\contenttype.cc" /> ++ <ClCompile Include="..\gio\giomm\converter.cc" /> ++ <ClCompile Include="..\gio\giomm\converterinputstream.cc" /> ++ <ClCompile Include="..\gio\giomm\converteroutputstream.cc" /> ++ <ClCompile Include="..\gio\giomm\credentials.cc" /> ++ <ClCompile Include="..\gio\giomm\datainputstream.cc" /> ++ <ClCompile Include="..\gio\giomm\dataoutputstream.cc" /> ++ <ClCompile Include="..\gio\giomm\dbusactiongroup.cc" /> ++ <ClCompile Include="..\gio\giomm\dbusaddress.cc" /> ++ <ClCompile Include="..\gio\giomm\dbusauthobserver.cc" /> ++ <ClCompile Include="..\gio\giomm\dbusconnection.cc" /> ++ <ClCompile Include="..\gio\giomm\dbuserror.cc" /> ++ <ClCompile Include="..\gio\giomm\dbuserrorutils.cc" /> ++ <ClCompile Include="..\gio\giomm\dbusinterface.cc" /> ++ <ClCompile Include="..\gio\giomm\dbusinterfaceskeleton.cc" /> ++ <ClCompile Include="..\gio\giomm\dbusinterfacevtable.cc" /> ++ <ClCompile Include="..\gio\giomm\dbusintrospection.cc" /> ++ <ClCompile Include="..\gio\giomm\dbusmenumodel.cc" /> ++ <ClCompile Include="..\gio\giomm\dbusmessage.cc" /> ++ <ClCompile Include="..\gio\giomm\dbusmethodinvocation.cc" /> ++ <ClCompile Include="..\gio\giomm\dbusobject.cc" /> ++ <ClCompile Include="..\gio\giomm\dbusownname.cc" /> ++ <ClCompile Include="..\gio\giomm\dbusproxy.cc" /> ++ <ClCompile Include="..\gio\giomm\dbusserver.cc" /> ++ <ClCompile Include="..\gio\giomm\dbussubtreevtable.cc" /> ++ <ClCompile Include="..\gio\giomm\dbusutils.cc" /> ++ <ClCompile Include="..\gio\giomm\dbuswatchname.cc" /> ++ <ClCompile Include="..\gio\giomm\drive.cc" /> ++ <ClCompile Include="..\gio\giomm\emblem.cc" /> ++ <ClCompile Include="..\gio\giomm\emblemedicon.cc" /> ++ <ClCompile Include="..\gio\giomm\enums.cc" /> ++ <ClCompile Include="..\gio\giomm\error.cc" /> ++ <ClCompile Include="..\gio\giomm\file.cc" /> ++ <ClCompile Include="..\gio\giomm\fileattributeinfo.cc" /> ++ <ClCompile Include="..\gio\giomm\fileattributeinfolist.cc" /> ++ <ClCompile Include="..\gio\giomm\fileenumerator.cc" /> ++ <ClCompile Include="..\gio\giomm\fileicon.cc" /> ++ <ClCompile Include="..\gio\giomm\fileinfo.cc" /> ++ <ClCompile Include="..\gio\giomm\fileinputstream.cc" /> ++ <ClCompile Include="..\gio\giomm\fileiostream.cc" /> ++ <ClCompile Include="..\gio\giomm\filemonitor.cc" /> ++ <ClCompile Include="..\gio\giomm\filenamecompleter.cc" /> ++ <ClCompile Include="..\gio\giomm\fileoutputstream.cc" /> ++ <ClCompile Include="..\gio\giomm\filterinputstream.cc" /> ++ <ClCompile Include="..\gio\giomm\filteroutputstream.cc" /> ++ <ClCompile Include="..\gio\giomm\icon.cc" /> ++ <ClCompile Include="..\gio\giomm\inetaddress.cc" /> ++ <ClCompile Include="..\gio\giomm\inetsocketaddress.cc" /> ++ <ClCompile Include="..\gio\giomm\init.cc" /> ++ <ClCompile Include="..\gio\giomm\initable.cc" /> ++ <ClCompile Include="..\gio\giomm\inputstream.cc" /> ++ <ClCompile Include="..\gio\giomm\iostream.cc" /> ++ <ClCompile Include="..\gio\giomm\listmodel.cc" /> ++ <ClCompile Include="..\gio\giomm\liststore.cc" /> ++ <ClCompile Include="..\gio\giomm\loadableicon.cc" /> ++ <ClCompile Include="..\gio\giomm\memoryinputstream.cc" /> ++ <ClCompile Include="..\gio\giomm\memoryoutputstream.cc" /> ++ <ClCompile Include="..\gio\giomm\menu.cc" /> ++ <ClCompile Include="..\gio\giomm\menuattributeiter.cc" /> ++ <ClCompile Include="..\gio\giomm\menuitem.cc" /> ++ <ClCompile Include="..\gio\giomm\menulinkiter.cc" /> ++ <ClCompile Include="..\gio\giomm\menumodel.cc" /> ++ <ClCompile Include="..\gio\giomm\mount.cc" /> ++ <ClCompile Include="..\gio\giomm\mountoperation.cc" /> ++ <ClCompile Include="..\gio\giomm\networkaddress.cc" /> ++ <ClCompile Include="..\gio\giomm\networkmonitor.cc" /> ++ <ClCompile Include="..\gio\giomm\networkservice.cc" /> ++ <ClCompile Include="..\gio\giomm\notification.cc" /> ++ <ClCompile Include="..\gio\giomm\outputstream.cc" /> ++ <ClCompile Include="..\gio\giomm\permission.cc" /> ++ <ClCompile Include="..\gio\giomm\pollableinputstream.cc" /> ++ <ClCompile Include="..\gio\giomm\pollableoutputstream.cc" /> ++ <ClCompile Include="..\gio\giomm\proxy.cc" /> ++ <ClCompile Include="..\gio\giomm\proxyaddress.cc" /> ++ <ClCompile Include="..\gio\giomm\proxyresolver.cc" /> ++ <ClCompile Include="..\gio\giomm\remoteactiongroup.cc" /> ++ <ClCompile Include="..\gio\giomm\resolver.cc" /> ++ <ClCompile Include="..\gio\giomm\resource.cc" /> ++ <ClCompile Include="..\gio\giomm\seekable.cc" /> ++ <ClCompile Include="..\gio\giomm\settings.cc" /> ++ <ClCompile Include="..\gio\giomm\settingsschema.cc" /> ++ <ClCompile Include="..\gio\giomm\settingsschemakey.cc" /> ++ <ClCompile Include="..\gio\giomm\settingsschemasource.cc" /> ++ <ClCompile Include="..\gio\giomm\simpleaction.cc" /> ++ <ClCompile Include="..\gio\giomm\simpleactiongroup.cc" /> ++ <ClCompile Include="..\gio\giomm\simpleiostream.cc" /> ++ <ClCompile Include="..\gio\giomm\simplepermission.cc" /> ++ <ClCompile Include="..\gio\giomm\slot_async.cc" /> ++ <ClCompile Include="..\gio\giomm\socket.cc" /> ++ <ClCompile Include="..\gio\giomm\socketaddress.cc" /> ++ <ClCompile Include="..\gio\giomm\socketaddressenumerator.cc" /> ++ <ClCompile Include="..\gio\giomm\socketclient.cc" /> ++ <ClCompile Include="..\gio\giomm\socketconnectable.cc" /> ++ <ClCompile Include="..\gio\giomm\socketconnection.cc" /> ++ <ClCompile Include="..\gio\giomm\socketcontrolmessage.cc" /> ++ <ClCompile Include="..\gio\giomm\socketlistener.cc" /> ++ <ClCompile Include="..\gio\giomm\socketservice.cc" /> ++ <ClCompile Include="..\gio\giomm\socketsource.cc" /> ++ <ClCompile Include="..\gio\giomm\srvtarget.cc" /> ++ <ClCompile Include="..\gio\giomm\tcpconnection.cc" /> ++ <ClCompile Include="..\gio\giomm\tcpwrapperconnection.cc" /> ++ <ClCompile Include="..\gio\giomm\themedicon.cc" /> ++ <ClCompile Include="..\gio\giomm\threadedsocketservice.cc" /> ++ <ClCompile Include="..\gio\giomm\tlscertificate.cc" /> ++ <ClCompile Include="..\gio\giomm\tlsclientconnection.cc" /> ++ <ClCompile Include="..\gio\giomm\tlsconnection.cc" /> ++ <ClCompile Include="..\gio\giomm\tlsdatabase.cc" /> ++ <ClCompile Include="..\gio\giomm\tlsinteraction.cc" /> ++ <ClCompile Include="..\gio\giomm\tlspassword.cc" /> ++ <ClCompile Include="..\gio\giomm\tlsserverconnection.cc" /> ++ <ClCompile Include="..\gio\giomm\volume.cc" /> ++ <ClCompile Include="..\gio\giomm\volumemonitor.cc" /> ++ <ClCompile Include="..\gio\giomm\wrap_init.cc" /> ++ <ClCompile Include="..\gio\giomm\zlibcompressor.cc" /> ++ <ClCompile Include="..\gio\giomm\zlibdecompressor.cc" /> ++ </ItemGroup> ++ <ItemGroup> ++ <ClInclude Include="..\gio\giomm\action.h" /> ++ <ClInclude Include="..\gio\giomm\actiongroup.h" /> ++ <ClInclude Include="..\gio\giomm\actionmap.h" /> ++ <ClInclude Include="..\gio\giomm\appinfo.h" /> ++ <ClInclude Include="..\gio\giomm\applaunchcontext.h" /> ++ <ClInclude Include="..\gio\giomm\application.h" /> ++ <ClInclude Include="..\gio\giomm\applicationcommandline.h" /> ++ <ClInclude Include="..\gio\giomm\asyncinitable.h" /> ++ <ClInclude Include="..\gio\giomm\asyncresult.h" /> ++ <ClInclude Include="..\gio\giomm\bufferedinputstream.h" /> ++ <ClInclude Include="..\gio\giomm\bufferedoutputstream.h" /> ++ <ClInclude Include="..\gio\giomm\cancellable.h" /> ++ <ClInclude Include="..\gio\giomm\charsetconverter.h" /> ++ <ClInclude Include="..\gio\giomm\contenttype.h" /> ++ <ClInclude Include="..\gio\giomm\converter.h" /> ++ <ClInclude Include="..\gio\giomm\converterinputstream.h" /> ++ <ClInclude Include="..\gio\giomm\converteroutputstream.h" /> ++ <ClInclude Include="..\gio\giomm\credentials.h" /> ++ <ClInclude Include="..\gio\giomm\datainputstream.h" /> ++ <ClInclude Include="..\gio\giomm\dataoutputstream.h" /> ++ <ClInclude Include="..\gio\giomm\dbusactiongroup.h" /> ++ <ClInclude Include="..\gio\giomm\dbusaddress.h" /> ++ <ClInclude Include="..\gio\giomm\dbusauthobserver.h" /> ++ <ClInclude Include="..\gio\giomm\dbusconnection.h" /> ++ <ClInclude Include="..\gio\giomm\dbuserror.h" /> ++ <ClInclude Include="..\gio\giomm\dbuserrorutils.h" /> ++ <ClInclude Include="..\gio\giomm\dbusinterface.h" /> ++ <ClInclude Include="..\gio\giomm\dbusinterfaceskeleton.h" /> ++ <ClInclude Include="..\gio\giomm\dbusinterfacevtable.h" /> ++ <ClInclude Include="..\gio\giomm\dbusintrospection.h" /> ++ <ClInclude Include="..\gio\giomm\dbusmenumodel.h" /> ++ <ClInclude Include="..\gio\giomm\dbusmessage.h" /> ++ <ClInclude Include="..\gio\giomm\dbusmethodinvocation.h" /> ++ <ClInclude Include="..\gio\giomm\dbusobject.h" /> ++ <ClInclude Include="..\gio\giomm\dbusownname.h" /> ++ <ClInclude Include="..\gio\giomm\dbusproxy.h" /> ++ <ClInclude Include="..\gio\giomm\dbusserver.h" /> ++ <ClInclude Include="..\gio\giomm\dbussubtreevtable.h" /> ++ <ClInclude Include="..\gio\giomm\dbusutils.h" /> ++ <ClInclude Include="..\gio\giomm\dbuswatchname.h" /> ++ <ClInclude Include="..\gio\giomm\drive.h" /> ++ <ClInclude Include="..\gio\giomm\emblem.h" /> ++ <ClInclude Include="..\gio\giomm\emblemedicon.h" /> ++ <ClInclude Include="..\gio\giomm\enums.h" /> ++ <ClInclude Include="..\gio\giomm\error.h" /> ++ <ClInclude Include="..\gio\giomm\file.h" /> ++ <ClInclude Include="..\gio\giomm\fileattributeinfo.h" /> ++ <ClInclude Include="..\gio\giomm\fileattributeinfolist.h" /> ++ <ClInclude Include="..\gio\giomm\fileenumerator.h" /> ++ <ClInclude Include="..\gio\giomm\fileicon.h" /> ++ <ClInclude Include="..\gio\giomm\fileinfo.h" /> ++ <ClInclude Include="..\gio\giomm\fileinputstream.h" /> ++ <ClInclude Include="..\gio\giomm\fileiostream.h" /> ++ <ClInclude Include="..\gio\giomm\filemonitor.h" /> ++ <ClInclude Include="..\gio\giomm\filenamecompleter.h" /> ++ <ClInclude Include="..\gio\giomm\fileoutputstream.h" /> ++ <ClInclude Include="..\gio\giomm\filterinputstream.h" /> ++ <ClInclude Include="..\gio\giomm\filteroutputstream.h" /> ++ <ClInclude Include="..\gio\giomm\icon.h" /> ++ <ClInclude Include="..\gio\giomm\inetaddress.h" /> ++ <ClInclude Include="..\gio\giomm\inetsocketaddress.h" /> ++ <ClInclude Include="..\gio\giomm\init.h" /> ++ <ClInclude Include="..\gio\giomm\initable.h" /> ++ <ClInclude Include="..\gio\giomm\inputstream.h" /> ++ <ClInclude Include="..\gio\giomm\iostream.h" /> ++ <ClInclude Include="..\gio\giomm\listmodel.h" /> ++ <ClInclude Include="..\gio\giomm\liststore.h" /> ++ <ClInclude Include="..\gio\giomm\loadableicon.h" /> ++ <ClInclude Include="..\gio\giomm\memoryinputstream.h" /> ++ <ClInclude Include="..\gio\giomm\memoryoutputstream.h" /> ++ <ClInclude Include="..\gio\giomm\menu.h" /> ++ <ClInclude Include="..\gio\giomm\menuattributeiter.h" /> ++ <ClInclude Include="..\gio\giomm\menuitem.h" /> ++ <ClInclude Include="..\gio\giomm\menulinkiter.h" /> ++ <ClInclude Include="..\gio\giomm\menumodel.h" /> ++ <ClInclude Include="..\gio\giomm\mount.h" /> ++ <ClInclude Include="..\gio\giomm\mountoperation.h" /> ++ <ClInclude Include="..\gio\giomm\networkaddress.h" /> ++ <ClInclude Include="..\gio\giomm\networkmonitor.h" /> ++ <ClInclude Include="..\gio\giomm\networkservice.h" /> ++ <ClInclude Include="..\gio\giomm\notification.h" /> ++ <ClInclude Include="..\gio\giomm\outputstream.h" /> ++ <ClInclude Include="..\gio\giomm\permission.h" /> ++ <ClInclude Include="..\gio\giomm\pollableinputstream.h" /> ++ <ClInclude Include="..\gio\giomm\pollableoutputstream.h" /> ++ <ClInclude Include="..\gio\giomm\proxy.h" /> ++ <ClInclude Include="..\gio\giomm\proxyaddress.h" /> ++ <ClInclude Include="..\gio\giomm\proxyresolver.h" /> ++ <ClInclude Include="..\gio\giomm\remoteactiongroup.h" /> ++ <ClInclude Include="..\gio\giomm\resolver.h" /> ++ <ClInclude Include="..\gio\giomm\resource.h" /> ++ <ClInclude Include="..\gio\giomm\seekable.h" /> ++ <ClInclude Include="..\gio\giomm\settings.h" /> ++ <ClInclude Include="..\gio\giomm\settingsschema.h" /> ++ <ClInclude Include="..\gio\giomm\settingsschemakey.h" /> ++ <ClInclude Include="..\gio\giomm\settingsschemasource.h" /> ++ <ClInclude Include="..\gio\giomm\simpleaction.h" /> ++ <ClInclude Include="..\gio\giomm\simpleactiongroup.h" /> ++ <ClInclude Include="..\gio\giomm\simpleiostream.h" /> ++ <ClInclude Include="..\gio\giomm\simplepermission.h" /> ++ <ClInclude Include="..\gio\giomm\slot_async.h" /> ++ <ClInclude Include="..\gio\giomm\socket.h" /> ++ <ClInclude Include="..\gio\giomm\socketaddress.h" /> ++ <ClInclude Include="..\gio\giomm\socketaddressenumerator.h" /> ++ <ClInclude Include="..\gio\giomm\socketclient.h" /> ++ <ClInclude Include="..\gio\giomm\socketconnectable.h" /> ++ <ClInclude Include="..\gio\giomm\socketconnection.h" /> ++ <ClInclude Include="..\gio\giomm\socketcontrolmessage.h" /> ++ <ClInclude Include="..\gio\giomm\socketlistener.h" /> ++ <ClInclude Include="..\gio\giomm\socketservice.h" /> ++ <ClInclude Include="..\gio\giomm\socketsource.h" /> ++ <ClInclude Include="..\gio\giomm\srvtarget.h" /> ++ <ClInclude Include="..\gio\giomm\tcpconnection.h" /> ++ <ClInclude Include="..\gio\giomm\tcpwrapperconnection.h" /> ++ <ClInclude Include="..\gio\giomm\themedicon.h" /> ++ <ClInclude Include="..\gio\giomm\threadedsocketservice.h" /> ++ <ClInclude Include="..\gio\giomm\tlscertificate.h" /> ++ <ClInclude Include="..\gio\giomm\tlsclientconnection.h" /> ++ <ClInclude Include="..\gio\giomm\tlsconnection.h" /> ++ <ClInclude Include="..\gio\giomm\tlsdatabase.h" /> ++ <ClInclude Include="..\gio\giomm\tlsinteraction.h" /> ++ <ClInclude Include="..\gio\giomm\tlspassword.h" /> ++ <ClInclude Include="..\gio\giomm\tlsserverconnection.h" /> ++ <ClInclude Include="..\gio\giomm\volume.h" /> ++ <ClInclude Include="..\gio\giomm\volumemonitor.h" /> ++ <ClInclude Include="..\gio\giomm\wrap_init.h" /> ++ <ClInclude Include="..\gio\giomm\zlibcompressor.h" /> ++ <ClInclude Include="..\gio\giomm\zlibdecompressor.h" /> ++ </ItemGroup> ++ <ItemGroup> ++ <ResourceCompile Include=".\giomm\giomm.rc" /> ++ </ItemGroup> ++ <ItemGroup> ++ <ProjectReference Include="glibmm.vcxproj"> ++ <Project>{58b2b53c-c4ff-47fd-817b-095e45b7f7d4}</Project> ++ <ReferenceOutputAssembly>false</ReferenceOutputAssembly> ++ </ProjectReference> ++ </ItemGroup> ++ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> ++ <ImportGroup Label="ExtensionTargets"> ++ </ImportGroup> ++</Project> +\ No newline at end of file +diff --git a/MSVC_Net2013/giomm_simple.vcxproj b/MSVC_Net2013/giomm_simple.vcxproj +index 1eb6124..2db412e 100644 +--- a/MSVC_Net2013/giomm_simple.vcxproj ++++ b/MSVC_Net2013/giomm_simple.vcxproj +@@ -23,26 +23,27 @@ + <ProjectGuid>{F4F66980-51D4-4CC2-A529-9AD2C9F7D143}</ProjectGuid> + <RootNamespace>tests_giomm_simple</RootNamespace> + <Keyword>Win32Proj</Keyword> ++ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> +@@ -189,4 +190,4 @@ + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +-</Project> ++</Project> +\ No newline at end of file +diff --git a/MSVC_Net2013/glibmm.vcxproj b/MSVC_Net2013/glibmm.vcxproj +index cf86400..e3df6a8 100644 +--- a/MSVC_Net2013/glibmm.vcxproj ++++ b/MSVC_Net2013/glibmm.vcxproj +@@ -1,362 +1,363 @@ +-???<?xml version="1.0" encoding="utf-8"?> +-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> +- <ItemGroup Label="ProjectConfigurations"> +- <ProjectConfiguration Include="Debug|Win32"> +- <Configuration>Debug</Configuration> +- <Platform>Win32</Platform> +- </ProjectConfiguration> +- <ProjectConfiguration Include="Debug|x64"> +- <Configuration>Debug</Configuration> +- <Platform>x64</Platform> +- </ProjectConfiguration> +- <ProjectConfiguration Include="Release|Win32"> +- <Configuration>Release</Configuration> +- <Platform>Win32</Platform> +- </ProjectConfiguration> +- <ProjectConfiguration Include="Release|x64"> +- <Configuration>Release</Configuration> +- <Platform>x64</Platform> +- </ProjectConfiguration> +- </ItemGroup> +- <PropertyGroup Label="Globals"> +- <ProjectName>glibmm</ProjectName> +- <ProjectGuid>{58B2B53C-C4FF-47FD-817B-095E45B7F7D4}</ProjectGuid> +- <RootNamespace>glibmm</RootNamespace> +- <Keyword>Win32Proj</Keyword> +- </PropertyGroup> +- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> +- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> +- <ConfigurationType>DynamicLibrary</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> +- <PlatformToolset>v120</PlatformToolset> +- </PropertyGroup> +- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> +- <ConfigurationType>DynamicLibrary</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> +- <PlatformToolset>v120</PlatformToolset> +- </PropertyGroup> +- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> +- <ConfigurationType>DynamicLibrary</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> +- <PlatformToolset>v120</PlatformToolset> +- </PropertyGroup> +- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> +- <ConfigurationType>DynamicLibrary</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> +- <PlatformToolset>v120</PlatformToolset> +- </PropertyGroup> +- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> +- <ImportGroup Label="ExtensionSettings"> +- </ImportGroup> +- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> +- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> +- <Import Project=".\glibmm-build-defines.props" /> +- </ImportGroup> +- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> +- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> +- <Import Project=".\glibmm-build-defines.props" /> +- </ImportGroup> +- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> +- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> +- <Import Project=".\glibmm-build-defines.props" /> +- </ImportGroup> +- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets"> +- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> +- <Import Project=".\glibmm-build-defines.props" /> +- </ImportGroup> +- <PropertyGroup Label="UserMacros" /> +- <PropertyGroup> +- <PreLinkEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</PreLinkEventUseInBuild> +- <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</GenerateManifest> +- <PreLinkEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</PreLinkEventUseInBuild> +- <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</GenerateManifest> +- <PreLinkEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</PreLinkEventUseInBuild> +- <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</GenerateManifest> +- <PreLinkEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</PreLinkEventUseInBuild> +- <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</GenerateManifest> +- </PropertyGroup> +- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> +- <ClCompile> +- <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions> +- <Optimization>Disabled</Optimization> +- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> +- <PreprocessorDefinitions>_DEBUG;$(GLibMMBuildDefs);%(PreprocessorDefinitions)</PreprocessorDefinitions> +- <MinimalRebuild>true</MinimalRebuild> +- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> +- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> +- <RuntimeTypeInfo>true</RuntimeTypeInfo> +- <WarningLevel>Level3</WarningLevel> +- <DebugInformationFormat>EditAndContinue</DebugInformationFormat> +- </ClCompile> +- <PreLinkEvent> +- <Message>Generate glibmm def file</Message> +- <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(ProjectName)$(DebugDllSuffix).dll $(IntDir)*.obj</Command> +- </PreLinkEvent> +- <Link> ++???<?xml version="1.0" encoding="utf-8"?> ++<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> ++ <ItemGroup Label="ProjectConfigurations"> ++ <ProjectConfiguration Include="Debug|Win32"> ++ <Configuration>Debug</Configuration> ++ <Platform>Win32</Platform> ++ </ProjectConfiguration> ++ <ProjectConfiguration Include="Debug|x64"> ++ <Configuration>Debug</Configuration> ++ <Platform>x64</Platform> ++ </ProjectConfiguration> ++ <ProjectConfiguration Include="Release|Win32"> ++ <Configuration>Release</Configuration> ++ <Platform>Win32</Platform> ++ </ProjectConfiguration> ++ <ProjectConfiguration Include="Release|x64"> ++ <Configuration>Release</Configuration> ++ <Platform>x64</Platform> ++ </ProjectConfiguration> ++ </ItemGroup> ++ <PropertyGroup Label="Globals"> ++ <ProjectName>glibmm</ProjectName> ++ <ProjectGuid>{58B2B53C-C4FF-47FD-817B-095E45B7F7D4}</ProjectGuid> ++ <RootNamespace>glibmm</RootNamespace> ++ <Keyword>Win32Proj</Keyword> ++ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion> ++ </PropertyGroup> ++ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> ++ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> ++ <ConfigurationType>DynamicLibrary</ConfigurationType> ++ <CharacterSet>Unicode</CharacterSet> ++ <PlatformToolset>v120</PlatformToolset> ++ </PropertyGroup> ++ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> ++ <ConfigurationType>DynamicLibrary</ConfigurationType> ++ <CharacterSet>Unicode</CharacterSet> ++ <PlatformToolset>v120</PlatformToolset> ++ </PropertyGroup> ++ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> ++ <ConfigurationType>DynamicLibrary</ConfigurationType> ++ <CharacterSet>Unicode</CharacterSet> ++ <PlatformToolset>v120</PlatformToolset> ++ </PropertyGroup> ++ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> ++ <ConfigurationType>DynamicLibrary</ConfigurationType> ++ <CharacterSet>Unicode</CharacterSet> ++ <PlatformToolset>v120</PlatformToolset> ++ </PropertyGroup> ++ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> ++ <ImportGroup Label="ExtensionSettings"> ++ </ImportGroup> ++ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> ++ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> ++ <Import Project=".\glibmm-build-defines.props" /> ++ </ImportGroup> ++ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> ++ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> ++ <Import Project=".\glibmm-build-defines.props" /> ++ </ImportGroup> ++ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> ++ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> ++ <Import Project=".\glibmm-build-defines.props" /> ++ </ImportGroup> ++ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets"> ++ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> ++ <Import Project=".\glibmm-build-defines.props" /> ++ </ImportGroup> ++ <PropertyGroup Label="UserMacros" /> ++ <PropertyGroup> ++ <PreLinkEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</PreLinkEventUseInBuild> ++ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</GenerateManifest> ++ <PreLinkEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</PreLinkEventUseInBuild> ++ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</GenerateManifest> ++ <PreLinkEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</PreLinkEventUseInBuild> ++ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</GenerateManifest> ++ <PreLinkEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</PreLinkEventUseInBuild> ++ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</GenerateManifest> ++ </PropertyGroup> ++ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> ++ <ClCompile> ++ <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions> ++ <Optimization>Disabled</Optimization> ++ <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> ++ <PreprocessorDefinitions>_DEBUG;$(GLibMMBuildDefs);%(PreprocessorDefinitions)</PreprocessorDefinitions> ++ <MinimalRebuild>true</MinimalRebuild> ++ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> ++ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> ++ <RuntimeTypeInfo>true</RuntimeTypeInfo> ++ <WarningLevel>Level3</WarningLevel> ++ <DebugInformationFormat>EditAndContinue</DebugInformationFormat> ++ </ClCompile> ++ <PreLinkEvent> ++ <Message>Generate glibmm def file</Message> ++ <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(ProjectName)$(DebugDllSuffix).dll $(IntDir)*.obj</Command> ++ </PreLinkEvent> ++ <Link> + <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> +- <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> +- <OutputFile>$(OutDir)\$(ProjectName)$(DebugDllSuffix).dll</OutputFile> +- <ImportLibrary>$(TargetDir)$(ProjectName)$(DebugDllSuffix).lib</ImportLibrary> +- <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile> +- <GenerateDebugInformation>true</GenerateDebugInformation> +- <RandomizedBaseAddress>false</RandomizedBaseAddress> +- <DataExecutionPrevention> +- </DataExecutionPrevention> +- </Link> +- </ItemDefinitionGroup> +- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> +- <Midl> +- <TargetEnvironment>X64</TargetEnvironment> +- </Midl> +- <ClCompile> +- <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions> +- <Optimization>Disabled</Optimization> +- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> +- <PreprocessorDefinitions>_DEBUG;$(GLibMMBuildDefs);%(PreprocessorDefinitions)</PreprocessorDefinitions> +- <MinimalRebuild>true</MinimalRebuild> +- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> +- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> +- <RuntimeTypeInfo>true</RuntimeTypeInfo> +- <WarningLevel>Level3</WarningLevel> +- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> +- </ClCompile> +- <PreLinkEvent> +- <Message>Generate glibmm def file</Message> +- <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(ProjectName)$(DebugDllSuffix).dll $(IntDir)*.obj</Command> +- </PreLinkEvent> +- <Link> ++ <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> ++ <OutputFile>$(OutDir)\$(ProjectName)$(DebugDllSuffix).dll</OutputFile> ++ <ImportLibrary>$(TargetDir)$(ProjectName)$(DebugDllSuffix).lib</ImportLibrary> ++ <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile> ++ <GenerateDebugInformation>true</GenerateDebugInformation> ++ <RandomizedBaseAddress>false</RandomizedBaseAddress> ++ <DataExecutionPrevention> ++ </DataExecutionPrevention> ++ </Link> ++ </ItemDefinitionGroup> ++ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> ++ <Midl> ++ <TargetEnvironment>X64</TargetEnvironment> ++ </Midl> ++ <ClCompile> ++ <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions> ++ <Optimization>Disabled</Optimization> ++ <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> ++ <PreprocessorDefinitions>_DEBUG;$(GLibMMBuildDefs);%(PreprocessorDefinitions)</PreprocessorDefinitions> ++ <MinimalRebuild>true</MinimalRebuild> ++ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> ++ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> ++ <RuntimeTypeInfo>true</RuntimeTypeInfo> ++ <WarningLevel>Level3</WarningLevel> ++ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> ++ </ClCompile> ++ <PreLinkEvent> ++ <Message>Generate glibmm def file</Message> ++ <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(ProjectName)$(DebugDllSuffix).dll $(IntDir)*.obj</Command> ++ </PreLinkEvent> ++ <Link> + <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> +- <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> +- <OutputFile>$(OutDir)\$(ProjectName)$(DebugDllSuffix).dll</OutputFile> +- <ImportLibrary>$(TargetDir)$(ProjectName)$(DebugDllSuffix).lib</ImportLibrary> +- <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile> +- <GenerateDebugInformation>true</GenerateDebugInformation> +- <RandomizedBaseAddress>false</RandomizedBaseAddress> +- <DataExecutionPrevention> +- </DataExecutionPrevention> +- <TargetMachine>MachineX64</TargetMachine> +- </Link> +- </ItemDefinitionGroup> +- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> +- <ClCompile> +- <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions> +- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> +- <PreprocessorDefinitions>$(GLibMMBuildDefs);%(PreprocessorDefinitions)</PreprocessorDefinitions> +- <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> +- <RuntimeTypeInfo>true</RuntimeTypeInfo> +- <WarningLevel>Level3</WarningLevel> +- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> +- </ClCompile> +- <PreLinkEvent> +- <Message>Generate glibmm def file</Message> +- <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(ProjectName)$(ReleaseDllSuffix).dll $(IntDir)*.obj</Command> +- </PreLinkEvent> +- <Link> ++ <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> ++ <OutputFile>$(OutDir)\$(ProjectName)$(DebugDllSuffix).dll</OutputFile> ++ <ImportLibrary>$(TargetDir)$(ProjectName)$(DebugDllSuffix).lib</ImportLibrary> ++ <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile> ++ <GenerateDebugInformation>true</GenerateDebugInformation> ++ <RandomizedBaseAddress>false</RandomizedBaseAddress> ++ <DataExecutionPrevention> ++ </DataExecutionPrevention> ++ <TargetMachine>MachineX64</TargetMachine> ++ </Link> ++ </ItemDefinitionGroup> ++ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> ++ <ClCompile> ++ <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions> ++ <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> ++ <PreprocessorDefinitions>$(GLibMMBuildDefs);%(PreprocessorDefinitions)</PreprocessorDefinitions> ++ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> ++ <RuntimeTypeInfo>true</RuntimeTypeInfo> ++ <WarningLevel>Level3</WarningLevel> ++ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> ++ </ClCompile> ++ <PreLinkEvent> ++ <Message>Generate glibmm def file</Message> ++ <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(ProjectName)$(ReleaseDllSuffix).dll $(IntDir)*.obj</Command> ++ </PreLinkEvent> ++ <Link> + <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> +- <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> +- <OutputFile>$(OutDir)\$(ProjectName)$(ReleaseDllSuffix).dll</OutputFile> +- <ImportLibrary>$(TargetDir)$(ProjectName)$(ReleaseDllSuffix).lib</ImportLibrary> +- <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile> +- <GenerateDebugInformation>true</GenerateDebugInformation> +- <ProgramDatabaseFile>$(OutDir)\$(ProjectName)$(ReleaseDllSuffix).pdb</ProgramDatabaseFile> +- <RandomizedBaseAddress>false</RandomizedBaseAddress> +- <OptimizeReferences>true</OptimizeReferences> +- <DataExecutionPrevention> +- </DataExecutionPrevention> +- </Link> +- </ItemDefinitionGroup> +- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> +- <Midl> +- <TargetEnvironment>X64</TargetEnvironment> +- </Midl> +- <ClCompile> +- <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions> +- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> +- <PreprocessorDefinitions>$(GLibMMBuildDefs);%(PreprocessorDefinitions)</PreprocessorDefinitions> +- <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> +- <RuntimeTypeInfo>true</RuntimeTypeInfo> +- <WarningLevel>Level3</WarningLevel> +- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> +- </ClCompile> +- <PreLinkEvent> +- <Message>Generate glibmm def file</Message> +- <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(ProjectName)$(ReleaseDllSuffix).dll $(IntDir)*.obj</Command> +- </PreLinkEvent> +- <Link> ++ <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> ++ <OutputFile>$(OutDir)\$(ProjectName)$(ReleaseDllSuffix).dll</OutputFile> ++ <ImportLibrary>$(TargetDir)$(ProjectName)$(ReleaseDllSuffix).lib</ImportLibrary> ++ <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile> ++ <GenerateDebugInformation>true</GenerateDebugInformation> ++ <ProgramDatabaseFile>$(OutDir)\$(ProjectName)$(ReleaseDllSuffix).pdb</ProgramDatabaseFile> ++ <RandomizedBaseAddress>false</RandomizedBaseAddress> ++ <OptimizeReferences>true</OptimizeReferences> ++ <DataExecutionPrevention> ++ </DataExecutionPrevention> ++ </Link> ++ </ItemDefinitionGroup> ++ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> ++ <Midl> ++ <TargetEnvironment>X64</TargetEnvironment> ++ </Midl> ++ <ClCompile> ++ <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions> ++ <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> ++ <PreprocessorDefinitions>$(GLibMMBuildDefs);%(PreprocessorDefinitions)</PreprocessorDefinitions> ++ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> ++ <RuntimeTypeInfo>true</RuntimeTypeInfo> ++ <WarningLevel>Level3</WarningLevel> ++ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> ++ </ClCompile> ++ <PreLinkEvent> ++ <Message>Generate glibmm def file</Message> ++ <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(ProjectName)$(ReleaseDllSuffix).dll $(IntDir)*.obj</Command> ++ </PreLinkEvent> ++ <Link> + <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> +- <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> +- <OutputFile>$(OutDir)\$(ProjectName)$(ReleaseDllSuffix).dll</OutputFile> +- <ImportLibrary>$(TargetDir)$(ProjectName)$(ReleaseDllSuffix).lib</ImportLibrary> +- <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile> +- <GenerateDebugInformation>true</GenerateDebugInformation> +- <ProgramDatabaseFile>$(OutDir)\$(ProjectName)$(ReleaseDllSuffix).pdb</ProgramDatabaseFile> +- <RandomizedBaseAddress>false</RandomizedBaseAddress> +- <OptimizeReferences>true</OptimizeReferences> +- <DataExecutionPrevention> +- </DataExecutionPrevention> +- <TargetMachine>MachineX64</TargetMachine> +- </Link> +- </ItemDefinitionGroup> +- <ItemGroup> +- <ClCompile Include="..\glib\glibmm\arrayhandle.cc" /> +- <ClCompile Include="..\glib\glibmm\balancedtree.cc" /> +- <ClCompile Include="..\glib\glibmm\base64.cc" /> +- <ClCompile Include="..\glib\glibmm\binding.cc" /> +- <ClCompile Include="..\glib\glibmm\bytes.cc" /> +- <ClCompile Include="..\glib\glibmm\bytearray.cc" /> +- <ClCompile Include="..\glib\glibmm\checksum.cc" /> +- <ClCompile Include="..\glib\glibmm\class.cc" /> +- <ClCompile Include="..\glib\glibmm\containers.cc" /> +- <ClCompile Include="..\glib\glibmm\convert.cc" /> +- <ClCompile Include="..\glib\glibmm\date.cc" /> +- <ClCompile Include="..\glib\glibmm\datetime.cc" /> +- <ClCompile Include="..\glib\glibmm\debug.cc" /> +- <ClCompile Include="..\glib\glibmm\dispatcher.cc" /> +- <ClCompile Include="..\glib\glibmm\enums.cc" /> +- <ClCompile Include="..\glib\glibmm\error.cc" /> +- <ClCompile Include="..\glib\glibmm\exception.cc" /> +- <ClCompile Include="..\glib\glibmm\exceptionhandler.cc" /> +- <ClCompile Include="..\glib\glibmm\fileutils.cc" /> +- <ClCompile Include="..\glib\glibmm\init.cc" /> +- <ClCompile Include="..\glib\glibmm\interface.cc" /> +- <ClCompile Include="..\glib\glibmm\iochannel.cc" /> +- <ClCompile Include="..\glib\glibmm\keyfile.cc" /> +- <ClCompile Include="..\glib\glibmm\main.cc" /> +- <ClCompile Include="..\glib\glibmm\markup.cc" /> +- <ClCompile Include="..\glib\glibmm\miscutils.cc" /> +- <ClCompile Include="..\glib\glibmm\module.cc" /> +- <ClCompile Include="..\glib\glibmm\nodetree.cc" /> +- <ClCompile Include="..\glib\glibmm\object.cc" /> +- <ClCompile Include="..\glib\glibmm\objectbase.cc" /> +- <ClCompile Include="..\glib\glibmm\optioncontext.cc" /> +- <ClCompile Include="..\glib\glibmm\optionentry.cc" /> +- <ClCompile Include="..\glib\glibmm\optiongroup.cc" /> +- <ClCompile Include="..\glib\glibmm\pattern.cc" /> +- <ClCompile Include="..\glib\glibmm\property.cc" /> +- <ClCompile Include="..\glib\glibmm\propertyproxy.cc" /> +- <ClCompile Include="..\glib\glibmm\propertyproxy_base.cc" /> +- <ClCompile Include="..\glib\glibmm\quark.cc" /> +- <ClCompile Include="..\glib\glibmm\random.cc" /> +- <ClCompile Include="..\glib\glibmm\regex.cc" /> +- <ClCompile Include="..\glib\glibmm\sarray.cc" /> +- <ClCompile Include="..\glib\glibmm\shell.cc" /> +- <ClCompile Include="..\glib\glibmm\signalproxy.cc" /> +- <ClCompile Include="..\glib\glibmm\signalproxy_connectionnode.cc" /> +- <ClCompile Include="..\glib\glibmm\spawn.cc" /> +- <ClCompile Include="..\glib\glibmm\streamiochannel.cc" /> +- <ClCompile Include="..\glib\glibmm\stringutils.cc" /> +- <ClCompile Include="..\glib\glibmm\thread.cc" /> +- <ClCompile Include="..\glib\glibmm\threadpool.cc" /> +- <ClCompile Include="..\glib\glibmm\threads.cc" /> +- <ClCompile Include="..\glib\glibmm\timer.cc" /> +- <ClCompile Include="..\glib\glibmm\timeval.cc" /> +- <ClCompile Include="..\glib\glibmm\timezone.cc" /> +- <ClCompile Include="..\glib\glibmm\unicode.cc" /> +- <ClCompile Include="..\glib\glibmm\uriutils.cc" /> +- <ClCompile Include="..\glib\glibmm\ustring.cc" /> +- <ClCompile Include="..\glib\glibmm\utility.cc" /> +- <ClCompile Include="..\glib\glibmm\value.cc" /> +- <ClCompile Include="..\glib\glibmm\value_basictypes.cc" /> +- <ClCompile Include="..\glib\glibmm\value_custom.cc" /> +- <ClCompile Include="..\glib\glibmm\valuearray.cc" /> +- <ClCompile Include="..\glib\glibmm\variant.cc" /> +- <ClCompile Include="..\glib\glibmm\variantdict.cc" /> +- <ClCompile Include="..\glib\glibmm\variantiter.cc" /> +- <ClCompile Include="..\glib\glibmm\varianttype.cc" /> +- <ClCompile Include="..\glib\glibmm\variant_basictypes.cc" /> +- <ClCompile Include="..\glib\glibmm\vectorutils.cc" /> +- <ClCompile Include="..\glib\glibmm\wrap.cc" /> +- <ClCompile Include="..\glib\glibmm\wrap_init.cc" /> +- </ItemGroup> +- <ItemGroup> +- <ClInclude Include="..\glib\glibmm\arrayhandle.h" /> +- <ClInclude Include="..\glib\glibmm\balancedtree.h" /> +- <ClInclude Include="..\glib\glibmm\base64.h" /> +- <ClInclude Include="..\glib\glibmm\binding.h" /> +- <ClInclude Include="..\glib\glibmm\bytes.h" /> +- <ClInclude Include="..\glib\glibmm\bytearray.h" /> +- <ClInclude Include="..\glib\glibmm\checksum.h" /> +- <ClInclude Include="..\glib\glibmm\class.h" /> +- <ClInclude Include="..\glib\glibmm\containerhandle_shared.h" /> +- <ClInclude Include="..\glib\glibmm\containers.h" /> +- <ClInclude Include="..\glib\glibmm\convert.h" /> +- <ClInclude Include="..\glib\glibmm\date.h" /> +- <ClInclude Include="..\glib\glibmm\datetime.h" /> +- <ClInclude Include="..\glib\glibmm\debug.h" /> +- <ClInclude Include="..\glib\glibmm\dispatcher.h" /> +- <ClInclude Include="..\glib\glibmm\enums.h" /> +- <ClInclude Include="..\glib\glibmm\error.h" /> +- <ClInclude Include="..\glib\glibmm\exception.h" /> +- <ClInclude Include="..\glib\glibmm\exceptionhandler.h" /> +- <ClInclude Include="..\glib\glibmm\fileutils.h" /> +- <ClInclude Include="..\glib\glibmm\helperlist.h" /> +- <ClInclude Include="..\glib\glibmm\i18n-lib.h" /> +- <ClInclude Include="..\glib\glibmm\i18n.h" /> +- <ClInclude Include="..\glib\glibmm\init.h" /> +- <ClInclude Include="..\glib\glibmm\interface.h" /> +- <ClInclude Include="..\glib\glibmm\iochannel.h" /> +- <ClInclude Include="..\glib\glibmm\keyfile.h" /> +- <ClInclude Include="..\glib\glibmm\listhandle.h" /> +- <ClInclude Include="..\glib\glibmm\main.h" /> +- <ClInclude Include="..\glib\glibmm\markup.h" /> +- <ClInclude Include="..\glib\glibmm\miscutils.h" /> +- <ClInclude Include="..\glib\glibmm\module.h" /> +- <ClInclude Include="..\glib\glibmm\nodetree.h" /> +- <ClInclude Include="..\glib\glibmm\object.h" /> +- <ClInclude Include="..\glib\glibmm\objectbase.h" /> +- <ClInclude Include="..\glib\glibmm\optioncontext.h" /> +- <ClInclude Include="..\glib\glibmm\optionentry.h" /> +- <ClInclude Include="..\glib\glibmm\optiongroup.h" /> +- <ClInclude Include="..\glib\glibmm\pattern.h" /> +- <ClInclude Include="..\glib\glibmm\property.h" /> +- <ClInclude Include="..\glib\glibmm\propertyproxy.h" /> +- <ClInclude Include="..\glib\glibmm\propertyproxy_base.h" /> +- <ClInclude Include="..\glib\glibmm\quark.h" /> +- <ClInclude Include="..\glib\glibmm\random.h" /> +- <ClInclude Include="..\glib\glibmm\refptr.h" /> +- <ClInclude Include="..\glib\glibmm\regex.h" /> +- <ClInclude Include="..\glib\glibmm\sarray.h" /> +- <ClInclude Include="..\glib\glibmm\shell.h" /> +- <ClInclude Include="..\glib\glibmm\signalproxy.h" /> +- <ClInclude Include="..\glib\glibmm\signalproxy_connectionnode.h" /> +- <ClInclude Include="..\glib\glibmm\slisthandle.h" /> +- <ClInclude Include="..\glib\glibmm\spawn.h" /> +- <ClInclude Include="..\glib\glibmm\streamiochannel.h" /> +- <ClInclude Include="..\glib\glibmm\stringutils.h" /> +- <ClInclude Include="..\glib\glibmm\thread.h" /> +- <ClInclude Include="..\glib\glibmm\threadpool.h" /> +- <ClInclude Include="..\glib\glibmm\threads.h" /> +- <ClInclude Include="..\glib\glibmm\timer.h" /> +- <ClInclude Include="..\glib\glibmm\timeval.h" /> +- <ClInclude Include="..\glib\glibmm\timezone.h" /> +- <ClInclude Include="..\glib\glibmm\unicode.h" /> +- <ClInclude Include="..\glib\glibmm\uriutils.h" /> +- <ClInclude Include="..\glib\glibmm\ustring.h" /> +- <ClInclude Include="..\glib\glibmm\utility.h" /> +- <ClInclude Include="..\glib\glibmm\value.h" /> +- <ClInclude Include="..\glib\glibmm\value_basictypes.h" /> +- <ClInclude Include="..\glib\glibmm\value_custom.h" /> +- <ClInclude Include="..\glib\glibmm\valuearray.h" /> +- <ClInclude Include="..\glib\glibmm\variant.h" /> +- <ClInclude Include="..\glib\glibmm\variantdict.h" /> +- <ClInclude Include="..\glib\glibmm\variantiter.h" /> +- <ClInclude Include="..\glib\glibmm\varianttype.h" /> +- <ClInclude Include="..\glib\glibmm\variant_basictypes.h" /> +- <ClInclude Include="..\glib\glibmm\vectorutils.h" /> +- <ClInclude Include="..\glib\glibmm\weakref.h" /> +- <ClInclude Include="..\glib\glibmm\wrap.h" /> +- <ClInclude Include="..\glib\glibmm\wrap_init.h" /> +- </ItemGroup> +- <ItemGroup> +- <ResourceCompile Include=".\glibmm\glibmm.rc" /> +- </ItemGroup> +- <ItemGroup> +- <ProjectReference Include="gendef.vcxproj"> +- <Project>{07324745-c9be-4d65-b08a-9c88188c0c28}</Project> +- <ReferenceOutputAssembly>false</ReferenceOutputAssembly> +- </ProjectReference> +- </ItemGroup> +- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> +- <ImportGroup Label="ExtensionTargets"> +- </ImportGroup> +-</Project> +\ No newline at end of file ++ <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> ++ <OutputFile>$(OutDir)\$(ProjectName)$(ReleaseDllSuffix).dll</OutputFile> ++ <ImportLibrary>$(TargetDir)$(ProjectName)$(ReleaseDllSuffix).lib</ImportLibrary> ++ <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile> ++ <GenerateDebugInformation>true</GenerateDebugInformation> ++ <ProgramDatabaseFile>$(OutDir)\$(ProjectName)$(ReleaseDllSuffix).pdb</ProgramDatabaseFile> ++ <RandomizedBaseAddress>false</RandomizedBaseAddress> ++ <OptimizeReferences>true</OptimizeReferences> ++ <DataExecutionPrevention> ++ </DataExecutionPrevention> ++ <TargetMachine>MachineX64</TargetMachine> ++ </Link> ++ </ItemDefinitionGroup> ++ <ItemGroup> ++ <ClCompile Include="..\glib\glibmm\arrayhandle.cc" /> ++ <ClCompile Include="..\glib\glibmm\balancedtree.cc" /> ++ <ClCompile Include="..\glib\glibmm\base64.cc" /> ++ <ClCompile Include="..\glib\glibmm\binding.cc" /> ++ <ClCompile Include="..\glib\glibmm\bytes.cc" /> ++ <ClCompile Include="..\glib\glibmm\bytearray.cc" /> ++ <ClCompile Include="..\glib\glibmm\checksum.cc" /> ++ <ClCompile Include="..\glib\glibmm\class.cc" /> ++ <ClCompile Include="..\glib\glibmm\containers.cc" /> ++ <ClCompile Include="..\glib\glibmm\convert.cc" /> ++ <ClCompile Include="..\glib\glibmm\date.cc" /> ++ <ClCompile Include="..\glib\glibmm\datetime.cc" /> ++ <ClCompile Include="..\glib\glibmm\debug.cc" /> ++ <ClCompile Include="..\glib\glibmm\dispatcher.cc" /> ++ <ClCompile Include="..\glib\glibmm\enums.cc" /> ++ <ClCompile Include="..\glib\glibmm\error.cc" /> ++ <ClCompile Include="..\glib\glibmm\exception.cc" /> ++ <ClCompile Include="..\glib\glibmm\exceptionhandler.cc" /> ++ <ClCompile Include="..\glib\glibmm\fileutils.cc" /> ++ <ClCompile Include="..\glib\glibmm\init.cc" /> ++ <ClCompile Include="..\glib\glibmm\interface.cc" /> ++ <ClCompile Include="..\glib\glibmm\iochannel.cc" /> ++ <ClCompile Include="..\glib\glibmm\keyfile.cc" /> ++ <ClCompile Include="..\glib\glibmm\main.cc" /> ++ <ClCompile Include="..\glib\glibmm\markup.cc" /> ++ <ClCompile Include="..\glib\glibmm\miscutils.cc" /> ++ <ClCompile Include="..\glib\glibmm\module.cc" /> ++ <ClCompile Include="..\glib\glibmm\nodetree.cc" /> ++ <ClCompile Include="..\glib\glibmm\object.cc" /> ++ <ClCompile Include="..\glib\glibmm\objectbase.cc" /> ++ <ClCompile Include="..\glib\glibmm\optioncontext.cc" /> ++ <ClCompile Include="..\glib\glibmm\optionentry.cc" /> ++ <ClCompile Include="..\glib\glibmm\optiongroup.cc" /> ++ <ClCompile Include="..\glib\glibmm\pattern.cc" /> ++ <ClCompile Include="..\glib\glibmm\property.cc" /> ++ <ClCompile Include="..\glib\glibmm\propertyproxy.cc" /> ++ <ClCompile Include="..\glib\glibmm\propertyproxy_base.cc" /> ++ <ClCompile Include="..\glib\glibmm\quark.cc" /> ++ <ClCompile Include="..\glib\glibmm\random.cc" /> ++ <ClCompile Include="..\glib\glibmm\regex.cc" /> ++ <ClCompile Include="..\glib\glibmm\sarray.cc" /> ++ <ClCompile Include="..\glib\glibmm\shell.cc" /> ++ <ClCompile Include="..\glib\glibmm\signalproxy.cc" /> ++ <ClCompile Include="..\glib\glibmm\signalproxy_connectionnode.cc" /> ++ <ClCompile Include="..\glib\glibmm\spawn.cc" /> ++ <ClCompile Include="..\glib\glibmm\streamiochannel.cc" /> ++ <ClCompile Include="..\glib\glibmm\stringutils.cc" /> ++ <ClCompile Include="..\glib\glibmm\thread.cc" /> ++ <ClCompile Include="..\glib\glibmm\threadpool.cc" /> ++ <ClCompile Include="..\glib\glibmm\threads.cc" /> ++ <ClCompile Include="..\glib\glibmm\timer.cc" /> ++ <ClCompile Include="..\glib\glibmm\timeval.cc" /> ++ <ClCompile Include="..\glib\glibmm\timezone.cc" /> ++ <ClCompile Include="..\glib\glibmm\unicode.cc" /> ++ <ClCompile Include="..\glib\glibmm\uriutils.cc" /> ++ <ClCompile Include="..\glib\glibmm\ustring.cc" /> ++ <ClCompile Include="..\glib\glibmm\utility.cc" /> ++ <ClCompile Include="..\glib\glibmm\value.cc" /> ++ <ClCompile Include="..\glib\glibmm\value_basictypes.cc" /> ++ <ClCompile Include="..\glib\glibmm\value_custom.cc" /> ++ <ClCompile Include="..\glib\glibmm\valuearray.cc" /> ++ <ClCompile Include="..\glib\glibmm\variant.cc" /> ++ <ClCompile Include="..\glib\glibmm\variantdict.cc" /> ++ <ClCompile Include="..\glib\glibmm\variantiter.cc" /> ++ <ClCompile Include="..\glib\glibmm\varianttype.cc" /> ++ <ClCompile Include="..\glib\glibmm\variant_basictypes.cc" /> ++ <ClCompile Include="..\glib\glibmm\vectorutils.cc" /> ++ <ClCompile Include="..\glib\glibmm\wrap.cc" /> ++ <ClCompile Include="..\glib\glibmm\wrap_init.cc" /> ++ </ItemGroup> ++ <ItemGroup> ++ <ClInclude Include="..\glib\glibmm\arrayhandle.h" /> ++ <ClInclude Include="..\glib\glibmm\balancedtree.h" /> ++ <ClInclude Include="..\glib\glibmm\base64.h" /> ++ <ClInclude Include="..\glib\glibmm\binding.h" /> ++ <ClInclude Include="..\glib\glibmm\bytes.h" /> ++ <ClInclude Include="..\glib\glibmm\bytearray.h" /> ++ <ClInclude Include="..\glib\glibmm\checksum.h" /> ++ <ClInclude Include="..\glib\glibmm\class.h" /> ++ <ClInclude Include="..\glib\glibmm\containerhandle_shared.h" /> ++ <ClInclude Include="..\glib\glibmm\containers.h" /> ++ <ClInclude Include="..\glib\glibmm\convert.h" /> ++ <ClInclude Include="..\glib\glibmm\date.h" /> ++ <ClInclude Include="..\glib\glibmm\datetime.h" /> ++ <ClInclude Include="..\glib\glibmm\debug.h" /> ++ <ClInclude Include="..\glib\glibmm\dispatcher.h" /> ++ <ClInclude Include="..\glib\glibmm\enums.h" /> ++ <ClInclude Include="..\glib\glibmm\error.h" /> ++ <ClInclude Include="..\glib\glibmm\exception.h" /> ++ <ClInclude Include="..\glib\glibmm\exceptionhandler.h" /> ++ <ClInclude Include="..\glib\glibmm\fileutils.h" /> ++ <ClInclude Include="..\glib\glibmm\helperlist.h" /> ++ <ClInclude Include="..\glib\glibmm\i18n-lib.h" /> ++ <ClInclude Include="..\glib\glibmm\i18n.h" /> ++ <ClInclude Include="..\glib\glibmm\init.h" /> ++ <ClInclude Include="..\glib\glibmm\interface.h" /> ++ <ClInclude Include="..\glib\glibmm\iochannel.h" /> ++ <ClInclude Include="..\glib\glibmm\keyfile.h" /> ++ <ClInclude Include="..\glib\glibmm\listhandle.h" /> ++ <ClInclude Include="..\glib\glibmm\main.h" /> ++ <ClInclude Include="..\glib\glibmm\markup.h" /> ++ <ClInclude Include="..\glib\glibmm\miscutils.h" /> ++ <ClInclude Include="..\glib\glibmm\module.h" /> ++ <ClInclude Include="..\glib\glibmm\nodetree.h" /> ++ <ClInclude Include="..\glib\glibmm\object.h" /> ++ <ClInclude Include="..\glib\glibmm\objectbase.h" /> ++ <ClInclude Include="..\glib\glibmm\optioncontext.h" /> ++ <ClInclude Include="..\glib\glibmm\optionentry.h" /> ++ <ClInclude Include="..\glib\glibmm\optiongroup.h" /> ++ <ClInclude Include="..\glib\glibmm\pattern.h" /> ++ <ClInclude Include="..\glib\glibmm\property.h" /> ++ <ClInclude Include="..\glib\glibmm\propertyproxy.h" /> ++ <ClInclude Include="..\glib\glibmm\propertyproxy_base.h" /> ++ <ClInclude Include="..\glib\glibmm\quark.h" /> ++ <ClInclude Include="..\glib\glibmm\random.h" /> ++ <ClInclude Include="..\glib\glibmm\refptr.h" /> ++ <ClInclude Include="..\glib\glibmm\regex.h" /> ++ <ClInclude Include="..\glib\glibmm\sarray.h" /> ++ <ClInclude Include="..\glib\glibmm\shell.h" /> ++ <ClInclude Include="..\glib\glibmm\signalproxy.h" /> ++ <ClInclude Include="..\glib\glibmm\signalproxy_connectionnode.h" /> ++ <ClInclude Include="..\glib\glibmm\slisthandle.h" /> ++ <ClInclude Include="..\glib\glibmm\spawn.h" /> ++ <ClInclude Include="..\glib\glibmm\streamiochannel.h" /> ++ <ClInclude Include="..\glib\glibmm\stringutils.h" /> ++ <ClInclude Include="..\glib\glibmm\thread.h" /> ++ <ClInclude Include="..\glib\glibmm\threadpool.h" /> ++ <ClInclude Include="..\glib\glibmm\threads.h" /> ++ <ClInclude Include="..\glib\glibmm\timer.h" /> ++ <ClInclude Include="..\glib\glibmm\timeval.h" /> ++ <ClInclude Include="..\glib\glibmm\timezone.h" /> ++ <ClInclude Include="..\glib\glibmm\unicode.h" /> ++ <ClInclude Include="..\glib\glibmm\uriutils.h" /> ++ <ClInclude Include="..\glib\glibmm\ustring.h" /> ++ <ClInclude Include="..\glib\glibmm\utility.h" /> ++ <ClInclude Include="..\glib\glibmm\value.h" /> ++ <ClInclude Include="..\glib\glibmm\value_basictypes.h" /> ++ <ClInclude Include="..\glib\glibmm\value_custom.h" /> ++ <ClInclude Include="..\glib\glibmm\valuearray.h" /> ++ <ClInclude Include="..\glib\glibmm\variant.h" /> ++ <ClInclude Include="..\glib\glibmm\variantdict.h" /> ++ <ClInclude Include="..\glib\glibmm\variantiter.h" /> ++ <ClInclude Include="..\glib\glibmm\varianttype.h" /> ++ <ClInclude Include="..\glib\glibmm\variant_basictypes.h" /> ++ <ClInclude Include="..\glib\glibmm\vectorutils.h" /> ++ <ClInclude Include="..\glib\glibmm\weakref.h" /> ++ <ClInclude Include="..\glib\glibmm\wrap.h" /> ++ <ClInclude Include="..\glib\glibmm\wrap_init.h" /> ++ </ItemGroup> ++ <ItemGroup> ++ <ResourceCompile Include=".\glibmm\glibmm.rc" /> ++ </ItemGroup> ++ <ItemGroup> ++ <ProjectReference Include="gendef.vcxproj"> ++ <Project>{07324745-c9be-4d65-b08a-9c88188c0c28}</Project> ++ <ReferenceOutputAssembly>false</ReferenceOutputAssembly> ++ </ProjectReference> ++ </ItemGroup> ++ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> ++ <ImportGroup Label="ExtensionTargets"> ++ </ImportGroup> ++</Project> +\ No newline at end of file +diff --git a/MSVC_Net2013/glibmm_value.vcxproj b/MSVC_Net2013/glibmm_value.vcxproj +index 9639003..7e12415 100644 +--- a/MSVC_Net2013/glibmm_value.vcxproj ++++ b/MSVC_Net2013/glibmm_value.vcxproj +@@ -23,26 +23,27 @@ + <ProjectGuid>{22277003-3228-486E-A6A8-994B8B13AF30}</ProjectGuid> + <RootNamespace>tests_glibmm_value</RootNamespace> + <Keyword>Win32Proj</Keyword> ++ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> +@@ -186,4 +187,4 @@ + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +-</Project> ++</Project> +\ No newline at end of file +diff --git a/MSVC_Net2013/install.vcxproj b/MSVC_Net2013/install.vcxproj +index 059ceec..b6f2843 100644 +--- a/MSVC_Net2013/install.vcxproj ++++ b/MSVC_Net2013/install.vcxproj +@@ -22,28 +22,29 @@ + <ProjectGuid>{2093D218-190E-4194-9421-3BA7CBF33B10}</ProjectGuid> + <RootNamespace>install</RootNamespace> + <Keyword>Win32Proj</Keyword> ++ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Utility</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <WholeProgramOptimization>true</WholeProgramOptimization> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>Utility</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>Utility</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <WholeProgramOptimization>true</WholeProgramOptimization> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>Utility</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> +@@ -113,4 +114,4 @@ + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +-</Project> ++</Project> +\ No newline at end of file +diff --git a/MSVC_Net2013/keyfile.vcxproj b/MSVC_Net2013/keyfile.vcxproj +index 0993e6a..ee23bae 100644 +--- a/MSVC_Net2013/keyfile.vcxproj ++++ b/MSVC_Net2013/keyfile.vcxproj +@@ -23,26 +23,27 @@ + <ProjectGuid>{569A24AB-8D81-4427-B40D-85485AA7F3CD}</ProjectGuid> + <RootNamespace>dispatcher</RootNamespace> + <Keyword>Win32Proj</Keyword> ++ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> +@@ -189,4 +190,4 @@ + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +-</Project> ++</Project> +\ No newline at end of file +diff --git a/MSVC_Net2013/markup.vcxproj b/MSVC_Net2013/markup.vcxproj +index 03b3295..db2dfab 100644 +--- a/MSVC_Net2013/markup.vcxproj ++++ b/MSVC_Net2013/markup.vcxproj +@@ -22,26 +22,27 @@ + <ProjectName>markup</ProjectName> + <ProjectGuid>{6300FCFA-97F1-4967-802E-E354D95DB0EB}</ProjectGuid> + <Keyword>Win32Proj</Keyword> ++ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> +@@ -188,4 +189,4 @@ + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +-</Project> ++</Project> +\ No newline at end of file +diff --git a/MSVC_Net2013/options.vcxproj b/MSVC_Net2013/options.vcxproj +index f627c4e..dda25b9 100644 +--- a/MSVC_Net2013/options.vcxproj ++++ b/MSVC_Net2013/options.vcxproj +@@ -23,26 +23,27 @@ + <ProjectGuid>{46962B9A-C5E9-4863-9408-97514D63F420}</ProjectGuid> + <RootNamespace>dispatcher</RootNamespace> + <Keyword>Win32Proj</Keyword> ++ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> +@@ -189,4 +190,4 @@ + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +-</Project> ++</Project> +\ No newline at end of file +diff --git a/MSVC_Net2013/properties.vcxproj b/MSVC_Net2013/properties.vcxproj +index 6858140..d8a95c2 100644 +--- a/MSVC_Net2013/properties.vcxproj ++++ b/MSVC_Net2013/properties.vcxproj +@@ -23,26 +23,27 @@ + <ProjectGuid>{206CC821-8BE3-4455-B09E-63F93E30F20C}</ProjectGuid> + <RootNamespace>dispatcher</RootNamespace> + <Keyword>Win32Proj</Keyword> ++ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> +@@ -189,4 +190,4 @@ + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +-</Project> ++</Project> +\ No newline at end of file +diff --git a/MSVC_Net2013/regex.vcxproj b/MSVC_Net2013/regex.vcxproj +index 84418df..c4c0cf0 100644 +--- a/MSVC_Net2013/regex.vcxproj ++++ b/MSVC_Net2013/regex.vcxproj +@@ -23,26 +23,27 @@ + <ProjectGuid>{7374A5A1-4E74-44BD-918C-FDF80B97FA3F}</ProjectGuid> + <RootNamespace>dispatcher</RootNamespace> + <Keyword>Win32Proj</Keyword> ++ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> +@@ -189,4 +190,4 @@ + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +-</Project> ++</Project> +\ No newline at end of file +diff --git a/MSVC_Net2013/resolver.vcxproj b/MSVC_Net2013/resolver.vcxproj +index 113d86a..9fa59a4 100644 +--- a/MSVC_Net2013/resolver.vcxproj ++++ b/MSVC_Net2013/resolver.vcxproj +@@ -23,26 +23,27 @@ + <ProjectGuid>{E4D320F1-7D2D-43AF-874F-14524220EF92}</ProjectGuid> + <RootNamespace>resolver</RootNamespace> + <Keyword>Win32Proj</Keyword> ++ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> +@@ -193,4 +194,4 @@ + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +-</Project> ++</Project> +\ No newline at end of file +diff --git a/MSVC_Net2013/socket-client.vcxproj b/MSVC_Net2013/socket-client.vcxproj +index 3743708..bfb8330 100644 +--- a/MSVC_Net2013/socket-client.vcxproj ++++ b/MSVC_Net2013/socket-client.vcxproj +@@ -23,26 +23,27 @@ + <ProjectGuid>{1E38D900-90AC-4E18-B34C-7B08E3383087}</ProjectGuid> + <RootNamespace>socket-client</RootNamespace> + <Keyword>Win32Proj</Keyword> ++ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> +@@ -193,4 +194,4 @@ + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +-</Project> ++</Project> +\ No newline at end of file +diff --git a/MSVC_Net2013/socket-client.vcxproj.filters b/MSVC_Net2013/socket-client.vcxproj.filters +index edb14c1..8d41b33 100644 +--- a/MSVC_Net2013/socket-client.vcxproj.filters ++++ b/MSVC_Net2013/socket-client.vcxproj.filters +@@ -15,6 +15,6 @@ + </Filter> + </ItemGroup> + <ItemGroup> +- <ClCompile Include="..\examples\network\socket-client.cc"><Filter>Source Files</Filter></ClCompile> ++ <ClCompile Include="..\examples\network\resolver.cc" /> + </ItemGroup> +-</Project> ++</Project> +\ No newline at end of file +diff --git a/MSVC_Net2013/socket-server.vcxproj b/MSVC_Net2013/socket-server.vcxproj +index 4116263..e6744af 100644 +--- a/MSVC_Net2013/socket-server.vcxproj ++++ b/MSVC_Net2013/socket-server.vcxproj +@@ -23,26 +23,27 @@ + <ProjectGuid>{7A4EB8C4-4784-4E9E-96E6-CA6FF4CE1D20}</ProjectGuid> + <RootNamespace>socket-server</RootNamespace> + <Keyword>Win32Proj</Keyword> ++ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> +@@ -193,4 +194,4 @@ + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +-</Project> ++</Project> +\ No newline at end of file +diff --git a/MSVC_Net2013/socket-server.vcxproj.filters b/MSVC_Net2013/socket-server.vcxproj.filters +index 66a88d3..8d41b33 100644 +--- a/MSVC_Net2013/socket-server.vcxproj.filters ++++ b/MSVC_Net2013/socket-server.vcxproj.filters +@@ -15,6 +15,6 @@ + </Filter> + </ItemGroup> + <ItemGroup> +- <ClCompile Include="..\examples\network\socket-server.cc"><Filter>Source Files</Filter></ClCompile> ++ <ClCompile Include="..\examples\network\resolver.cc" /> + </ItemGroup> +-</Project> ++</Project> +\ No newline at end of file +diff --git a/MSVC_Net2013/thread.vcxproj b/MSVC_Net2013/thread.vcxproj +index 9950bbb..d1824e8 100644 +--- a/MSVC_Net2013/thread.vcxproj ++++ b/MSVC_Net2013/thread.vcxproj +@@ -22,26 +22,27 @@ + <ProjectName>thread</ProjectName> + <ProjectGuid>{5357AB2B-A5F9-463C-92D8-00357CCC3ECE}</ProjectGuid> + <Keyword>Win32Proj</Keyword> ++ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> +@@ -184,4 +185,4 @@ + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +-</Project> ++</Project> +\ No newline at end of file +diff --git a/MSVC_Net2013/threadpool.vcxproj b/MSVC_Net2013/threadpool.vcxproj +index 9ab9748..d0a0d15 100644 +--- a/MSVC_Net2013/threadpool.vcxproj ++++ b/MSVC_Net2013/threadpool.vcxproj +@@ -22,26 +22,27 @@ + <ProjectName>threadpool</ProjectName> + <ProjectGuid>{962484DB-2111-48A4-BEF0-194433719D0D}</ProjectGuid> + <Keyword>Win32Proj</Keyword> ++ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> +@@ -192,4 +193,4 @@ + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +-</Project> ++</Project> +\ No newline at end of file diff --git a/ports/glibmm/fix_properties.patch b/ports/glibmm/fix_properties.patch new file mode 100644 index 000000000..51044a27f --- /dev/null +++ b/ports/glibmm/fix_properties.patch @@ -0,0 +1,1721 @@ +diff --git a/MSVC_Net2013/gendef.vcxproj b/MSVC_Net2013/gendef.vcxproj +index 62dbcc8..7da2fbd 100644 +--- a/MSVC_Net2013/gendef.vcxproj ++++ b/MSVC_Net2013/gendef.vcxproj +@@ -91,6 +91,7 @@ + <DataExecutionPrevention> + </DataExecutionPrevention> + <TargetMachine>MachineX86</TargetMachine> ++ <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> +@@ -109,6 +110,7 @@ + <DataExecutionPrevention> + </DataExecutionPrevention> + <TargetMachine>MachineX86</TargetMachine> ++ <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> +@@ -132,6 +134,7 @@ + <DataExecutionPrevention> + </DataExecutionPrevention> + <TargetMachine>MachineX64</TargetMachine> ++ <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> +@@ -153,6 +156,7 @@ + <DataExecutionPrevention> + </DataExecutionPrevention> + <TargetMachine>MachineX64</TargetMachine> ++ <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> + </Link> + </ItemDefinitionGroup> + <ItemGroup> +@@ -161,4 +165,4 @@ + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +-</Project> ++</Project> +\ No newline at end of file +diff --git a/MSVC_Net2013/giomm.vcxproj b/MSVC_Net2013/giomm.vcxproj +index bc4fc3d..078fcb2 100644 +--- a/MSVC_Net2013/giomm.vcxproj ++++ b/MSVC_Net2013/giomm.vcxproj +@@ -69,7 +69,7 @@ + <ClCompile> + <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions> + <Optimization>Disabled</Optimization> +- <AdditionalIncludeDirectories>.\giomm;..\gio;$(GlibEtcInstallRoot)\include\gio-win32-2.0;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> ++ <AdditionalIncludeDirectories>.\giomm;..\gio;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>_DEBUG;$(GioMMBuildDefs);%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MinimalRebuild>true</MinimalRebuild> + <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> +@@ -82,7 +82,7 @@ + <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(ProjectName)$(DebugDllSuffix).dll $(IntDir)*.obj</Command> + </PreLinkEvent> + <Link> +- <AdditionalDependencies>gio-2.0.lib;$(CPPDepLibsDebug);%(AdditionalDependencies)</AdditionalDependencies> ++ <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <OutputFile>$(OutDir)\$(ProjectName)$(DebugDllSuffix).dll</OutputFile> + <ImportLibrary>$(TargetDir)$(ProjectName)$(DebugDllSuffix).lib</ImportLibrary> +@@ -100,7 +100,7 @@ + <ClCompile> + <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions> + <Optimization>Disabled</Optimization> +- <AdditionalIncludeDirectories>.;../..;../../glib;../../gio;$(SolutionDir)\glibmm;..\..\..\vs10\x64\include\gio-win32-2.0;..\..\..\vs10\x64\include\glib-2.0;..\..\..\vs10\x64\lib\glib-2.0\include;..\..\..\vs10\x64\include\sigc++-2.0;..\..\..\vs10\x64\lib\sigc++-2.0\include;..\..\..\vs10\x64\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> ++ <AdditionalIncludeDirectories>.\giomm;..\gio;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>_DEBUG;$(GioMMBuildDefs);%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MinimalRebuild>true</MinimalRebuild> + <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> +@@ -113,7 +113,7 @@ + <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(ProjectName)$(DebugDllSuffix).dll $(IntDir)*.obj</Command> + </PreLinkEvent> + <Link> +- <AdditionalDependencies>gio-2.0.lib;$(CPPDepLibsDebug);%(AdditionalDependencies)</AdditionalDependencies> ++ <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <OutputFile>$(OutDir)\$(ProjectName)$(DebugDllSuffix).dll</OutputFile> + <ImportLibrary>$(TargetDir)$(ProjectName)$(DebugDllSuffix).lib</ImportLibrary> +@@ -128,7 +128,7 @@ + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions> +- <AdditionalIncludeDirectories>.\giomm;..\gio;$(GlibEtcInstallRoot)\include\gio-win32-2.0;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> ++ <AdditionalIncludeDirectories>.\giomm;..\gio;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>$(GioMMBuildDefs);%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <WarningLevel>Level3</WarningLevel> +@@ -139,7 +139,7 @@ + <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(ProjectName)$(ReleaseDllSuffix).dll $(IntDir)*.obj</Command> + </PreLinkEvent> + <Link> +- <AdditionalDependencies>gio-2.0.lib;$(CPPDepLibsRelease);%(AdditionalDependencies)</AdditionalDependencies> ++ <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <OutputFile>$(OutDir)\$(ProjectName)$(ReleaseDllSuffix).dll</OutputFile> + <ImportLibrary>$(TargetDir)$(ProjectName)$(ReleaseDllSuffix).lib</ImportLibrary> +@@ -158,7 +158,7 @@ + </Midl> + <ClCompile> + <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions> +- <AdditionalIncludeDirectories>.\giomm;..\gio;$(GlibEtcInstallRoot)\include\gio-win32-2.0;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> ++ <AdditionalIncludeDirectories>.\giomm;..\gio;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>$(GioMMBuildDefs);%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <WarningLevel>Level3</WarningLevel> +@@ -169,7 +169,7 @@ + <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(ProjectName)$(ReleaseDllSuffix).dll $(IntDir)*.obj</Command> + </PreLinkEvent> + <Link> +- <AdditionalDependencies>gio-2.0.lib;$(CPPDepLibsRelease);%(AdditionalDependencies)</AdditionalDependencies> ++ <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <OutputFile>$(OutDir)\$(ProjectName)$(ReleaseDllSuffix).dll</OutputFile> + <ImportLibrary>$(TargetDir)$(ProjectName)$(ReleaseDllSuffix).lib</ImportLibrary> +@@ -455,4 +455,4 @@ + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +-</Project> ++</Project> +\ No newline at end of file +diff --git a/MSVC_Net2013/giomm.vcxproj.filters b/MSVC_Net2013/giomm.vcxproj.filters +index 4f01b13..934eddc 100644 +--- a/MSVC_Net2013/giomm.vcxproj.filters ++++ b/MSVC_Net2013/giomm.vcxproj.filters +@@ -15,266 +15,780 @@ + </Filter> + </ItemGroup> + <ItemGroup> +- <ClCompile Include="..\gio\giomm\action.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\actiongroup.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\actionmap.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\appinfo.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\applaunchcontext.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\application.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\applicationcommandline.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\asyncinitable.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\asyncresult.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\bufferedinputstream.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\bufferedoutputstream.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\cancellable.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\charsetconverter.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\contenttype.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\converter.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\converterinputstream.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\converteroutputstream.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\credentials.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\datainputstream.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\dataoutputstream.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\dbusactiongroup.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\dbusaddress.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\dbusauthobserver.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\dbusconnection.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\dbuserror.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\dbuserrorutils.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\dbusinterface.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\dbusinterfaceskeleton.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\dbusinterfacevtable.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\dbusintrospection.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\dbusmenumodel.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\dbusmessage.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\dbusmethodinvocation.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\dbusobject.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\dbusownname.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\dbusproxy.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\dbusserver.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\dbussubtreevtable.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\dbusutils.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\dbuswatchname.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\drive.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\emblem.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\emblemedicon.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\enums.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\error.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\file.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\fileattributeinfo.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\fileattributeinfolist.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\fileenumerator.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\fileicon.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\fileinfo.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\fileinputstream.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\fileiostream.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\filemonitor.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\filenamecompleter.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\fileoutputstream.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\filterinputstream.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\filteroutputstream.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\icon.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\inetaddress.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\inetsocketaddress.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\init.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\initable.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\inputstream.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\iostream.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\listmodel.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\liststore.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\loadableicon.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\memoryinputstream.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\memoryoutputstream.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\menu.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\menuattributeiter.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\menuitem.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\menulinkiter.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\menumodel.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\mount.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\mountoperation.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\networkaddress.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\networkmonitor.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\networkservice.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\notification.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\outputstream.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\permission.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\pollableinputstream.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\pollableoutputstream.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\proxy.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\proxyaddress.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\proxyresolver.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\remoteactiongroup.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\resolver.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\resource.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\seekable.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\settings.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\settingsschema.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\settingsschemakey.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\settingsschemasource.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\simpleaction.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\simpleactiongroup.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\simpleiostream.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\simplepermission.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\slot_async.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\socket.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\socketaddress.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\socketaddressenumerator.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\socketclient.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\socketconnectable.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\socketconnection.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\socketcontrolmessage.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\socketlistener.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\socketservice.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\socketsource.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\srvtarget.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\tcpconnection.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\tcpwrapperconnection.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\themedicon.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\tlscertificate.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\tlsclientconnection.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\tlsconnection.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\tlsdatabase.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\tlsinteraction.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\tlspassword.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\tlsserverconnection.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\volume.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\volumemonitor.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\wrap_init.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\zlibcompressor.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gio\giomm\zlibdecompressor.cc"><Filter>Source Files</Filter></ClCompile> ++ <ClCompile Include="..\gio\giomm\action.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\actiongroup.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\actionmap.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\appinfo.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\applaunchcontext.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\application.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\applicationcommandline.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\asyncinitable.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\asyncresult.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\bufferedinputstream.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\bufferedoutputstream.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\cancellable.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\charsetconverter.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\contenttype.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\converter.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\converterinputstream.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\converteroutputstream.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\credentials.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\datainputstream.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\dataoutputstream.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\dbusactiongroup.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\dbusaddress.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\dbusauthobserver.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\dbusconnection.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\dbuserror.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\dbuserrorutils.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\dbusinterface.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\dbusinterfaceskeleton.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\dbusinterfacevtable.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\dbusintrospection.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\dbusmenumodel.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\dbusmessage.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\dbusmethodinvocation.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\dbusobject.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\dbusownname.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\dbusproxy.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\dbusserver.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\dbussubtreevtable.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\dbusutils.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\dbuswatchname.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\drive.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\emblem.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\emblemedicon.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\enums.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\error.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\file.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\fileattributeinfo.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\fileattributeinfolist.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\fileenumerator.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\fileicon.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\fileinfo.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\fileinputstream.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\fileiostream.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\filemonitor.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\filenamecompleter.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\fileoutputstream.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\filterinputstream.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\filteroutputstream.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\icon.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\inetaddress.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\inetsocketaddress.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\init.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\initable.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\inputstream.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\iostream.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\listmodel.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\liststore.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\loadableicon.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\memoryinputstream.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\memoryoutputstream.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\menu.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\menuattributeiter.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\menuitem.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\menulinkiter.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\menumodel.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\mount.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\mountoperation.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\networkaddress.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\networkmonitor.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\networkservice.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\notification.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\outputstream.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\permission.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\pollableinputstream.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\pollableoutputstream.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\proxy.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\proxyaddress.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\proxyresolver.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\remoteactiongroup.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\resolver.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\resource.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\seekable.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\settings.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\settingsschema.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\settingsschemakey.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\settingsschemasource.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\simpleaction.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\simpleactiongroup.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\simpleiostream.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\simplepermission.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\slot_async.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\socket.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\socketaddress.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\socketaddressenumerator.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\socketclient.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\socketconnectable.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\socketconnection.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\socketcontrolmessage.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\socketlistener.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\socketservice.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\socketsource.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\srvtarget.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\tcpconnection.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\tcpwrapperconnection.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\themedicon.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\tlscertificate.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\tlsclientconnection.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\tlsconnection.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\tlsdatabase.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\tlsinteraction.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\tlspassword.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\tlsserverconnection.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\volume.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\volumemonitor.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\wrap_init.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\zlibcompressor.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\zlibdecompressor.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gio\giomm\threadedsocketservice.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> + </ItemGroup> + <ItemGroup> +- <ClInclude Include="..\gio\giomm\action.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\actiongroup.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\actionmap.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\appinfo.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\applaunchcontext.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\application.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\applicationcommandline.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\asyncinitable.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\asyncresult.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\bufferedinputstream.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\bufferedoutputstream.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\cancellable.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\charsetconverter.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\contenttype.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\converter.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\converterinputstream.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\converteroutputstream.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\credentials.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\datainputstream.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\dataoutputstream.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\dbusactiongroup.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\dbusaddress.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\dbusauthobserver.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\dbusconnection.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\dbuserror.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\dbuserrorutils.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\dbusinterface.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\dbusinterfaceskeleton.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\dbusinterfacevtable.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\dbusintrospection.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\dbusmenumodel.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\dbusmessage.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\dbusmethodinvocation.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\dbusobject.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\dbusownname.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\dbusproxy.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\dbusserver.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\dbussubtreevtable.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\dbusutils.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\dbuswatchname.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\drive.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\emblem.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\emblemedicon.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\enums.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\error.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\file.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\fileattributeinfo.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\fileattributeinfolist.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\fileenumerator.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\fileicon.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\fileinfo.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\fileinputstream.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\fileiostream.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\filemonitor.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\filenamecompleter.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\fileoutputstream.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\filterinputstream.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\filteroutputstream.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\icon.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\inetaddress.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\inetsocketaddress.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\init.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\initable.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\inputstream.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\iostream.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\listmodel.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\liststore.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\loadableicon.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\memoryinputstream.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\memoryoutputstream.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\menu.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\menuattributeiter.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\menuitem.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\menulinkiter.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\menumodel.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\mount.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\mountoperation.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\networkaddress.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\networkmonitor.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\networkservice.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\notification.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\outputstream.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\permission.h"><Filter>Source Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\pollableinputstream.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\pollableoutputstream.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\proxy.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\proxyaddress.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\proxyresolver.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\remoteactiongroup.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\resolver.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\resource.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\seekable.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\settings.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\settingsschema.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\settingsschemakey.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\settingsschemasource.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\simpleaction.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\simpleactiongroup.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\simpleiostream.h"><Filter>Source Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\simplepermission.h"><Filter>Source Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\slot_async.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\socket.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\socketaddress.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\socketaddressenumerator.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\socketclient.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\socketconnectable.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\socketconnection.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\socketcontrolmessage.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\socketlistener.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\socketservice.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\socketsource.h"><Filter>Source Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\srvtarget.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\tcpconnection.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\tcpwrapperconnection.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\themedicon.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\threadedsocketservice.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\tlscertificate.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\tlsclientconnection.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\tlsconnection.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\tlsdatabase.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\tlsinteraction.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\tlspassword.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\tlsserverconnection.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\volume.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\volumemonitor.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\wrap_init.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\zlibcompressor.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gio\giomm\zlibdecompressor.h"><Filter>Header Files</Filter></ClInclude> ++ <ClInclude Include="..\gio\giomm\action.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\actiongroup.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\actionmap.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\appinfo.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\applaunchcontext.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\application.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\applicationcommandline.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\asyncinitable.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\asyncresult.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\bufferedinputstream.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\bufferedoutputstream.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\cancellable.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\charsetconverter.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\contenttype.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\converter.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\converterinputstream.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\converteroutputstream.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\credentials.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\datainputstream.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\dataoutputstream.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\dbusactiongroup.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\dbusaddress.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\dbusauthobserver.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\dbusconnection.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\dbuserror.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\dbuserrorutils.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\dbusinterface.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\dbusinterfaceskeleton.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\dbusinterfacevtable.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\dbusintrospection.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\dbusmenumodel.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\dbusmessage.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\dbusmethodinvocation.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\dbusobject.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\dbusownname.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\dbusproxy.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\dbusserver.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\dbussubtreevtable.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\dbusutils.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\dbuswatchname.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\drive.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\emblem.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\emblemedicon.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\enums.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\error.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\file.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\fileattributeinfo.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\fileattributeinfolist.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\fileenumerator.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\fileicon.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\fileinfo.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\fileinputstream.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\fileiostream.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\filemonitor.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\filenamecompleter.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\fileoutputstream.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\filterinputstream.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\filteroutputstream.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\icon.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\inetaddress.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\inetsocketaddress.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\init.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\initable.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\inputstream.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\iostream.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\listmodel.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\liststore.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\loadableicon.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\memoryinputstream.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\memoryoutputstream.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\menu.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\menuattributeiter.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\menuitem.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\menulinkiter.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\menumodel.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\mount.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\mountoperation.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\networkaddress.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\networkmonitor.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\networkservice.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\notification.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\outputstream.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\permission.h"> ++ <Filter>Source Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\pollableinputstream.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\pollableoutputstream.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\proxy.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\proxyaddress.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\proxyresolver.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\remoteactiongroup.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\resolver.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\resource.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\seekable.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\settings.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\settingsschema.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\settingsschemakey.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\settingsschemasource.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\simpleaction.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\simpleactiongroup.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\simpleiostream.h"> ++ <Filter>Source Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\simplepermission.h"> ++ <Filter>Source Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\slot_async.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\socket.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\socketaddress.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\socketaddressenumerator.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\socketclient.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\socketconnectable.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\socketconnection.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\socketcontrolmessage.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\socketlistener.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\socketservice.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\socketsource.h"> ++ <Filter>Source Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\srvtarget.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\tcpconnection.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\tcpwrapperconnection.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\themedicon.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\threadedsocketservice.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\tlscertificate.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\tlsclientconnection.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\tlsconnection.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\tlsdatabase.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\tlsinteraction.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\tlspassword.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\tlsserverconnection.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\volume.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\volumemonitor.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\wrap_init.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\zlibcompressor.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gio\giomm\zlibdecompressor.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> + </ItemGroup> + <ItemGroup> +- <ResourceCompile Include=".\giomm\giomm.rc"><Filter>Resource Files</Filter> ++ <ResourceCompile Include=".\giomm\giomm.rc"> ++ <Filter>Resource Files</Filter> + </ResourceCompile> + </ItemGroup> +-</Project> ++</Project> +\ No newline at end of file +diff --git a/MSVC_Net2013/glibmm-build-defines.props b/MSVC_Net2013/glibmm-build-defines.props +index 5cbde3c..9a027c5 100644 +--- a/MSVC_Net2013/glibmm-build-defines.props ++++ b/MSVC_Net2013/glibmm-build-defines.props +@@ -6,8 +6,8 @@ + <PropertyGroup Label="UserMacros"> + <GLibMMBuildDefs>SIZEOF_WCHAR_T=2;GLIBMM_BUILD</GLibMMBuildDefs> + <GioMMBuildDefs>GIOMM_BUILD</GioMMBuildDefs> +- <CPPDepLibsRelease>sigc-vc$(VSVer)0-2_0.lib</CPPDepLibsRelease> +- <CPPDepLibsDebug>sigc-vc$(VSVer)0-d-2_0.lib</CPPDepLibsDebug> ++ <CPPDepLibsRelease>sigc-2_0.lib</CPPDepLibsRelease> ++ <CPPDepLibsDebug>sigc-2_0.lib</CPPDepLibsDebug> + </PropertyGroup> + <PropertyGroup> + <_PropertySheetDisplayName>glibmmbuilddefinesprops</_PropertySheetDisplayName> +@@ -16,28 +16,10 @@ + </PropertyGroup> + <ItemDefinitionGroup> + <ClCompile> +- <AdditionalIncludeDirectories>.\glibmm;..;..\glib;$(GlibEtcInstallRoot)\include\sigc++-2.0;$(GlibEtcInstallRoot)\lib\sigc++-2.0\include;$(GlibEtcInstallRoot)\include\gio-win32-2.0;$(GlibEtcInstallRoot)\include\glib-2.0;$(GlibEtcInstallRoot)\lib\glib-2.0\include;$(GlibEtcInstallRoot)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> ++ <AdditionalIncludeDirectories>.\glibmm;..;.;..\glib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <ForcedIncludeFiles>msvc_recommended_pragmas.h;%(ForcedIncludeFiles)</ForcedIncludeFiles> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + <AdditionalOptions>/d2Zi+ %(AdditionalOptions)</AdditionalOptions> + </ClCompile> +- <Link> +- <AdditionalDependencies>glib-2.0.lib;gobject-2.0.lib;gmodule-2.0.lib;%(AdditionalDependencies)</AdditionalDependencies> +- <AdditionalLibraryDirectories>$(GlibEtcInstallRoot)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> +- </Link> + </ItemDefinitionGroup> +- <ItemGroup> +- <BuildMacro Include="GLibMMBuildDefs"> +- <Value>$(GLibMMBuildDefs)</Value> +- </BuildMacro> +- <BuildMacro Include="GioMMBuildDefs"> +- <Value>$(GioMMBuildDefs)</Value> +- </BuildMacro> +- <BuildMacro Include="CPPDepLibsRelease"> +- <Value>$(CPPDepLibsRelease)</Value> +- </BuildMacro> +- <BuildMacro Include="CPPDepLibsDebug"> +- <Value>$(CPPDepLibsDebug)</Value> +- </BuildMacro> +- </ItemGroup> +-</Project> ++</Project> +\ No newline at end of file +diff --git a/MSVC_Net2013/glibmm-install.props b/MSVC_Net2013/glibmm-install.props +index f28a0c8..9283a7b 100644 +--- a/MSVC_Net2013/glibmm-install.props ++++ b/MSVC_Net2013/glibmm-install.props +@@ -3,410 +3,4 @@ + <ImportGroup Label="PropertySheets"> + <Import Project="glibmm-build-defines.props" /> + </ImportGroup> +- <PropertyGroup Label="UserMacros"> +- <BinDir>$(SolutionDir)$(Configuration)\$(Platform)\bin</BinDir> +- <InstalledReleaseDlls>$(BinDir)\glibmm$(ReleaseDllSuffix).dll;$(BinDir)\giomm$(ReleaseDllSuffix).dll</InstalledReleaseDlls> +- <InstalledDebugDlls>$(BinDir)\glibmm$(DebugDllSuffix).dll;$(BinDir)\giomm$(DebugDllSuffix).dll</InstalledDebugDlls> +- <GLibmmDoInstall> +-mkdir $(CopyDir) +-mkdir $(CopyDir)\bin +-copy $(BinDir)\glibmm-vc$(VSVer)0-$(ApiMajorVersion)_$(ApiMinorVersion).dll $(CopyDir)\bin +-copy $(BinDir)\glibmm-vc$(VSVer)0-$(ApiMajorVersion)_$(ApiMinorVersion).pdb $(CopyDir)\bin +-copy $(BinDir)\giomm-vc$(VSVer)0-$(ApiMajorVersion)_$(ApiMinorVersion).dll $(CopyDir)\bin +-copy $(BinDir)\giomm-vc$(VSVer)0-$(ApiMajorVersion)_$(ApiMinorVersion).pdb $(CopyDir)\bin +- +-mkdir $(CopyDir)\lib\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\include +-mkdir $(CopyDir)\lib\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\include +-copy $(BinDir)\glibmm-vc$(VSVer)0-$(ApiMajorVersion)_$(ApiMinorVersion).lib $(CopyDir)\lib +-copy $(BinDir)\giomm-vc$(VSVer)0-$(ApiMajorVersion)_$(ApiMinorVersion).lib $(CopyDir)\lib +- +-mkdir $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm\private +-mkdir $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\glib\glibmm.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion) +-copy ..\gio\giomm.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion) +- +-copy ..\glib\glibmm\arrayhandle.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\balancedtree.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\base64.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\binding.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\bytes.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\bytearray.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\checksum.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\class.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\containerhandle_shared.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\containers.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\convert.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\date.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\datetime.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\debug.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\enums.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\dispatcher.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\error.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\exception.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\exceptionhandler.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\fileutils.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\helperlist.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\i18n-lib.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\i18n.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\init.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\interface.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\iochannel.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\keyfile.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\listhandle.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\main.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\markup.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\miscutils.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\module.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\nodetree.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\object.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\objectbase.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\optioncontext.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\optionentry.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\optiongroup.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\pattern.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\priorities.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\property.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\propertyproxy.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\propertyproxy_base.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\quark.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\random.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\refptr.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\regex.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\sarray.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\shell.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\signalproxy.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\signalproxy_connectionnode.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\slisthandle.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\spawn.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\streamiochannel.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\stringutils.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\threadpool.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\threads.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\timer.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\timeval.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\timezone.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\unicode.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\uriutils.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\ustring.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\utility.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\variant.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\variantdict.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\variantiter.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\varianttype.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\variant_basictypes.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\thread.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\value.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\valuearray.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\value_basictypes.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\value_custom.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\vectorutils.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\weakref.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\wrap.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +-copy ..\glib\glibmm\wrap_init.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm +- +-copy ..\glib\glibmm\private\balancedtree_p.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm\private +-copy ..\glib\glibmm\private\binding_p.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm\private +-copy ..\glib\glibmm\private\bytes_p.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm\private +-copy ..\glib\glibmm\private\bytearray_p.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm\private +-copy ..\glib\glibmm\private\checksum_p.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm\private +-copy ..\glib\glibmm\private\convert_p.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm\private +-copy ..\glib\glibmm\private\date_p.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm\private +-copy ..\glib\glibmm\private\datetime_p.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm\private +-copy ..\glib\glibmm\private\enums_p.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm\private +-copy ..\glib\glibmm\private\fileutils_p.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm\private +-copy ..\glib\glibmm\private\interface_p.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm\private +-copy ..\glib\glibmm\private\iochannel_p.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm\private +-copy ..\glib\glibmm\private\keyfile_p.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm\private +-copy ..\glib\glibmm\private\markup_p.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm\private +-copy ..\glib\glibmm\private\miscutils_p.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm\private +-copy ..\glib\glibmm\private\module_p.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm\private +-copy ..\glib\glibmm\private\nodetree_p.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm\private +-copy ..\glib\glibmm\private\object_p.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm\private +-copy ..\glib\glibmm\private\optioncontext_p.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm\private +-copy ..\glib\glibmm\private\optionentry_p.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm\private +-copy ..\glib\glibmm\private\optiongroup_p.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm\private +-copy ..\glib\glibmm\private\regex_p.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm\private +-copy ..\glib\glibmm\private\shell_p.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm\private +-copy ..\glib\glibmm\private\spawn_p.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm\private +-copy ..\glib\glibmm\private\threads_p.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm\private +-copy ..\glib\glibmm\private\timezone_p.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm\private +-copy ..\glib\glibmm\private\unicode_p.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm\private +-copy ..\glib\glibmm\private\uriutils_p.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm\private +-copy ..\glib\glibmm\private\variant_p.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm\private +-copy ..\glib\glibmm\private\variantdict_p.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm\private +-copy ..\glib\glibmm\private\variantiter_p.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm\private +-copy ..\glib\glibmm\private\varianttype_p.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm\private +-copy ..\glib\glibmm\private\thread_p.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm\private +-copy ..\glib\glibmm\private\valuearray_p.h $(CopyDir)\include\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\glibmm\private +- +-copy ..\gio\giomm\action.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\actiongroup.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\actionmap.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\applaunchcontext.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\appinfo.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\application.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\applicationcommandline.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\asyncinitable.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\asyncresult.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\bufferedinputstream.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\bufferedoutputstream.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\cancellable.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\charsetconverter.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\contenttype.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\converter.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\converterinputstream.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\converteroutputstream.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\credentials.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\datainputstream.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\dataoutputstream.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\dbusactiongroup.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\dbusaddress.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\dbusauthobserver.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\dbusconnection.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\dbuserror.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\dbuserrorutils.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\dbusinterface.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\dbusinterfaceskeleton.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\dbusinterfacevtable.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\dbusintrospection.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\dbusmenumodel.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\dbusmessage.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\dbusmethodinvocation.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\dbusobject.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\dbusownname.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\dbusproxy.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\dbusserver.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\dbussubtreevtable.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\dbusutils.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\dbuswatchname.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\drive.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\emblem.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\emblemedicon.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\enums.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\error.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\file.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\fileattributeinfo.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\fileattributeinfolist.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\fileenumerator.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\fileicon.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\fileinfo.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\fileinputstream.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\fileiostream.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\filemonitor.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\filenamecompleter.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\fileoutputstream.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\filterinputstream.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\filteroutputstream.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\icon.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\inetaddress.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\inetsocketaddress.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\init.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\initable.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\inputstream.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\iostream.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\listmodel.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\liststore.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\loadableicon.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\memoryinputstream.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\memoryoutputstream.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\menuattributeiter.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\menulinkiter.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\menu.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\menuitem.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\menumodel.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\mount.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\mountoperation.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\networkaddress.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\networkmonitor.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\networkservice.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\notification.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\outputstream.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\permission.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\pollableinputstream.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\pollableoutputstream.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\proxy.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\proxyaddress.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\proxyresolver.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\remoteactiongroup.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\resolver.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\resource.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\seekable.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\settings.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\settingsschema.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\settingsschemakey.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\settingsschemasource.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\simpleaction.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\simpleactiongroup.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\simpleiostream.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\simplepermission.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\socket.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\socketaddress.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\socketaddressenumerator.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\socketclient.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\socketconnectable.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\socketconnection.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\socketcontrolmessage.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\socketlistener.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\socketservice.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\socketsource.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\srvtarget.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\tcpconnection.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\tcpwrapperconnection.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\threadedsocketservice.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\themedicon.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\tlscertificate.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\tlsclientconnection.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\tlsconnection.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\tlsdatabase.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\tlsinteraction.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\tlspassword.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\tlsserverconnection.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\volume.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\volumemonitor.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\wrap_init.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\zlibdecompressor.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +-copy ..\gio\giomm\zlibcompressor.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm +- +-copy ..\gio\giomm\private\action_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\actiongroup_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\actionmap_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\appinfo_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\applaunchcontext_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\application_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\applicationcommandline_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\asyncinitable_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\asyncresult_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\bufferedinputstream_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\bufferedoutputstream_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\cancellable_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\charsetconverter_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\converter_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\converterinputstream_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\converteroutputstream_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\credentials_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\datainputstream_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\dataoutputstream_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\dbusactiongroup_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\dbusaddress_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\dbusauthobserver_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\dbusconnection_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\dbuserror_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\dbuserrorutils_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\dbusinterface_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\dbusinterfaceskeleton_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\dbusinterfacevtable_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\dbusintrospection_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\dbusmenumodel_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\dbusmessage_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\dbusmethodinvocation_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\dbusobject_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\dbusownname_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\dbusproxy_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\dbusserver_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\dbussubtreevtable_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\dbusutils_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\dbuswatchname_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\drive_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\emblem_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\emblemedicon_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\enums_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\error_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\file_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\fileattributeinfo_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\fileattributeinfolist_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\fileenumerator_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\fileicon_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\fileinfo_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\fileinputstream_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\fileiostream_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\filemonitor_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\filenamecompleter_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\fileoutputstream_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\filterinputstream_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\filteroutputstream_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\icon_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\inetaddress_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\inetsocketaddress_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\initable_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\inputstream_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\iostream_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\listmodel_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\liststore_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\loadableicon_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\memoryinputstream_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\memoryoutputstream_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\menu_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\menuattributeiter_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\menuitem_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\menulinkiter_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\menumodel_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\mount_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\mountoperation_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\networkaddress_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\networkmonitor_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\networkservice_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\notification_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\outputstream_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\pollableinputstream_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\pollableoutputstream_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\proxy_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\proxyaddress_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\proxyresolver_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\remoteactiongroup_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\resolver_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\resource_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\seekable_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\settings_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\settingsschema_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\settingsschemakey_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\settingsschemasource_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\simpleaction_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\simpleactiongroup_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\simpleiostream_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\socket_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\socketaddress_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\socketaddressenumerator_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\socketclient_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\socketconnectable_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\socketconnection_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\socketcontrolmessage_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\socketlistener_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\socketservice_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\srvtarget_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\tcpconnection_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\tcpwrapperconnection_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\themedicon_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\threadedsocketservice_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\tlscertificate_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\tlsclientconnection_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\tlsconnection_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\tlsdatabase_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\tlsinteraction_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\tlspassword_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\tlsserverconnection_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\volume_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\volumemonitor_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\zlibcompressor_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy ..\gio\giomm\private\zlibdecompressor_p.h $(CopyDir)\include\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\giomm\private +-copy .\glibmm\glibmmconfig.h $(CopyDir)\lib\glibmm-$(ApiMajorVersion).$(ApiMinorVersion)\include +-copy .\giomm\giommconfig.h $(CopyDir)\lib\giomm-$(ApiMajorVersion).$(ApiMinorVersion)\include +-</GLibmmDoInstall> +- </PropertyGroup> +- <PropertyGroup> +- <_PropertySheetDisplayName>glibmminstallprops</_PropertySheetDisplayName> +- </PropertyGroup> +- <ItemGroup> +- <BuildMacro Include="BinDir"> +- <Value>$(BinDir)</Value> +- </BuildMacro> +- <BuildMacro Include="InstalledReleaseDlls"> +- <Value>$(InstalledReleaseDlls)</Value> +- </BuildMacro> +- <BuildMacro Include="InstalledDebugDlls"> +- <Value>$(InstalledDebugDlls)</Value> +- </BuildMacro> +- <BuildMacro Include="GLibmmDoInstall"> +- <Value>$(GLibmmDoInstall)</Value> +- </BuildMacro> +- </ItemGroup> + </Project> +diff --git a/MSVC_Net2013/glibmm-version-paths.props b/MSVC_Net2013/glibmm-version-paths.props +index 216731b..e5f0f6a 100644 +--- a/MSVC_Net2013/glibmm-version-paths.props ++++ b/MSVC_Net2013/glibmm-version-paths.props +@@ -2,13 +2,9 @@ + <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup Label="UserMacros"> + <VSVer>12</VSVer> +- <GlibEtcInstallRoot>$(SolutionDir)\..\..\vs$(VSVer)\$(Platform)</GlibEtcInstallRoot> +- <CopyDir>$(GlibEtcInstallRoot)</CopyDir> + <DefDir>$(SolutionDir)$(Configuration)\$(Platform)\obj\$(ProjectName)\</DefDir> + <ApiMajorVersion>2</ApiMajorVersion> + <ApiMinorVersion>4</ApiMinorVersion> +- <ReleaseDllSuffix>-vc$(VSVer)0-$(ApiMajorVersion)_$(ApiMinorVersion)</ReleaseDllSuffix> +- <DebugDllSuffix>-vc$(VSVer)0-d-$(ApiMajorVersion)_$(ApiMinorVersion)</DebugDllSuffix> + </PropertyGroup> + <PropertyGroup> + <_PropertySheetDisplayName>glibmmversionpathsprops</_PropertySheetDisplayName> +@@ -17,12 +13,6 @@ + <BuildMacro Include="VSVer"> + <Value>$(VSVer)</Value> + </BuildMacro> +- <BuildMacro Include="GlibEtcInstallRoot"> +- <Value>$(GlibEtcInstallRoot)</Value> +- </BuildMacro> +- <BuildMacro Include="CopyDir"> +- <Value>$(CopyDir)</Value> +- </BuildMacro> + <BuildMacro Include="DefDir"> + <Value>$(DefDir)</Value> + </BuildMacro> +@@ -32,11 +22,5 @@ + <BuildMacro Include="ApiMinorVersion"> + <Value>$(ApiMinorVersion)</Value> + </BuildMacro> +- <BuildMacro Include="ReleaseDllSuffix"> +- <Value>$(ReleaseDllSuffix)</Value> +- </BuildMacro> +- <BuildMacro Include="DebugDllSuffix"> +- <Value>$(DebugDllSuffix)</Value> +- </BuildMacro> + </ItemGroup> + </Project> +diff --git a/MSVC_Net2013/glibmm.vcxproj b/MSVC_Net2013/glibmm.vcxproj +index 6594edc..c611561 100644 +--- a/MSVC_Net2013/glibmm.vcxproj ++++ b/MSVC_Net2013/glibmm.vcxproj +@@ -93,7 +93,7 @@ + <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(ProjectName)$(DebugDllSuffix).dll $(IntDir)*.obj</Command> + </PreLinkEvent> + <Link> +- <AdditionalDependencies>$(CPPDepLibsDebug);%(AdditionalDependencies)</AdditionalDependencies> ++ <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <OutputFile>$(OutDir)\$(ProjectName)$(DebugDllSuffix).dll</OutputFile> + <ImportLibrary>$(TargetDir)$(ProjectName)$(DebugDllSuffix).lib</ImportLibrary> +@@ -125,7 +125,7 @@ + <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(ProjectName)$(DebugDllSuffix).dll $(IntDir)*.obj</Command> + </PreLinkEvent> + <Link> +- <AdditionalDependencies>$(CPPDepLibsDebug);%(AdditionalDependencies)</AdditionalDependencies> ++ <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <OutputFile>$(OutDir)\$(ProjectName)$(DebugDllSuffix).dll</OutputFile> + <ImportLibrary>$(TargetDir)$(ProjectName)$(DebugDllSuffix).lib</ImportLibrary> +@@ -152,7 +152,7 @@ + <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(ProjectName)$(ReleaseDllSuffix).dll $(IntDir)*.obj</Command> + </PreLinkEvent> + <Link> +- <AdditionalDependencies>$(CPPDepLibsRelease);%(AdditionalDependencies)</AdditionalDependencies> ++ <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <OutputFile>$(OutDir)\$(ProjectName)$(ReleaseDllSuffix).dll</OutputFile> + <ImportLibrary>$(TargetDir)$(ProjectName)$(ReleaseDllSuffix).lib</ImportLibrary> +@@ -183,7 +183,7 @@ + <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(ProjectName)$(ReleaseDllSuffix).dll $(IntDir)*.obj</Command> + </PreLinkEvent> + <Link> +- <AdditionalDependencies>$(CPPDepLibsRelease);%(AdditionalDependencies)</AdditionalDependencies> ++ <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <OutputFile>$(OutDir)\$(ProjectName)$(ReleaseDllSuffix).dll</OutputFile> + <ImportLibrary>$(TargetDir)$(ProjectName)$(ReleaseDllSuffix).lib</ImportLibrary> +@@ -359,4 +359,4 @@ + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +-</Project> ++</Project> +\ No newline at end of file diff --git a/ports/glibmm/msvc_recommended_pragmas.h b/ports/glibmm/msvc_recommended_pragmas.h new file mode 100644 index 000000000..c0eb1d5ed --- /dev/null +++ b/ports/glibmm/msvc_recommended_pragmas.h @@ -0,0 +1,34 @@ +#ifndef _MSC_VER +#pragma error "This header is for Microsoft VC only." +#endif /* _MSC_VER */ + +/* Make MSVC more pedantic, this is a recommended pragma list + * from _Win32_Programming_ by Rector and Newcomer. + */ +#pragma warning(error:4002) /* too many actual parameters for macro */ +#pragma warning(error:4003) /* not enough actual parameters for macro */ +#pragma warning(1:4010) /* single-line comment contains line-continuation character */ +#pragma warning(error:4013) /* 'function' undefined; assuming extern returning int */ +#pragma warning(1:4016) /* no function return type; using int as default */ +#pragma warning(error:4020) /* too many actual parameters */ +#pragma warning(error:4021) /* too few actual parameters */ +#pragma warning(error:4027) /* function declared without formal parameter list */ +#pragma warning(error:4029) /* declared formal parameter list different from definition */ +#pragma warning(error:4033) /* 'function' must return a value */ +#pragma warning(error:4035) /* 'function' : no return value */ +#pragma warning(error:4045) /* array bounds overflow */ +#pragma warning(error:4047) /* different levels of indirection */ +#pragma warning(error:4049) /* terminating line number emission */ +#pragma warning(error:4053) /* An expression of type void was used as an operand */ +#pragma warning(error:4071) /* no function prototype given */ +#pragma warning(disable:4101) /* unreferenced local variable */ +#pragma warning(error:4150) + +#pragma warning(disable:4244) /* No possible loss of data warnings */ +#pragma warning(disable:4305) /* No truncation from int to char warnings */ + +#pragma warning(error:4819) /* The file contains a character that cannot be represented in the current code page */ + +/* work around Microsoft's premature attempt to deprecate the C-Library */ +#define _CRT_SECURE_NO_WARNINGS +#define _CRT_NONSTDC_NO_WARNINGS diff --git a/ports/glibmm/portfile.cmake b/ports/glibmm/portfile.cmake new file mode 100644 index 000000000..fd4853f55 --- /dev/null +++ b/ports/glibmm/portfile.cmake @@ -0,0 +1,105 @@ +# Glib uses winapi functions not available in WindowsStore, so glibmm +# also +if (VCPKG_CMAKE_SYSTEM_NAME STREQUAL WindowsStore) + message(FATAL_ERROR "Error: UWP builds are currently not supported.") +endif() + +# Glib relies on DllMain, so glibmm also +if (VCPKG_LIBRARY_LINKAGE STREQUAL static) + message(STATUS "Warning: Static building not supported. Building dynamic.") + set(VCPKG_LIBRARY_LINKAGE dynamic) +endif() + +include(vcpkg_common_functions) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/glibmm-2.52.1) +vcpkg_download_distfile(ARCHIVE + URLS "http://ftp.gnome.org/pub/GNOME/sources/glibmm/2.52/glibmm-2.52.1.tar.xz" + FILENAME "glibmm-2.52.1.tar.xz" + SHA512 702158762cb28972b315ab98dc00a62e532bda08b6e76dc2a2556e8cb381c2021290891887a4af2fbff5a62bab4d50581be73037dc8e0dc47d5febd6cbeb7bda +) +vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES ${CMAKE_CURRENT_LIST_DIR}/fix_properties.patch ${CMAKE_CURRENT_LIST_DIR}/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/glibmm.sln + TARGET giomm + PLATFORM ${VS_PLATFORM} + # Need this for it to pick up xerces-c port: https://github.com/Microsoft/vcpkg/issues/891 + OPTIONS /p:ForceImportBeforeCppTargets=${VCPKG_ROOT_DIR}/scripts/buildsystems/msbuild/vcpkg.targets +) + +# Handle headers +file(COPY ${SOURCE_PATH}/MSVC_Net2013/giomm/giommconfig.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) +file(COPY ${SOURCE_PATH}/gio/giomm.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) +file( + COPY + ${SOURCE_PATH}/gio/giomm + DESTINATION ${CURRENT_PACKAGES_DIR}/include + FILES_MATCHING PATTERN *.h +) +file(COPY ${SOURCE_PATH}/MSVC_Net2013/glibmm/glibmmconfig.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) +file(COPY ${SOURCE_PATH}/glib/glibmm.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) +file( + COPY + ${SOURCE_PATH}/glib/glibmm + DESTINATION ${CURRENT_PACKAGES_DIR}/include + FILES_MATCHING PATTERN *.h +) + +# Handle libraries +file( + COPY + ${SOURCE_PATH}/MSVC_Net2013/Release/${VS_PLATFORM}/bin/giomm.dll + DESTINATION ${CURRENT_PACKAGES_DIR}/bin +) +file( + COPY + ${SOURCE_PATH}/MSVC_Net2013/Release/${VS_PLATFORM}/bin/giomm.lib + DESTINATION ${CURRENT_PACKAGES_DIR}/lib +) +file( + COPY + ${SOURCE_PATH}/MSVC_Net2013/Release/${VS_PLATFORM}/bin/glibmm.dll + DESTINATION ${CURRENT_PACKAGES_DIR}/bin +) +file( + COPY + ${SOURCE_PATH}/MSVC_Net2013/Release/${VS_PLATFORM}/bin/glibmm.lib + DESTINATION ${CURRENT_PACKAGES_DIR}/lib +) +file( + COPY + ${SOURCE_PATH}/MSVC_Net2013/Debug/${VS_PLATFORM}/bin/giomm.dll + DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin +) +file( + COPY + ${SOURCE_PATH}/MSVC_Net2013/Debug/${VS_PLATFORM}/bin/giomm.lib + DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib +) +file( + COPY + ${SOURCE_PATH}/MSVC_Net2013/Debug/${VS_PLATFORM}/bin/glibmm.dll + DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin +) +file( + COPY + ${SOURCE_PATH}/MSVC_Net2013/Debug/${VS_PLATFORM}/bin/glibmm.lib + DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib +) + +vcpkg_copy_pdbs() + +# Handle copyright and readme +file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/glibmm RENAME copyright) +file(INSTALL ${SOURCE_PATH}/README DESTINATION ${CURRENT_PACKAGES_DIR}/share/glibmm RENAME readme.txt) diff --git a/ports/glm/CONTROL b/ports/glm/CONTROL index 36a40e32d..4e7bad7ee 100644 --- a/ports/glm/CONTROL +++ b/ports/glm/CONTROL @@ -1,3 +1,3 @@ Source: glm -Version: 0.9.8.4-1 +Version: 0.9.8.5 Description: OpenGL Mathematics (GLM) https://glm.g-truc.net diff --git a/ports/glm/portfile.cmake b/ports/glm/portfile.cmake index ff988c47b..81e764f06 100644 --- a/ports/glm/portfile.cmake +++ b/ports/glm/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO g-truc/glm - REF 0.9.8.4 - SHA512 ff0e0651a695caebe9235882d14e09546d52b3cdf66cca8e2078f15b02a3fca4e47bd97d2807aa329f76aa633af3b4999501bd4d0b22ad44b00558d4917f39ed + REF 0.9.8.5 + SHA512 5a7e84ecc5a54320c74776c133bfdbeaf0d4496a7a7fdf2f4ccf89e66b3665a577a370a662ac97a350a2b1f717ce769cb0826057ebb3b13c9c2fee65f20ac7b4 HEAD_REF master ) diff --git a/ports/globjects/portfile.cmake b/ports/globjects/portfile.cmake index 5ab880ad6..08fae6ec3 100644 --- a/ports/globjects/portfile.cmake +++ b/ports/globjects/portfile.cmake @@ -15,7 +15,12 @@ vcpkg_download_distfile(ARCHIVE ) vcpkg_extract_source_archive(${ARCHIVE}) -vcpkg_configure_cmake(SOURCE_PATH ${SOURCE_PATH}) +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + OPTIONS + -DOPTION_BUILD_TESTS=OFF + -DOPTION_BUILD_GPU_TESTS=OFF +) #vcpkg_build_cmake() vcpkg_install_cmake() diff --git a/ports/gmime/CMakeLists.txt b/ports/gmime/CMakeLists.txt new file mode 100644 index 000000000..18ec89518 --- /dev/null +++ b/ports/gmime/CMakeLists.txt @@ -0,0 +1,179 @@ +cmake_minimum_required(VERSION 3.8) + +project(gmime C) + +set(GLIB_LIB_SUFFIX 2.0) +set(GMIME_DLL_SUFFIX 3) +set(GMIME_LIB_SUFFIX 3.0) + +# Find glib +find_path(GLIB_INCLUDE_DIR glib.h) +find_library(GLIB_GLIB_LIBRARY glib-${GLIB_LIB_SUFFIX}) +find_library(GLIB_GIO_LIBRARY gio-${GLIB_LIB_SUFFIX}) +find_library(GLIB_GOBJECT_LIBRARY gobject-${GLIB_LIB_SUFFIX}) +set(GLIB_LIBRARIES ${GLIB_GLIB_LIBRARY} ${GLIB_GIO_LIBRARY} ${GLIB_GOBJECT_LIBRARY}) + +# Find other deps +find_path(ICONV_INCLUDE_DIR iconv.h) +find_library(ICONV_LIBRARY NAMES iconv libiconv) + +find_library(IDN_LIBRARY NAMES libidn2 libidn) + +find_package(zlib REQUIRED) + +if(MSVC) + add_definitions(-D_CRT_SECURE_NO_DEPRECATE) + add_definitions(-D_CRT_NONSTDC_NO_DEPRECATE) +endif() + +add_definitions(-DHAVE_CONFIG_H) +add_definitions(-DG_LOG_DOMAIN="GMime") + +# List the source files +set(LIB_SRC gmime/gmime.c + gmime/gmime-application-pkcs7-mime.c + gmime/gmime-certificate.c + gmime/gmime-charset.c + gmime/gmime-common.c + gmime/gmime-content-type.c + gmime/gmime-crypto-context.c + gmime/gmime-data-wrapper.c + gmime/gmime-disposition.c + gmime/gmime-encodings.c + gmime/gmime-events.c + gmime/gmime-filter.c + gmime/gmime-filter-basic.c + gmime/gmime-filter-best.c + gmime/gmime-filter-charset.c + gmime/gmime-filter-checksum.c + gmime/gmime-filter-dos2unix.c + gmime/gmime-filter-enriched.c + gmime/gmime-filter-from.c + gmime/gmime-filter-gzip.c + gmime/gmime-filter-html.c + gmime/gmime-filter-smtp-data.c + gmime/gmime-filter-strip.c + gmime/gmime-filter-unix2dos.c + gmime/gmime-filter-windows.c + gmime/gmime-filter-yenc.c + gmime/gmime-format-options.c + gmime/gmime-gpg-context.c + gmime/gmime-gpgme-utils.c + gmime/gmime-header.c + gmime/gmime-iconv.c + gmime/gmime-iconv-utils.c + gmime/gmime-message.c + gmime/gmime-message-part.c + gmime/gmime-message-partial.c + gmime/gmime-multipart.c + gmime/gmime-multipart-encrypted.c + gmime/gmime-multipart-signed.c + gmime/gmime-object.c + gmime/gmime-param.c + gmime/gmime-parse-utils.c + gmime/gmime-parser.c + gmime/gmime-parser-options.c + gmime/gmime-part.c + gmime/gmime-part-iter.c + gmime/gmime-pkcs7-context.c + gmime/gmime-references.c + gmime/gmime-signature.c + gmime/gmime-stream.c + gmime/gmime-stream-buffer.c + gmime/gmime-stream-cat.c + gmime/gmime-stream-file.c + gmime/gmime-stream-filter.c + gmime/gmime-stream-fs.c + gmime/gmime-stream-gio.c + gmime/gmime-stream-mem.c + gmime/gmime-stream-mmap.c + gmime/gmime-stream-null.c + gmime/gmime-stream-pipe.c + gmime/gmime-text-part.c + gmime/gmime-utils.c + gmime/internet-address.c + util/packed.c + util/url-scanner.c + util/gtrie.c +) + +set (LIB_HEADERS gmime/gmime.h + gmime/gmime-version.h + gmime/gmime-error.h + gmime/gmime-charset.h + gmime/gmime-iconv.h + gmime/gmime-iconv-utils.h + gmime/gmime-param.h + gmime/gmime-content-type.h + gmime/gmime-disposition.h + gmime/gmime-data-wrapper.h + gmime/gmime-object.h + gmime/gmime-part.h + gmime/gmime-text-part.h + gmime/gmime-part-iter.h + gmime/gmime-application-pkcs7-mime.h + gmime/gmime-multipart.h + gmime/gmime-multipart-encrypted.h + gmime/gmime-multipart-signed.h + gmime/gmime-message.h + gmime/gmime-message-part.h + gmime/gmime-message-partial.h + gmime/internet-address.h + gmime/gmime-encodings.h + gmime/gmime-format-options.h + gmime/gmime-parser-options.h + gmime/gmime-parser.h + gmime/gmime-utils.h + gmime/gmime-references.h + gmime/gmime-stream.h + gmime/gmime-stream-buffer.h + gmime/gmime-stream-cat.h + gmime/gmime-stream-file.h + gmime/gmime-stream-filter.h + gmime/gmime-stream-fs.h + gmime/gmime-stream-gio.h + gmime/gmime-stream-mem.h + gmime/gmime-stream-mmap.h + gmime/gmime-stream-null.h + gmime/gmime-stream-pipe.h + gmime/gmime-filter.h + gmime/gmime-filter-basic.h + gmime/gmime-filter-best.h + gmime/gmime-filter-charset.h + gmime/gmime-filter-checksum.h + gmime/gmime-filter-dos2unix.h + gmime/gmime-filter-enriched.h + gmime/gmime-filter-from.h + gmime/gmime-filter-gzip.h + gmime/gmime-filter-html.h + gmime/gmime-filter-smtp-data.h + gmime/gmime-filter-strip.h + gmime/gmime-filter-unix2dos.h + gmime/gmime-filter-windows.h + gmime/gmime-filter-yenc.h + gmime/gmime-crypto-context.h + gmime/gmime-pkcs7-context.h + gmime/gmime-gpg-context.h +) + +if(MSVC AND BUILD_SHARED_LIBS) + set(MSVC_SRC gmime.def) +endif() + +add_library(${PROJECT_NAME} ${LIB_SRC} ${MSVC_SRC}) + +set_target_properties(${PROJECT_NAME} PROPERTIES + OUTPUT_NAME ${PROJECT_NAME}-${GMIME_DLL_SUFFIX} + ARCHIVE_OUTPUT_NAME ${PROJECT_NAME}-${GMIME_LIB_SUFFIX} +) + +target_include_directories(${PROJECT_NAME} PRIVATE . ./util ${GLIB_INCLUDE_DIR} ${ICONV_INCLUDE_DIR} ${ZLIB_INCLUDE_DIR}) +target_link_libraries(${PROJECT_NAME} PRIVATE ${GLIB_LIBRARIES} ${ICONV_LIBRARY} ${ZLIB_LIBRARIES} ${IDN_LIBRARY}) +target_link_libraries(${PROJECT_NAME} PRIVATE Ws2_32.lib) + +install(TARGETS ${PROJECT_NAME} + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib) + +install(FILES ${LIB_HEADERS} DESTINATION include/gmime) diff --git a/ports/gmime/CONTROL b/ports/gmime/CONTROL new file mode 100644 index 000000000..215df5995 --- /dev/null +++ b/ports/gmime/CONTROL @@ -0,0 +1,4 @@ +Source: gmime +Version: 3.0.2 +Build-Depends: zlib, glib, libiconv, libidn2 +Description: GMime is a C/C++ library which may be used for the creation and parsing of messages using the Multipurpose Internet Mail Extension (MIME). diff --git a/ports/gmime/config.h b/ports/gmime/config.h new file mode 100644 index 000000000..578223e20 --- /dev/null +++ b/ports/gmime/config.h @@ -0,0 +1,184 @@ +/* config.h. Generated from config.h.in by configure. */ +/* config.h.in. Generated from configure.ac by autoheader. */ + +/* Define if GMime should enable GpgME PGP and S/MIME support. */ +/* #undef ENABLE_CRYPTO */ + +/* Define if GMime should enable warning output. */ +/* #undef ENABLE_WARNINGS */ + +/* Define to the GMime version */ +#define GMIME_VERSION "3.0.2" + +/* Define to 1 if you have the <dlfcn.h> header file. */ +/* #undef HAVE_DLFCN_H */ + +/* Define to 1 if you have the `fsync' function. */ +/* #undef HAVE_FSYNC */ + +/* Define to 1 if you have the `getaddrinfo' function. */ +#define HAVE_GETADDRINFO 1 + +/* Define to 1 if you have the `getdomainname' function. */ +/* #undef HAVE_GETDOMAINNAME */ + +/* Define to 1 if you have the `gethostname' function. */ +#define HAVE_GETHOSTNAME 1 + +/* Define to 1 if you have the <getopt.h> header with the GNU `getopt_long' + function. */ +#define HAVE_GETOPT_H 1 + +/* Define to 1 if you have the `getpagesize' function. */ +#define HAVE_GETPAGESIZE 1 + +/* Define to 1 to use auto-detected iconv-friendly charset names. */ +/* #undef HAVE_ICONV_DETECT_H */ + +/* Define to 1 if you have the <inttypes.h> header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the <memory.h> header file. */ +#define HAVE_MEMORY_H 1 + +/* Define to 1 if you have a working `mmap' system call. */ +/* #undef HAVE_MMAP */ + +/* Define to 1 if you have the `msync' function. */ +/* #undef HAVE_MSYNC */ + +/* Define to 1 if you have the `munmap' function. */ +/* #undef HAVE_MUNMAP */ + +/* Define to 1 if you have the <netdb.h> header file. */ +/* #undef HAVE_NETDB_H */ + +/* Define to 1 if you have the `poll' function. */ +/* #undef HAVE_POLL */ + +/* Define to 1 if you have the <poll.h> header file. */ +/* #undef HAVE_POLL_H */ + +/* Define to 1 if you have the `select' function. */ +/* #undef HAVE_SELECT */ + +/* Define to 1 if you have the <stdint.h> header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the <stdlib.h> header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if you have the <strings.h> header file. */ +/* #undef HAVE_STRINGS_H */ + +/* Define to 1 if you have the <string.h> header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the <sys/mman.h> header file. */ +/* #undef HAVE_SYS_MMAN_H */ + +/* Define to 1 if you have the <sys/param.h> header file. */ +/* #undef HAVE_SYS_PARAM_H */ + +/* Define to 1 if you have the <sys/stat.h> header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the <sys/types.h> header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the <time.h> header file. */ +#define HAVE_TIME_H 1 + +/* Define to 1 if you have the <unistd.h> header file. */ +#define HAVE_UNISTD_H 1 + +/* Define if struct utsname has a domainname member */ +/* #undef HAVE_UTSNAME_DOMAINNAME */ + +/* Define to 1 if you have the <winsock2.h> header file. */ +#define HAVE_WINSOCK2_H 1 + +/* Define to 1 if GNU Libidn should be used. */ +#define LIBIDN 1 + +/* Define to the sub-directory where libtool stores uninstalled libraries. */ +#define LT_OBJDIR ".libs/" + +/* Define with a value if your <sys/param.h> does not define MAXHOSTNAMELEN */ +/* #undef MAXHOSTNAMELEN */ + +/* Define to 0 if your system does not have the O_LARGEFILE flag */ +/* #undef O_LARGEFILE */ + +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "https://github.com/jstedfast/gmime/issues" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "gmime" + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "gmime 3.0.2" + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME "gmime" + +/* Define to the home page for this package. */ +#define PACKAGE_URL "" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "3.0.2" + +/* The size of `off_t', as computed by sizeof. */ +#define SIZEOF_OFF_T 8 + +/* The size of `size_t', as computed by sizeof. */ +#define SIZEOF_SIZE_T 8 + +/* The size of `ssize_t', as computed by sizeof. */ +#define SIZEOF_SSIZE_T 8 + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Using GNU libiconv */ +/* #undef USE_LIBICONV_GNU */ + +/* Using a native implementation of iconv in a separate library */ +#define USE_LIBICONV_NATIVE 1 + +/* Enable large inode numbers on Mac OS X 10.5. */ +#ifndef _DARWIN_USE_64_BIT_INODE +# define _DARWIN_USE_64_BIT_INODE 1 +#endif + +/* Number of bits in a file offset, on hosts where this is settable. */ +/* #undef _FILE_OFFSET_BITS */ + +/* Define for large files, on AIX-style hosts. */ +/* #undef _LARGE_FILES */ + +/* Define to `__inline__' or `__inline' if that's what the C compiler + calls it, or to nothing if 'inline' is not supported under any name. */ +#ifndef __cplusplus +#define inline __inline +#endif + +/* Define to `int' if <sys/types.h> does not define. */ +/* #undef mode_t */ + +/* Define to `unsigned long int' if <poll.h> does not define. */ +/* #undef nfds_t */ + +/* Define to `long int' if <sys/types.h> does not define. */ +/* #undef off_t */ + +/* Define to `unsigned int' if <sys/types.h> does not define. */ +/* #undef size_t */ + +/* Define to `int' if <sys/types.h> does not define. */ +#define ssize_t intptr_t + +#ifdef _MSC_VER +#pragma warning(disable: 4018) +#pragma warning(disable: 4101) +#endif diff --git a/ports/gmime/gmime.def b/ports/gmime/gmime.def new file mode 100644 index 000000000..463dda27e --- /dev/null +++ b/ports/gmime/gmime.def @@ -0,0 +1,589 @@ +EXPORTS + +g_mime_application_pkcs7_mime_decrypt +g_mime_application_pkcs7_mime_encrypt +g_mime_application_pkcs7_mime_get_smime_type +g_mime_application_pkcs7_mime_get_type +g_mime_application_pkcs7_mime_new +g_mime_application_pkcs7_mime_sign +g_mime_application_pkcs7_mime_verify +g_mime_certificate_get_created +g_mime_certificate_get_digest_algo +g_mime_certificate_get_email +g_mime_certificate_get_expires +g_mime_certificate_get_fingerprint +g_mime_certificate_get_issuer_name +g_mime_certificate_get_issuer_serial +g_mime_certificate_get_key_id +g_mime_certificate_get_name +g_mime_certificate_get_pubkey_algo +g_mime_certificate_get_trust +g_mime_certificate_get_type +g_mime_certificate_list_add +g_mime_certificate_list_clear +g_mime_certificate_list_contains +g_mime_certificate_list_get_certificate +g_mime_certificate_list_get_type +g_mime_certificate_list_index_of +g_mime_certificate_list_insert +g_mime_certificate_list_length +g_mime_certificate_list_new +g_mime_certificate_list_remove +g_mime_certificate_list_remove_at +g_mime_certificate_list_set_certificate +g_mime_certificate_new +g_mime_certificate_set_created +g_mime_certificate_set_digest_algo +g_mime_certificate_set_email +g_mime_certificate_set_expires +g_mime_certificate_set_fingerprint +g_mime_certificate_set_issuer_name +g_mime_certificate_set_issuer_serial +g_mime_certificate_set_key_id +g_mime_certificate_set_name +g_mime_certificate_set_pubkey_algo +g_mime_certificate_set_trust +g_mime_charset_best +g_mime_charset_best_name +g_mime_charset_can_encode +g_mime_charset_canon_name +g_mime_charset_iconv_name +g_mime_charset_init +g_mime_charset_iso_to_windows +g_mime_charset_language +g_mime_charset_locale_name +g_mime_charset_map_init +g_mime_charset_map_shutdown +g_mime_charset_name +g_mime_charset_step +g_mime_check_version +g_mime_content_disposition_encode +g_mime_content_disposition_get_disposition +g_mime_content_disposition_get_parameter +g_mime_content_disposition_get_parameters +g_mime_content_disposition_get_type +g_mime_content_disposition_is_attachment +g_mime_content_disposition_new +g_mime_content_disposition_parse +g_mime_content_disposition_set_disposition +g_mime_content_disposition_set_parameter +g_mime_content_encoding_from_string +g_mime_content_encoding_to_string +g_mime_content_type_encode +g_mime_content_type_get_media_subtype +g_mime_content_type_get_media_type +g_mime_content_type_get_mime_type +g_mime_content_type_get_parameter +g_mime_content_type_get_parameters +g_mime_content_type_get_type +g_mime_content_type_is_type +g_mime_content_type_new +g_mime_content_type_parse +g_mime_content_type_set_media_subtype +g_mime_content_type_set_media_type +g_mime_content_type_set_parameter +g_mime_crypto_context_decrypt +g_mime_crypto_context_digest_id +g_mime_crypto_context_digest_name +g_mime_crypto_context_encrypt +g_mime_crypto_context_export_keys +g_mime_crypto_context_get_encryption_protocol +g_mime_crypto_context_get_key_exchange_protocol +g_mime_crypto_context_get_request_password +g_mime_crypto_context_get_signature_protocol +g_mime_crypto_context_get_type +g_mime_crypto_context_import_keys +g_mime_crypto_context_new +g_mime_crypto_context_register +g_mime_crypto_context_set_request_password +g_mime_crypto_context_shutdown +g_mime_crypto_context_sign +g_mime_crypto_context_verify +g_mime_data_wrapper_get_encoding +g_mime_data_wrapper_get_stream +g_mime_data_wrapper_get_type +g_mime_data_wrapper_new +g_mime_data_wrapper_new_with_stream +g_mime_data_wrapper_set_encoding +g_mime_data_wrapper_set_stream +g_mime_data_wrapper_write_to_stream +g_mime_decrypt_result_get_cipher +g_mime_decrypt_result_get_mdc +g_mime_decrypt_result_get_recipients +g_mime_decrypt_result_get_session_key +g_mime_decrypt_result_get_signatures +g_mime_decrypt_result_get_type +g_mime_decrypt_result_new +g_mime_decrypt_result_set_cipher +g_mime_decrypt_result_set_mdc +g_mime_decrypt_result_set_recipients +g_mime_decrypt_result_set_session_key +g_mime_decrypt_result_set_signatures +g_mime_encoding_base64_decode_step +g_mime_encoding_base64_encode_close +g_mime_encoding_base64_encode_step +g_mime_encoding_flush +g_mime_encoding_init_decode +g_mime_encoding_init_encode +g_mime_encoding_outlen +g_mime_encoding_quoted_decode_step +g_mime_encoding_quoted_encode_close +g_mime_encoding_quoted_encode_step +g_mime_encoding_reset +g_mime_encoding_step +g_mime_encoding_uudecode_step +g_mime_encoding_uuencode_close +g_mime_encoding_uuencode_step +g_mime_filter_backup +g_mime_filter_basic_get_type +g_mime_filter_basic_new +g_mime_filter_best_charset +g_mime_filter_best_encoding +g_mime_filter_best_get_type +g_mime_filter_best_new +g_mime_filter_charset_get_type +g_mime_filter_charset_new +g_mime_filter_checksum_get_digest +g_mime_filter_checksum_get_type +g_mime_filter_checksum_new +g_mime_filter_complete +g_mime_filter_copy +g_mime_filter_dos2unix_get_type +g_mime_filter_dos2unix_new +g_mime_filter_enriched_get_type +g_mime_filter_enriched_new +g_mime_filter_filter +g_mime_filter_from_get_type +g_mime_filter_from_new +g_mime_filter_get_type +g_mime_filter_gzip_get_type +g_mime_filter_gzip_new +g_mime_filter_html_get_type +g_mime_filter_html_new +g_mime_filter_reset +g_mime_filter_set_size +g_mime_filter_smtp_data_get_type +g_mime_filter_smtp_data_new +g_mime_filter_strip_get_type +g_mime_filter_strip_new +g_mime_filter_unix2dos_get_type +g_mime_filter_unix2dos_new +g_mime_filter_windows_get_type +g_mime_filter_windows_is_windows_charset +g_mime_filter_windows_new +g_mime_filter_windows_real_charset +g_mime_filter_yenc_get_crc +g_mime_filter_yenc_get_pcrc +g_mime_filter_yenc_get_type +g_mime_filter_yenc_new +g_mime_filter_yenc_set_crc +g_mime_filter_yenc_set_state +g_mime_format_options_add_hidden_header +g_mime_format_options_clear_hidden_headers +g_mime_format_options_clone +g_mime_format_options_create_newline_filter +g_mime_format_options_free +g_mime_format_options_get_default +g_mime_format_options_get_newline +g_mime_format_options_get_newline_format +g_mime_format_options_get_param_encoding_method +g_mime_format_options_get_type +g_mime_format_options_is_hidden_header +g_mime_format_options_new +g_mime_format_options_remove_hidden_header +g_mime_format_options_set_newline_format +g_mime_format_options_set_param_encoding_method +g_mime_gpg_context_get_type +g_mime_gpg_context_new +g_mime_header_format_addrlist +g_mime_header_format_content_disposition +g_mime_header_format_content_type +g_mime_header_format_default +g_mime_header_format_message_id +g_mime_header_format_received +g_mime_header_format_references +g_mime_header_get_name +g_mime_header_get_offset +g_mime_header_get_raw_name +g_mime_header_get_raw_value +g_mime_header_get_type +g_mime_header_get_value +g_mime_header_list_append +g_mime_header_list_clear +g_mime_header_list_contains +g_mime_header_list_get_count +g_mime_header_list_get_header +g_mime_header_list_get_header_at +g_mime_header_list_get_type +g_mime_header_list_new +g_mime_header_list_prepend +g_mime_header_list_remove +g_mime_header_list_remove_at +g_mime_header_list_set +g_mime_header_list_to_string +g_mime_header_list_write_to_stream +g_mime_header_set_raw_value +g_mime_header_set_value +g_mime_header_write_to_stream +g_mime_iconv_close +g_mime_iconv_locale_to_utf8 +g_mime_iconv_locale_to_utf8_length +g_mime_iconv_open +g_mime_iconv_strdup +g_mime_iconv_strndup +g_mime_iconv_utf8_to_locale +g_mime_iconv_utf8_to_locale_length +g_mime_init +g_mime_locale_charset +g_mime_locale_language +g_mime_message_add_mailbox +g_mime_message_foreach +g_mime_message_get_addresses +g_mime_message_get_all_recipients +g_mime_message_get_bcc +g_mime_message_get_body +g_mime_message_get_cc +g_mime_message_get_date +g_mime_message_get_from +g_mime_message_get_message_id +g_mime_message_get_mime_part +g_mime_message_get_reply_to +g_mime_message_get_sender +g_mime_message_get_subject +g_mime_message_get_to +g_mime_message_get_type +g_mime_message_new +g_mime_message_part_get_message +g_mime_message_part_get_type +g_mime_message_part_new +g_mime_message_part_new_with_message +g_mime_message_part_set_message +g_mime_message_partial_get_id +g_mime_message_partial_get_number +g_mime_message_partial_get_total +g_mime_message_partial_get_type +g_mime_message_partial_new +g_mime_message_partial_reconstruct_message +g_mime_message_partial_split_message +g_mime_message_set_date +g_mime_message_set_message_id +g_mime_message_set_mime_part +g_mime_message_set_subject +g_mime_multipart_add +g_mime_multipart_clear +g_mime_multipart_contains +g_mime_multipart_encrypted_decrypt +g_mime_multipart_encrypted_encrypt +g_mime_multipart_encrypted_get_type +g_mime_multipart_encrypted_new +g_mime_multipart_foreach +g_mime_multipart_get_boundary +g_mime_multipart_get_count +g_mime_multipart_get_epilogue +g_mime_multipart_get_part +g_mime_multipart_get_prologue +g_mime_multipart_get_subpart_from_content_id +g_mime_multipart_get_type +g_mime_multipart_index_of +g_mime_multipart_insert +g_mime_multipart_new +g_mime_multipart_new_with_subtype +g_mime_multipart_remove +g_mime_multipart_remove_at +g_mime_multipart_replace +g_mime_multipart_set_boundary +g_mime_multipart_set_epilogue +g_mime_multipart_set_prologue +g_mime_multipart_signed_get_type +g_mime_multipart_signed_new +g_mime_multipart_signed_sign +g_mime_multipart_signed_verify +g_mime_object_append_header +g_mime_object_encode +g_mime_object_get_content_disposition +g_mime_object_get_content_disposition_parameter +g_mime_object_get_content_id +g_mime_object_get_content_type +g_mime_object_get_content_type_parameter +g_mime_object_get_disposition +g_mime_object_get_header +g_mime_object_get_header_list +g_mime_object_get_headers +g_mime_object_get_type +g_mime_object_new +g_mime_object_new_type +g_mime_object_prepend_header +g_mime_object_register_type +g_mime_object_remove_header +g_mime_object_set_content_disposition +g_mime_object_set_content_disposition_parameter +g_mime_object_set_content_id +g_mime_object_set_content_type +g_mime_object_set_content_type_parameter +g_mime_object_set_disposition +g_mime_object_set_header +g_mime_object_to_string +g_mime_object_write_to_stream +g_mime_param_get_charset +g_mime_param_get_encoding_method +g_mime_param_get_lang +g_mime_param_get_name +g_mime_param_get_type +g_mime_param_get_value +g_mime_param_list_clear +g_mime_param_list_encode +g_mime_param_list_get_parameter +g_mime_param_list_get_parameter_at +g_mime_param_list_get_type +g_mime_param_list_length +g_mime_param_list_new +g_mime_param_list_parse +g_mime_param_list_remove +g_mime_param_list_remove_at +g_mime_param_list_set_parameter +g_mime_param_set_charset +g_mime_param_set_encoding_method +g_mime_param_set_lang +g_mime_param_set_value +g_mime_parser_construct_message +g_mime_parser_construct_part +g_mime_parser_eos +g_mime_parser_get_format +g_mime_parser_get_headers_begin +g_mime_parser_get_headers_end +g_mime_parser_get_mbox_marker +g_mime_parser_get_mbox_marker_offset +g_mime_parser_get_persist_stream +g_mime_parser_get_respect_content_length +g_mime_parser_get_type +g_mime_parser_init_with_stream +g_mime_parser_new +g_mime_parser_new_with_stream +g_mime_parser_options_clone +g_mime_parser_options_free +g_mime_parser_options_get_address_compliance_mode +g_mime_parser_options_get_allow_addresses_without_domain +g_mime_parser_options_get_default +g_mime_parser_options_get_fallback_charsets +g_mime_parser_options_get_parameter_compliance_mode +g_mime_parser_options_get_rfc2047_compliance_mode +g_mime_parser_options_get_type +g_mime_parser_options_new +g_mime_parser_options_set_address_compliance_mode +g_mime_parser_options_set_allow_addresses_without_domain +g_mime_parser_options_set_fallback_charsets +g_mime_parser_options_set_parameter_compliance_mode +g_mime_parser_options_set_rfc2047_compliance_mode +g_mime_parser_set_format +g_mime_parser_set_header_regex +g_mime_parser_set_persist_stream +g_mime_parser_set_respect_content_length +g_mime_parser_tell +g_mime_part_get_best_content_encoding +g_mime_part_get_content +g_mime_part_get_content_description +g_mime_part_get_content_encoding +g_mime_part_get_content_id +g_mime_part_get_content_location +g_mime_part_get_content_md5 +g_mime_part_get_filename +g_mime_part_get_openpgp_data +g_mime_part_get_type +g_mime_part_is_attachment +g_mime_part_iter_clone +g_mime_part_iter_free +g_mime_part_iter_get_current +g_mime_part_iter_get_parent +g_mime_part_iter_get_path +g_mime_part_iter_get_toplevel +g_mime_part_iter_get_type +g_mime_part_iter_is_valid +g_mime_part_iter_jump_to +g_mime_part_iter_new +g_mime_part_iter_next +g_mime_part_iter_prev +g_mime_part_iter_remove +g_mime_part_iter_replace +g_mime_part_iter_reset +g_mime_part_new +g_mime_part_new_with_type +g_mime_part_openpgp_decrypt +g_mime_part_openpgp_encrypt +g_mime_part_openpgp_sign +g_mime_part_openpgp_verify +g_mime_part_set_content +g_mime_part_set_content_description +g_mime_part_set_content_encoding +g_mime_part_set_content_id +g_mime_part_set_content_location +g_mime_part_set_content_md5 +g_mime_part_set_filename +g_mime_part_set_openpgp_data +g_mime_part_verify_content_md5 +g_mime_pkcs7_context_get_type +g_mime_pkcs7_context_new +g_mime_references_append +g_mime_references_clear +g_mime_references_copy +g_mime_references_free +g_mime_references_get_message_id +g_mime_references_get_type +g_mime_references_length +g_mime_references_new +g_mime_references_parse +g_mime_references_set_message_id +g_mime_shutdown +g_mime_signature_get_certificate +g_mime_signature_get_created +g_mime_signature_get_expires +g_mime_signature_get_status +g_mime_signature_get_type +g_mime_signature_list_add +g_mime_signature_list_clear +g_mime_signature_list_contains +g_mime_signature_list_get_signature +g_mime_signature_list_get_type +g_mime_signature_list_index_of +g_mime_signature_list_insert +g_mime_signature_list_length +g_mime_signature_list_new +g_mime_signature_list_remove +g_mime_signature_list_remove_at +g_mime_signature_list_set_signature +g_mime_signature_new +g_mime_signature_set_certificate +g_mime_signature_set_created +g_mime_signature_set_expires +g_mime_signature_set_status +g_mime_stream_buffer_get_type +g_mime_stream_buffer_gets +g_mime_stream_buffer_new +g_mime_stream_buffer_readln +g_mime_stream_cat_add_source +g_mime_stream_cat_get_type +g_mime_stream_cat_new +g_mime_stream_close +g_mime_stream_construct +g_mime_stream_eos +g_mime_stream_file_get_owner +g_mime_stream_file_get_type +g_mime_stream_file_new +g_mime_stream_file_new_with_bounds +g_mime_stream_file_open +g_mime_stream_file_set_owner +g_mime_stream_filter_add +g_mime_stream_filter_get_owner +g_mime_stream_filter_get_type +g_mime_stream_filter_new +g_mime_stream_filter_remove +g_mime_stream_filter_set_owner +g_mime_stream_flush +g_mime_stream_fs_get_owner +g_mime_stream_fs_get_type +g_mime_stream_fs_new +g_mime_stream_fs_new_with_bounds +g_mime_stream_fs_open +g_mime_stream_fs_set_owner +g_mime_stream_get_type +g_mime_stream_gio_get_owner +g_mime_stream_gio_get_type +g_mime_stream_gio_new +g_mime_stream_gio_new_with_bounds +g_mime_stream_gio_set_owner +g_mime_stream_length +g_mime_stream_mem_get_byte_array +g_mime_stream_mem_get_owner +g_mime_stream_mem_get_type +g_mime_stream_mem_new +g_mime_stream_mem_new_with_buffer +g_mime_stream_mem_new_with_byte_array +g_mime_stream_mem_set_byte_array +g_mime_stream_mem_set_owner +g_mime_stream_mmap_get_type +g_mime_stream_mmap_new +g_mime_stream_mmap_new_with_bounds +g_mime_stream_null_count_newlines +g_mime_stream_null_get_count_newlines +g_mime_stream_null_get_type +g_mime_stream_null_new +g_mime_stream_pipe_get_owner +g_mime_stream_pipe_get_type +g_mime_stream_pipe_new +g_mime_stream_pipe_set_owner +g_mime_stream_printf +g_mime_stream_read +g_mime_stream_reset +g_mime_stream_seek +g_mime_stream_set_bounds +g_mime_stream_substream +g_mime_stream_tell +g_mime_stream_write +g_mime_stream_write_string +g_mime_stream_write_to_stream +g_mime_stream_writev +g_mime_text_part_get_charset +g_mime_text_part_get_text +g_mime_text_part_get_type +g_mime_text_part_new +g_mime_text_part_new_with_subtype +g_mime_text_part_set_charset +g_mime_text_part_set_text +g_mime_utils_best_encoding +g_mime_utils_decode_8bit +g_mime_utils_decode_message_id +g_mime_utils_generate_message_id +g_mime_utils_header_decode_date +g_mime_utils_header_decode_phrase +g_mime_utils_header_decode_text +g_mime_utils_header_encode_phrase +g_mime_utils_header_encode_text +g_mime_utils_header_format_date +g_mime_utils_header_printf +g_mime_utils_quote_string +g_mime_utils_structured_header_fold +g_mime_utils_text_is_8bit +g_mime_utils_unquote_string +g_mime_utils_unstructured_header_fold +g_mime_ydecode_step +g_mime_yencode_close +g_mime_yencode_step +gmime_binary_age +gmime_error_quark +gmime_gpgme_error_quark +gmime_interface_age +gmime_major_version +gmime_micro_version +gmime_minor_version +internet_address_get_charset +internet_address_get_name +internet_address_get_type +internet_address_group_add_member +internet_address_group_get_members +internet_address_group_get_type +internet_address_group_new +internet_address_group_set_members +internet_address_list_add +internet_address_list_append +internet_address_list_clear +internet_address_list_contains +internet_address_list_encode +internet_address_list_get_address +internet_address_list_get_type +internet_address_list_index_of +internet_address_list_insert +internet_address_list_length +internet_address_list_new +internet_address_list_parse +internet_address_list_prepend +internet_address_list_remove +internet_address_list_remove_at +internet_address_list_set_address +internet_address_list_to_string +internet_address_mailbox_get_addr +internet_address_mailbox_get_idn_addr +internet_address_mailbox_get_type +internet_address_mailbox_new +internet_address_mailbox_set_addr +internet_address_set_charset +internet_address_set_name +internet_address_to_string diff --git a/ports/gmime/idna.h b/ports/gmime/idna.h new file mode 100644 index 000000000..3313cdbc7 --- /dev/null +++ b/ports/gmime/idna.h @@ -0,0 +1,3 @@ +// Redirects header from libidn to libidn2 +// Created to avoid sources patching +#include <idn2.h> diff --git a/ports/gmime/portfile.cmake b/ports/gmime/portfile.cmake new file mode 100644 index 000000000..1fa50063c --- /dev/null +++ b/ports/gmime/portfile.cmake @@ -0,0 +1,37 @@ +include(vcpkg_common_functions) + +set(LIB_NAME gmime) +set(LIB_VERSION 3.0.2) + +set(LIB_FILENAME ${LIB_NAME}-${LIB_VERSION}.tar.xz) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${LIB_NAME}-${LIB_VERSION}) + +vcpkg_download_distfile(ARCHIVE + URLS "https://download.gnome.org/sources/gmime/3.0/${LIB_FILENAME}" + FILENAME "${LIB_FILENAME}" + SHA512 246f489c168ce7e04fab664b7e9ae7772ae52f0063fb0eac9153460d84fa5d9712457d81fbd1bdcdadb7e03007cf71ed3bad5287f1639214f54167427c9209ca +) +vcpkg_extract_source_archive(${ARCHIVE}) + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) + +# We can use file supplied with original sources +configure_file(${SOURCE_PATH}/build/vs2010/unistd.h ${SOURCE_PATH} COPYONLY) + +configure_file(${CMAKE_CURRENT_LIST_DIR}/config.h ${SOURCE_PATH} COPYONLY) +configure_file(${CMAKE_CURRENT_LIST_DIR}/idna.h ${SOURCE_PATH} COPYONLY) +configure_file(${CMAKE_CURRENT_LIST_DIR}/gmime.def ${SOURCE_PATH} COPYONLY) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA +) + +vcpkg_install_cmake() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +# License and man +file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${LIB_NAME} RENAME copyright) + +vcpkg_copy_pdbs() diff --git a/ports/grpc/CONTROL b/ports/grpc/CONTROL index 958ab7723..8eb7093e1 100644 --- a/ports/grpc/CONTROL +++ b/ports/grpc/CONTROL @@ -1,4 +1,4 @@ Source: grpc -Version: 1.6.0-2 +Version: 1.7.2 Build-Depends: zlib, openssl, protobuf, c-ares Description: An RPC library and framework diff --git a/ports/grpc/portfile.cmake b/ports/grpc/portfile.cmake index 791470bc2..45126f05f 100644 --- a/ports/grpc/portfile.cmake +++ b/ports/grpc/portfile.cmake @@ -12,24 +12,16 @@ endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO grpc/grpc - REF v1.6.0 - SHA512 70a68fecca43cfe8c94206fd39ad8f86e055eb2185ae8c90040cc35928f1102016775c66e83c3cc76690e44598764b215d884a206f8466d45b00e2c54593e682 + REF v1.7.2 + SHA512 54cb4165878fb3361cd7a81b631f1b20e991eadd286c0f6020542a8aa464cf30bdd1479dc413b767a1585bdc730e465a64c45e9e805723f38bd54521e1c4f942 HEAD_REF master ) -# fix from PR https://github.com/grpc/grpc/pull/12411 -vcpkg_download_distfile(CMAKE_ERROR_FIX_DIFF - URLS "https://github.com/grpc/grpc/commit/74c139a83987087f9e2d2e6b5d44c240d719061d.diff" - FILENAME "grpc-cmake-error-fix.diff" - SHA512 38cdff0e6db12276400cf4eec66aafdbfe34912a78a0604ced3b216d3a60e5b87464f9083fa5e5dfb4df1490ef10565cbe04d3f750f59c7e7e1a05334c0b528e -) - # Issue: https://github.com/grpc/grpc/issues/10759 vcpkg_apply_patches( SOURCE_PATH ${SOURCE_PATH} PATCHES ${CMAKE_CURRENT_LIST_DIR}/disable-csharp-ext.patch - ${CMAKE_ERROR_FIX_DIFF} ) if(VCPKG_CRT_LINKAGE STREQUAL static) diff --git a/ports/gtest/portfile.cmake b/ports/gtest/portfile.cmake index 333dc8ae3..491d6a8d5 100644 --- a/ports/gtest/portfile.cmake +++ b/ports/gtest/portfile.cmake @@ -60,3 +60,5 @@ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gmock.lib ${CURRENT_PACKAGES_DIR}/ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gmock_main.lib ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link/gmock_main.lib) vcpkg_copy_pdbs() + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) diff --git a/ports/gtest/usage b/ports/gtest/usage new file mode 100644 index 000000000..fa226ceed --- /dev/null +++ b/ports/gtest/usage @@ -0,0 +1,6 @@ +The package gtest is compatible with built-in CMake targets:
+
+ enable_testing()
+ find_package(GTest REQUIRED)
+ target_link_libraries(main PRIVATE GTest::GTest GTest::Main)
+ add_test(AllTestsInMain main)
diff --git a/ports/gtkmm/CONTROL b/ports/gtkmm/CONTROL new file mode 100644 index 000000000..a0812ef67 --- /dev/null +++ b/ports/gtkmm/CONTROL @@ -0,0 +1,4 @@ +Source: gtkmm +Version: 3.22.2 +Description: gtkmm is the official C++ interface for the popular GUI library GTK+. +Build-Depends: glib, atk, gtk, gdk-pixbuf, pango, cairo, libepoxy, gettext, glibmm, atkmm, cairomm, pangomm diff --git a/ports/gtkmm/COPYING b/ports/gtkmm/COPYING new file mode 100644 index 000000000..4362b4915 --- /dev/null +++ b/ports/gtkmm/COPYING @@ -0,0 +1,502 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + <one line to give the library's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + <signature of Ty Coon>, 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/ports/gtkmm/README b/ports/gtkmm/README new file mode 100644 index 000000000..ea1d8e0a6 --- /dev/null +++ b/ports/gtkmm/README @@ -0,0 +1,3 @@ +This is gtkmm, the C++ API for GTK+. +See http://www.gtkmm.org/ + diff --git a/ports/gtkmm/fix_charset.patch b/ports/gtkmm/fix_charset.patch new file mode 100644 index 000000000..027d74f99 --- /dev/null +++ b/ports/gtkmm/fix_charset.patch @@ -0,0 +1,2053 @@ +diff --git a/MSVC_Net2013/gdkmm.vcxproj b/MSVC_Net2013/gdkmm.vcxproj +index d9d08ac..8c6b528 100644 +--- a/MSVC_Net2013/gdkmm.vcxproj ++++ b/MSVC_Net2013/gdkmm.vcxproj +@@ -1,266 +1,267 @@ +-???<?xml version="1.0" encoding="utf-8"?> +-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> +- <ItemGroup Label="ProjectConfigurations"> +- <ProjectConfiguration Include="Debug|Win32"> +- <Configuration>Debug</Configuration> +- <Platform>Win32</Platform> +- </ProjectConfiguration> +- <ProjectConfiguration Include="Debug|x64"> +- <Configuration>Debug</Configuration> +- <Platform>x64</Platform> +- </ProjectConfiguration> +- <ProjectConfiguration Include="Release|Win32"> +- <Configuration>Release</Configuration> +- <Platform>Win32</Platform> +- </ProjectConfiguration> +- <ProjectConfiguration Include="Release|x64"> +- <Configuration>Release</Configuration> +- <Platform>x64</Platform> +- </ProjectConfiguration> +- </ItemGroup> +- <PropertyGroup Label="Globals"> +- <ProjectName>gdkmm</ProjectName> +- <ProjectGuid>{976C8F9C-1A1D-4E23-B79E-EC9091BBEA0E}</ProjectGuid> +- <Keyword>Win32Proj</Keyword> +- </PropertyGroup> +- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> +- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> +- <ConfigurationType>DynamicLibrary</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> +- <PlatformToolset>v120</PlatformToolset> +- </PropertyGroup> +- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> +- <ConfigurationType>DynamicLibrary</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> +- <PlatformToolset>v120</PlatformToolset> +- </PropertyGroup> +- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> +- <ConfigurationType>DynamicLibrary</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> +- <PlatformToolset>v120</PlatformToolset> +- </PropertyGroup> +- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> +- <ConfigurationType>DynamicLibrary</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> +- <PlatformToolset>v120</PlatformToolset> +- </PropertyGroup> +- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> +- <ImportGroup Label="ExtensionSettings"> +- </ImportGroup> +- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> +- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> +- <Import Project=".\gtkmm-build-defines.props" /> +- </ImportGroup> +- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> +- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> +- <Import Project=".\gtkmm-build-defines.props" /> +- </ImportGroup> +- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> +- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> +- <Import Project=".\gtkmm-build-defines.props" /> +- </ImportGroup> +- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets"> +- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> +- <Import Project=".\gtkmm-build-defines.props" /> +- </ImportGroup> +- <PropertyGroup Label="UserMacros" /> +- <PropertyGroup> +- <PreLinkEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</PreLinkEventUseInBuild> +- <PreLinkEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</PreLinkEventUseInBuild> +- <PreLinkEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</PreLinkEventUseInBuild> +- <PreLinkEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</PreLinkEventUseInBuild> +- <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)$(DebugDllSuffix)</TargetName> +- <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectName)$(DebugDllSuffix)</TargetName> +- <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectName)$(ReleaseDllSuffix)</TargetName> +- <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectName)$(ReleaseDllSuffix)</TargetName> +- </PropertyGroup> +- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> +- <ClCompile> +- <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions> +- <Optimization>Disabled</Optimization> +- <PreprocessorDefinitions>_DEBUG;$(GdkMMBuildDefs);%(PreprocessorDefinitions)</PreprocessorDefinitions> +- <MinimalRebuild>true</MinimalRebuild> +- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> +- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> +- <RuntimeTypeInfo>true</RuntimeTypeInfo> +- <PrecompiledHeader> +- </PrecompiledHeader> +- <WarningLevel>Level3</WarningLevel> +- <DebugInformationFormat>EditAndContinue</DebugInformationFormat> +- </ClCompile> +- <PreLinkEvent> +- <Message>Generate gdkmm def file</Message> +- <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj</Command> +- </PreLinkEvent> +- <Link> ++???<?xml version="1.0" encoding="utf-8"?> ++<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> ++ <ItemGroup Label="ProjectConfigurations"> ++ <ProjectConfiguration Include="Debug|Win32"> ++ <Configuration>Debug</Configuration> ++ <Platform>Win32</Platform> ++ </ProjectConfiguration> ++ <ProjectConfiguration Include="Debug|x64"> ++ <Configuration>Debug</Configuration> ++ <Platform>x64</Platform> ++ </ProjectConfiguration> ++ <ProjectConfiguration Include="Release|Win32"> ++ <Configuration>Release</Configuration> ++ <Platform>Win32</Platform> ++ </ProjectConfiguration> ++ <ProjectConfiguration Include="Release|x64"> ++ <Configuration>Release</Configuration> ++ <Platform>x64</Platform> ++ </ProjectConfiguration> ++ </ItemGroup> ++ <PropertyGroup Label="Globals"> ++ <ProjectName>gdkmm</ProjectName> ++ <ProjectGuid>{976C8F9C-1A1D-4E23-B79E-EC9091BBEA0E}</ProjectGuid> ++ <Keyword>Win32Proj</Keyword> ++ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion> ++ </PropertyGroup> ++ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> ++ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> ++ <ConfigurationType>DynamicLibrary</ConfigurationType> ++ <CharacterSet>Unicode</CharacterSet> ++ <PlatformToolset>v120</PlatformToolset> ++ </PropertyGroup> ++ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> ++ <ConfigurationType>DynamicLibrary</ConfigurationType> ++ <CharacterSet>Unicode</CharacterSet> ++ <PlatformToolset>v120</PlatformToolset> ++ </PropertyGroup> ++ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> ++ <ConfigurationType>DynamicLibrary</ConfigurationType> ++ <CharacterSet>Unicode</CharacterSet> ++ <PlatformToolset>v120</PlatformToolset> ++ </PropertyGroup> ++ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> ++ <ConfigurationType>DynamicLibrary</ConfigurationType> ++ <CharacterSet>Unicode</CharacterSet> ++ <PlatformToolset>v120</PlatformToolset> ++ </PropertyGroup> ++ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> ++ <ImportGroup Label="ExtensionSettings"> ++ </ImportGroup> ++ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> ++ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> ++ <Import Project=".\gtkmm-build-defines.props" /> ++ </ImportGroup> ++ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> ++ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> ++ <Import Project=".\gtkmm-build-defines.props" /> ++ </ImportGroup> ++ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> ++ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> ++ <Import Project=".\gtkmm-build-defines.props" /> ++ </ImportGroup> ++ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets"> ++ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> ++ <Import Project=".\gtkmm-build-defines.props" /> ++ </ImportGroup> ++ <PropertyGroup Label="UserMacros" /> ++ <PropertyGroup> ++ <PreLinkEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</PreLinkEventUseInBuild> ++ <PreLinkEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</PreLinkEventUseInBuild> ++ <PreLinkEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</PreLinkEventUseInBuild> ++ <PreLinkEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</PreLinkEventUseInBuild> ++ <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)$(DebugDllSuffix)</TargetName> ++ <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectName)$(DebugDllSuffix)</TargetName> ++ <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectName)$(ReleaseDllSuffix)</TargetName> ++ <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectName)$(ReleaseDllSuffix)</TargetName> ++ </PropertyGroup> ++ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> ++ <ClCompile> ++ <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions> ++ <Optimization>Disabled</Optimization> ++ <PreprocessorDefinitions>_DEBUG;$(GdkMMBuildDefs);%(PreprocessorDefinitions)</PreprocessorDefinitions> ++ <MinimalRebuild>true</MinimalRebuild> ++ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> ++ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> ++ <RuntimeTypeInfo>true</RuntimeTypeInfo> ++ <PrecompiledHeader> ++ </PrecompiledHeader> ++ <WarningLevel>Level3</WarningLevel> ++ <DebugInformationFormat>EditAndContinue</DebugInformationFormat> ++ </ClCompile> ++ <PreLinkEvent> ++ <Message>Generate gdkmm def file</Message> ++ <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj</Command> ++ </PreLinkEvent> ++ <Link> + <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> +- <OutputFile>$(OutDir)$(ProjectName)$(DebugDllSuffix).dll</OutputFile> +- <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile> +- <GenerateDebugInformation>true</GenerateDebugInformation> +- <RandomizedBaseAddress>false</RandomizedBaseAddress> +- <DataExecutionPrevention> +- </DataExecutionPrevention> +- </Link> +- </ItemDefinitionGroup> +- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> +- <ClCompile> +- <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions> +- <PreprocessorDefinitions>$(GdkMMBuildDefs);%(PreprocessorDefinitions)</PreprocessorDefinitions> +- <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> +- <RuntimeTypeInfo>true</RuntimeTypeInfo> +- <PrecompiledHeader> +- </PrecompiledHeader> +- <WarningLevel>Level3</WarningLevel> +- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> +- </ClCompile> +- <PreLinkEvent> +- <Message>Generate gdkmm def file</Message> +- <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj</Command> +- </PreLinkEvent> +- <Link> ++ <OutputFile>$(OutDir)$(ProjectName)$(DebugDllSuffix).dll</OutputFile> ++ <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile> ++ <GenerateDebugInformation>true</GenerateDebugInformation> ++ <RandomizedBaseAddress>false</RandomizedBaseAddress> ++ <DataExecutionPrevention> ++ </DataExecutionPrevention> ++ </Link> ++ </ItemDefinitionGroup> ++ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> ++ <ClCompile> ++ <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions> ++ <PreprocessorDefinitions>$(GdkMMBuildDefs);%(PreprocessorDefinitions)</PreprocessorDefinitions> ++ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> ++ <RuntimeTypeInfo>true</RuntimeTypeInfo> ++ <PrecompiledHeader> ++ </PrecompiledHeader> ++ <WarningLevel>Level3</WarningLevel> ++ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> ++ </ClCompile> ++ <PreLinkEvent> ++ <Message>Generate gdkmm def file</Message> ++ <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj</Command> ++ </PreLinkEvent> ++ <Link> + <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> +- <OutputFile>$(OutDir)$(ProjectName)$(ReleaseDllSuffix).dll</OutputFile> +- <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile> +- <GenerateDebugInformation>true</GenerateDebugInformation> +- <OptimizeReferences>true</OptimizeReferences> +- <RandomizedBaseAddress>false</RandomizedBaseAddress> +- <DataExecutionPrevention> +- </DataExecutionPrevention> +- </Link> +- </ItemDefinitionGroup> +- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> +- <Midl> +- <TargetEnvironment>X64</TargetEnvironment> +- </Midl> +- <ClCompile> +- <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions> +- <Optimization>Disabled</Optimization> +- <PreprocessorDefinitions>_DEBUG;$(GdkMMBuildDefs);%(PreprocessorDefinitions)</PreprocessorDefinitions> +- <MinimalRebuild>true</MinimalRebuild> +- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> +- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> +- <RuntimeTypeInfo>true</RuntimeTypeInfo> +- <PrecompiledHeader> +- </PrecompiledHeader> +- <WarningLevel>Level3</WarningLevel> +- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> +- </ClCompile> +- <PreLinkEvent> +- <Message>Generate gdkmm def file</Message> +- <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj</Command> +- </PreLinkEvent> +- <Link> ++ <OutputFile>$(OutDir)$(ProjectName)$(ReleaseDllSuffix).dll</OutputFile> ++ <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile> ++ <GenerateDebugInformation>true</GenerateDebugInformation> ++ <OptimizeReferences>true</OptimizeReferences> ++ <RandomizedBaseAddress>false</RandomizedBaseAddress> ++ <DataExecutionPrevention> ++ </DataExecutionPrevention> ++ </Link> ++ </ItemDefinitionGroup> ++ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> ++ <Midl> ++ <TargetEnvironment>X64</TargetEnvironment> ++ </Midl> ++ <ClCompile> ++ <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions> ++ <Optimization>Disabled</Optimization> ++ <PreprocessorDefinitions>_DEBUG;$(GdkMMBuildDefs);%(PreprocessorDefinitions)</PreprocessorDefinitions> ++ <MinimalRebuild>true</MinimalRebuild> ++ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> ++ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> ++ <RuntimeTypeInfo>true</RuntimeTypeInfo> ++ <PrecompiledHeader> ++ </PrecompiledHeader> ++ <WarningLevel>Level3</WarningLevel> ++ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> ++ </ClCompile> ++ <PreLinkEvent> ++ <Message>Generate gdkmm def file</Message> ++ <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj</Command> ++ </PreLinkEvent> ++ <Link> + <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> +- <OutputFile>$(OutDir)$(ProjectName)$(DebugDllSuffix).dll</OutputFile> +- <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile> +- <GenerateDebugInformation>true</GenerateDebugInformation> +- <RandomizedBaseAddress>false</RandomizedBaseAddress> +- <DataExecutionPrevention> +- </DataExecutionPrevention> +- <TargetMachine>MachineX64</TargetMachine> +- </Link> +- </ItemDefinitionGroup> +- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> +- <Midl> +- <TargetEnvironment>X64</TargetEnvironment> +- </Midl> +- <ClCompile> +- <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions> +- <PreprocessorDefinitions>$(GdkMMBuildDefs);%(PreprocessorDefinitions)</PreprocessorDefinitions> +- <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> +- <RuntimeTypeInfo>true</RuntimeTypeInfo> +- <PrecompiledHeader> +- </PrecompiledHeader> +- <WarningLevel>Level3</WarningLevel> +- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> +- </ClCompile> +- <PreLinkEvent> +- <Message>Generate gdkmm def file</Message> +- <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj</Command> +- </PreLinkEvent> +- <Link> ++ <OutputFile>$(OutDir)$(ProjectName)$(DebugDllSuffix).dll</OutputFile> ++ <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile> ++ <GenerateDebugInformation>true</GenerateDebugInformation> ++ <RandomizedBaseAddress>false</RandomizedBaseAddress> ++ <DataExecutionPrevention> ++ </DataExecutionPrevention> ++ <TargetMachine>MachineX64</TargetMachine> ++ </Link> ++ </ItemDefinitionGroup> ++ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> ++ <Midl> ++ <TargetEnvironment>X64</TargetEnvironment> ++ </Midl> ++ <ClCompile> ++ <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions> ++ <PreprocessorDefinitions>$(GdkMMBuildDefs);%(PreprocessorDefinitions)</PreprocessorDefinitions> ++ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> ++ <RuntimeTypeInfo>true</RuntimeTypeInfo> ++ <PrecompiledHeader> ++ </PrecompiledHeader> ++ <WarningLevel>Level3</WarningLevel> ++ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> ++ </ClCompile> ++ <PreLinkEvent> ++ <Message>Generate gdkmm def file</Message> ++ <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj</Command> ++ </PreLinkEvent> ++ <Link> + <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> +- <OutputFile>$(OutDir)$(ProjectName)$(ReleaseDllSuffix).dll</OutputFile> +- <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile> +- <RandomizedBaseAddress>false</RandomizedBaseAddress> +- <GenerateDebugInformation>true</GenerateDebugInformation> +- <OptimizeReferences>true</OptimizeReferences> +- <DataExecutionPrevention> +- </DataExecutionPrevention> +- <TargetMachine>MachineX64</TargetMachine> +- </Link> +- </ItemDefinitionGroup> +- <ItemGroup> +- <ClCompile Include="..\gdk\gdkmm\applaunchcontext.cc" /> +- <ClCompile Include="..\gdk\gdkmm\color.cc" /> +- <ClCompile Include="..\gdk\gdkmm\cursor.cc" /> +- <ClCompile Include="..\gdk\gdkmm\device.cc" /> +- <ClCompile Include="..\gdk\gdkmm\devicemanager.cc" /> +- <ClCompile Include="..\gdk\gdkmm\display.cc" /> +- <ClCompile Include="..\gdk\gdkmm\displaymanager.cc" /> +- <ClCompile Include="..\gdk\gdkmm\dragcontext.cc" /> +- <ClCompile Include="..\gdk\gdkmm\drawingcontext.cc" /> +- <ClCompile Include="..\gdk\gdkmm\event.cc" /> +- <ClCompile Include="..\gdk\gdkmm\general.cc" /> +- <ClCompile Include="..\gdk\gdkmm\glcontext.cc" /> +- <ClCompile Include="..\gdk\gdkmm\monitor.cc" /> +- <ClCompile Include="..\gdk\gdkmm\pixbuf.cc" /> +- <ClCompile Include="..\gdk\gdkmm\pixbufanimation.cc" /> +- <ClCompile Include="..\gdk\gdkmm\pixbufanimationiter.cc" /> +- <ClCompile Include="..\gdk\gdkmm\pixbufformat.cc" /> +- <ClCompile Include="..\gdk\gdkmm\pixbufloader.cc" /> +- <ClCompile Include="..\gdk\gdkmm\rectangle.cc" /> +- <ClCompile Include="..\gdk\gdkmm\rgba.cc" /> +- <ClCompile Include="..\gdk\gdkmm\seat.cc" /> +- <ClCompile Include="..\gdk\gdkmm\screen.cc" /> +- <ClCompile Include="..\gdk\gdkmm\timecoord.cc" /> +- <ClCompile Include="..\gdk\gdkmm\types.cc" /> +- <ClCompile Include="..\gdk\gdkmm\visual.cc" /> +- <ClCompile Include="..\gdk\gdkmm\window.cc" /> +- <ClCompile Include="..\gdk\gdkmm\wrap_init.cc" /> +- </ItemGroup> +- <ItemGroup> +- <ClInclude Include="..\gdk\gdkmm\applaunchcontext.h" /> +- <ClInclude Include="..\gdk\gdkmm\color.h" /> +- <ClInclude Include="..\gdk\gdkmm\colormap.h" /> +- <ClInclude Include="..\gdk\gdkmm\cursor.h" /> +- <ClInclude Include="..\gdk\gdkmm\device.h" /> +- <ClInclude Include="..\gdk\gdkmm\devicemanager.h" /> +- <ClInclude Include="..\gdk\gdkmm\display.h" /> +- <ClInclude Include="..\gdk\gdkmm\displaymanager.h" /> +- <ClInclude Include="..\gdk\gdkmm\dragcontext.h" /> +- <ClInclude Include="..\gdk\gdkmm\drawingcontext.h" /> +- <ClInclude Include="..\gdk\gdkmm\event.h" /> +- <ClInclude Include="..\gdk\gdkmm\general.h" /> +- <ClInclude Include="..\gdk\gdkmm\glcontext.h" /> +- <ClInclude Include="..\gdk\gdkmm\list.h" /> +- <ClInclude Include="..\gdk\gdkmm\monitor.h" /> +- <ClInclude Include="..\gdk\gdkmm\pixbuf.h" /> +- <ClInclude Include="..\gdk\gdkmm\pixbufanimation.h" /> +- <ClInclude Include="..\gdk\gdkmm\pixbufanimationiter.h" /> +- <ClInclude Include="..\gdk\gdkmm\pixbufformat.h" /> +- <ClInclude Include="..\gdk\gdkmm\pixbufloader.h" /> +- <ClInclude Include="..\gdk\gdkmm\rectangle.h" /> +- <ClInclude Include="..\gdk\gdkmm\region.h" /> +- <ClInclude Include="..\gdk\gdkmm\rgba.h" /> +- <ClInclude Include="..\gdk\gdkmm\seat.h" /> +- <ClInclude Include="..\gdk\gdkmm\screen.h" /> +- <ClInclude Include="..\gdk\gdkmm\timecoord.h" /> +- <ClInclude Include="..\gdk\gdkmm\types.h" /> +- <ClInclude Include="..\gdk\gdkmm\visual.h" /> +- <ClInclude Include="..\gdk\gdkmm\window.h" /> +- <ClInclude Include="..\gdk\gdkmm\wrap_init.h" /> +- </ItemGroup> +- <ItemGroup> +- <ResourceCompile Include=".\gdkmm\gdkmm.rc" /> +- </ItemGroup> +- <ItemGroup> +- <ProjectReference Include="gendef.vcxproj"> +- <Project>{07324745-c9be-4d65-b08a-9c88188c0c28}</Project> +- <ReferenceOutputAssembly>false</ReferenceOutputAssembly> +- </ProjectReference> +- </ItemGroup> +- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> +- <ImportGroup Label="ExtensionTargets"> +- </ImportGroup> +-</Project> +\ No newline at end of file ++ <OutputFile>$(OutDir)$(ProjectName)$(ReleaseDllSuffix).dll</OutputFile> ++ <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile> ++ <RandomizedBaseAddress>false</RandomizedBaseAddress> ++ <GenerateDebugInformation>true</GenerateDebugInformation> ++ <OptimizeReferences>true</OptimizeReferences> ++ <DataExecutionPrevention> ++ </DataExecutionPrevention> ++ <TargetMachine>MachineX64</TargetMachine> ++ </Link> ++ </ItemDefinitionGroup> ++ <ItemGroup> ++ <ClCompile Include="..\gdk\gdkmm\applaunchcontext.cc" /> ++ <ClCompile Include="..\gdk\gdkmm\color.cc" /> ++ <ClCompile Include="..\gdk\gdkmm\cursor.cc" /> ++ <ClCompile Include="..\gdk\gdkmm\device.cc" /> ++ <ClCompile Include="..\gdk\gdkmm\devicemanager.cc" /> ++ <ClCompile Include="..\gdk\gdkmm\display.cc" /> ++ <ClCompile Include="..\gdk\gdkmm\displaymanager.cc" /> ++ <ClCompile Include="..\gdk\gdkmm\dragcontext.cc" /> ++ <ClCompile Include="..\gdk\gdkmm\drawingcontext.cc" /> ++ <ClCompile Include="..\gdk\gdkmm\event.cc" /> ++ <ClCompile Include="..\gdk\gdkmm\general.cc" /> ++ <ClCompile Include="..\gdk\gdkmm\glcontext.cc" /> ++ <ClCompile Include="..\gdk\gdkmm\monitor.cc" /> ++ <ClCompile Include="..\gdk\gdkmm\pixbuf.cc" /> ++ <ClCompile Include="..\gdk\gdkmm\pixbufanimation.cc" /> ++ <ClCompile Include="..\gdk\gdkmm\pixbufanimationiter.cc" /> ++ <ClCompile Include="..\gdk\gdkmm\pixbufformat.cc" /> ++ <ClCompile Include="..\gdk\gdkmm\pixbufloader.cc" /> ++ <ClCompile Include="..\gdk\gdkmm\rectangle.cc" /> ++ <ClCompile Include="..\gdk\gdkmm\rgba.cc" /> ++ <ClCompile Include="..\gdk\gdkmm\seat.cc" /> ++ <ClCompile Include="..\gdk\gdkmm\screen.cc" /> ++ <ClCompile Include="..\gdk\gdkmm\timecoord.cc" /> ++ <ClCompile Include="..\gdk\gdkmm\types.cc" /> ++ <ClCompile Include="..\gdk\gdkmm\visual.cc" /> ++ <ClCompile Include="..\gdk\gdkmm\window.cc" /> ++ <ClCompile Include="..\gdk\gdkmm\wrap_init.cc" /> ++ </ItemGroup> ++ <ItemGroup> ++ <ClInclude Include="..\gdk\gdkmm\applaunchcontext.h" /> ++ <ClInclude Include="..\gdk\gdkmm\color.h" /> ++ <ClInclude Include="..\gdk\gdkmm\colormap.h" /> ++ <ClInclude Include="..\gdk\gdkmm\cursor.h" /> ++ <ClInclude Include="..\gdk\gdkmm\device.h" /> ++ <ClInclude Include="..\gdk\gdkmm\devicemanager.h" /> ++ <ClInclude Include="..\gdk\gdkmm\display.h" /> ++ <ClInclude Include="..\gdk\gdkmm\displaymanager.h" /> ++ <ClInclude Include="..\gdk\gdkmm\dragcontext.h" /> ++ <ClInclude Include="..\gdk\gdkmm\drawingcontext.h" /> ++ <ClInclude Include="..\gdk\gdkmm\event.h" /> ++ <ClInclude Include="..\gdk\gdkmm\general.h" /> ++ <ClInclude Include="..\gdk\gdkmm\glcontext.h" /> ++ <ClInclude Include="..\gdk\gdkmm\list.h" /> ++ <ClInclude Include="..\gdk\gdkmm\monitor.h" /> ++ <ClInclude Include="..\gdk\gdkmm\pixbuf.h" /> ++ <ClInclude Include="..\gdk\gdkmm\pixbufanimation.h" /> ++ <ClInclude Include="..\gdk\gdkmm\pixbufanimationiter.h" /> ++ <ClInclude Include="..\gdk\gdkmm\pixbufformat.h" /> ++ <ClInclude Include="..\gdk\gdkmm\pixbufloader.h" /> ++ <ClInclude Include="..\gdk\gdkmm\rectangle.h" /> ++ <ClInclude Include="..\gdk\gdkmm\region.h" /> ++ <ClInclude Include="..\gdk\gdkmm\rgba.h" /> ++ <ClInclude Include="..\gdk\gdkmm\seat.h" /> ++ <ClInclude Include="..\gdk\gdkmm\screen.h" /> ++ <ClInclude Include="..\gdk\gdkmm\timecoord.h" /> ++ <ClInclude Include="..\gdk\gdkmm\types.h" /> ++ <ClInclude Include="..\gdk\gdkmm\visual.h" /> ++ <ClInclude Include="..\gdk\gdkmm\window.h" /> ++ <ClInclude Include="..\gdk\gdkmm\wrap_init.h" /> ++ </ItemGroup> ++ <ItemGroup> ++ <ResourceCompile Include=".\gdkmm\gdkmm.rc" /> ++ </ItemGroup> ++ <ItemGroup> ++ <ProjectReference Include="gendef.vcxproj"> ++ <Project>{07324745-c9be-4d65-b08a-9c88188c0c28}</Project> ++ <ReferenceOutputAssembly>false</ReferenceOutputAssembly> ++ </ProjectReference> ++ </ItemGroup> ++ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> ++ <ImportGroup Label="ExtensionTargets"> ++ </ImportGroup> ++</Project> +\ No newline at end of file +diff --git a/MSVC_Net2013/gendef.vcxproj b/MSVC_Net2013/gendef.vcxproj +index 33dfe5e..01b9271 100644 +--- a/MSVC_Net2013/gendef.vcxproj ++++ b/MSVC_Net2013/gendef.vcxproj +@@ -21,26 +21,27 @@ + <PropertyGroup Label="Globals"> + <ProjectGuid>{07324745-C9BE-4D65-B08A-9C88188C0C28}</ProjectGuid> + <Keyword>Win32Proj</Keyword> ++ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> +diff --git a/MSVC_Net2013/gtkmm.vcxproj b/MSVC_Net2013/gtkmm.vcxproj +index 2c732f8..ad9d312 100644 +--- a/MSVC_Net2013/gtkmm.vcxproj ++++ b/MSVC_Net2013/gtkmm.vcxproj +@@ -1,700 +1,701 @@ +-???<?xml version="1.0" encoding="utf-8"?> +-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> +- <ItemGroup Label="ProjectConfigurations"> +- <ProjectConfiguration Include="Debug|Win32"> +- <Configuration>Debug</Configuration> +- <Platform>Win32</Platform> +- </ProjectConfiguration> +- <ProjectConfiguration Include="Debug|x64"> +- <Configuration>Debug</Configuration> +- <Platform>x64</Platform> +- </ProjectConfiguration> +- <ProjectConfiguration Include="Release|Win32"> +- <Configuration>Release</Configuration> +- <Platform>Win32</Platform> +- </ProjectConfiguration> +- <ProjectConfiguration Include="Release|x64"> +- <Configuration>Release</Configuration> +- <Platform>x64</Platform> +- </ProjectConfiguration> +- </ItemGroup> +- <PropertyGroup Label="Globals"> +- <ProjectName>gtkmm</ProjectName> +- <ProjectGuid>{907B8D15-7E12-4136-A7E6-B6ED5E055D39}</ProjectGuid> +- <RootNamespace>gtkmm</RootNamespace> +- <Keyword>Win32Proj</Keyword> +- </PropertyGroup> +- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> +- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> +- <ConfigurationType>DynamicLibrary</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> +- <PlatformToolset>v120</PlatformToolset> +- </PropertyGroup> +- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> +- <ConfigurationType>DynamicLibrary</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> +- <PlatformToolset>v120</PlatformToolset> +- </PropertyGroup> +- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> +- <ConfigurationType>DynamicLibrary</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> +- <PlatformToolset>v120</PlatformToolset> +- </PropertyGroup> +- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> +- <ConfigurationType>DynamicLibrary</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> +- <PlatformToolset>v120</PlatformToolset> +- </PropertyGroup> +- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> +- <ImportGroup Label="ExtensionSettings"> +- </ImportGroup> +- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> +- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> +- <Import Project=".\gtkmm-build-defines.props" /> +- </ImportGroup> +- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> +- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> +- <Import Project=".\gtkmm-build-defines.props" /> +- </ImportGroup> +- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> +- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> +- <Import Project=".\gtkmm-build-defines.props" /> +- </ImportGroup> +- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets"> +- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> +- <Import Project=".\gtkmm-build-defines.props" /> +- </ImportGroup> +- <PropertyGroup Label="UserMacros" /> +- <PropertyGroup> +- <PreLinkEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</PreLinkEventUseInBuild> +- <PreLinkEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</PreLinkEventUseInBuild> +- <PreLinkEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</PreLinkEventUseInBuild> +- <PreLinkEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</PreLinkEventUseInBuild> +- <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)$(DebugDllSuffix)</TargetName> +- <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectName)$(DebugDllSuffix)</TargetName> +- <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectName)$(ReleaseDllSuffix)</TargetName> +- <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectName)$(ReleaseDllSuffix)</TargetName> +- </PropertyGroup> +- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> +- <ClCompile> +- <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions> +- <Optimization>Disabled</Optimization> +- <AdditionalIncludeDirectories>.\gtkmm;..\gtk;$(GlibEtcInstallRoot)\include\atkmm-1.6;$(GlibEtcInstallRoot)\lib\atkmm-1.6\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> ++???<?xml version="1.0" encoding="utf-8"?> ++<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> ++ <ItemGroup Label="ProjectConfigurations"> ++ <ProjectConfiguration Include="Debug|Win32"> ++ <Configuration>Debug</Configuration> ++ <Platform>Win32</Platform> ++ </ProjectConfiguration> ++ <ProjectConfiguration Include="Debug|x64"> ++ <Configuration>Debug</Configuration> ++ <Platform>x64</Platform> ++ </ProjectConfiguration> ++ <ProjectConfiguration Include="Release|Win32"> ++ <Configuration>Release</Configuration> ++ <Platform>Win32</Platform> ++ </ProjectConfiguration> ++ <ProjectConfiguration Include="Release|x64"> ++ <Configuration>Release</Configuration> ++ <Platform>x64</Platform> ++ </ProjectConfiguration> ++ </ItemGroup> ++ <PropertyGroup Label="Globals"> ++ <ProjectName>gtkmm</ProjectName> ++ <ProjectGuid>{907B8D15-7E12-4136-A7E6-B6ED5E055D39}</ProjectGuid> ++ <RootNamespace>gtkmm</RootNamespace> ++ <Keyword>Win32Proj</Keyword> ++ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion> ++ </PropertyGroup> ++ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> ++ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> ++ <ConfigurationType>DynamicLibrary</ConfigurationType> ++ <CharacterSet>Unicode</CharacterSet> ++ <PlatformToolset>v120</PlatformToolset> ++ </PropertyGroup> ++ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> ++ <ConfigurationType>DynamicLibrary</ConfigurationType> ++ <CharacterSet>Unicode</CharacterSet> ++ <PlatformToolset>v120</PlatformToolset> ++ </PropertyGroup> ++ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> ++ <ConfigurationType>DynamicLibrary</ConfigurationType> ++ <CharacterSet>Unicode</CharacterSet> ++ <PlatformToolset>v120</PlatformToolset> ++ </PropertyGroup> ++ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> ++ <ConfigurationType>DynamicLibrary</ConfigurationType> ++ <CharacterSet>Unicode</CharacterSet> ++ <PlatformToolset>v120</PlatformToolset> ++ </PropertyGroup> ++ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> ++ <ImportGroup Label="ExtensionSettings"> ++ </ImportGroup> ++ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> ++ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> ++ <Import Project=".\gtkmm-build-defines.props" /> ++ </ImportGroup> ++ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> ++ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> ++ <Import Project=".\gtkmm-build-defines.props" /> ++ </ImportGroup> ++ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> ++ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> ++ <Import Project=".\gtkmm-build-defines.props" /> ++ </ImportGroup> ++ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets"> ++ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> ++ <Import Project=".\gtkmm-build-defines.props" /> ++ </ImportGroup> ++ <PropertyGroup Label="UserMacros" /> ++ <PropertyGroup> ++ <PreLinkEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</PreLinkEventUseInBuild> ++ <PreLinkEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</PreLinkEventUseInBuild> ++ <PreLinkEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</PreLinkEventUseInBuild> ++ <PreLinkEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</PreLinkEventUseInBuild> ++ <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)$(DebugDllSuffix)</TargetName> ++ <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectName)$(DebugDllSuffix)</TargetName> ++ <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectName)$(ReleaseDllSuffix)</TargetName> ++ <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectName)$(ReleaseDllSuffix)</TargetName> ++ </PropertyGroup> ++ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> ++ <ClCompile> ++ <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions> ++ <Optimization>Disabled</Optimization> ++ <AdditionalIncludeDirectories>.\gtkmm;..\gtk;$(GlibEtcInstallRoot)\include\atkmm-1.6;$(GlibEtcInstallRoot)\lib\atkmm-1.6\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>_DEBUG;_NO_CRT_STDIO_INLINE;$(GtkMMBuildDefs);_NO_CRT_STDIO_INLINE;%(PreprocessorDefinitions)</PreprocessorDefinitions> +- <MinimalRebuild>true</MinimalRebuild> +- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> +- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> +- <RuntimeTypeInfo>true</RuntimeTypeInfo> +- <PrecompiledHeader> +- </PrecompiledHeader> +- <WarningLevel>Level3</WarningLevel> +- <DebugInformationFormat>EditAndContinue</DebugInformationFormat> +- </ClCompile> +- <PreLinkEvent> +- <Message>Generate gtkmm def file</Message> +- <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj</Command> +- </PreLinkEvent> +- <Link> ++ <MinimalRebuild>true</MinimalRebuild> ++ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> ++ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> ++ <RuntimeTypeInfo>true</RuntimeTypeInfo> ++ <PrecompiledHeader> ++ </PrecompiledHeader> ++ <WarningLevel>Level3</WarningLevel> ++ <DebugInformationFormat>EditAndContinue</DebugInformationFormat> ++ </ClCompile> ++ <PreLinkEvent> ++ <Message>Generate gtkmm def file</Message> ++ <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj</Command> ++ </PreLinkEvent> ++ <Link> + <AdditionalDependencies>legacy_stdio_definitions.lib;%(AdditionalDependencies)</AdditionalDependencies> +- <OutputFile>$(OutDir)$(ProjectName)$(DebugDllSuffix).dll</OutputFile> +- <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile> +- <GenerateDebugInformation>true</GenerateDebugInformation> +- <RandomizedBaseAddress>false</RandomizedBaseAddress> +- <DataExecutionPrevention> +- </DataExecutionPrevention> +- </Link> +- </ItemDefinitionGroup> +- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> +- <ClCompile> +- <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions> +- <AdditionalIncludeDirectories>.\gtkmm;..\gtk;$(GlibEtcInstallRoot)\include\atkmm-1.6;$(GlibEtcInstallRoot)\lib\atkmm-1.6\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> ++ <OutputFile>$(OutDir)$(ProjectName)$(DebugDllSuffix).dll</OutputFile> ++ <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile> ++ <GenerateDebugInformation>true</GenerateDebugInformation> ++ <RandomizedBaseAddress>false</RandomizedBaseAddress> ++ <DataExecutionPrevention> ++ </DataExecutionPrevention> ++ </Link> ++ </ItemDefinitionGroup> ++ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> ++ <ClCompile> ++ <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions> ++ <AdditionalIncludeDirectories>.\gtkmm;..\gtk;$(GlibEtcInstallRoot)\include\atkmm-1.6;$(GlibEtcInstallRoot)\lib\atkmm-1.6\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>$(GtkMMBuildDefs);_NO_CRT_STDIO_INLINE;%(PreprocessorDefinitions)</PreprocessorDefinitions> +- <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> +- <RuntimeTypeInfo>true</RuntimeTypeInfo> +- <PrecompiledHeader> +- </PrecompiledHeader> +- <WarningLevel>Level3</WarningLevel> +- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> +- </ClCompile> +- <PreLinkEvent> +- <Message>Generate gtkmm def file</Message> +- <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj</Command> +- </PreLinkEvent> +- <Link> ++ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> ++ <RuntimeTypeInfo>true</RuntimeTypeInfo> ++ <PrecompiledHeader> ++ </PrecompiledHeader> ++ <WarningLevel>Level3</WarningLevel> ++ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> ++ </ClCompile> ++ <PreLinkEvent> ++ <Message>Generate gtkmm def file</Message> ++ <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj</Command> ++ </PreLinkEvent> ++ <Link> + <AdditionalDependencies>legacy_stdio_definitions.lib;%(AdditionalDependencies)</AdditionalDependencies> +- <OutputFile>$(OutDir)$(ProjectName)$(ReleaseDllSuffix).dll</OutputFile> +- <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile> +- <RandomizedBaseAddress>false</RandomizedBaseAddress> +- <GenerateDebugInformation>true</GenerateDebugInformation> +- <OptimizeReferences>true</OptimizeReferences> +- <DataExecutionPrevention> +- </DataExecutionPrevention> +- </Link> +- </ItemDefinitionGroup> +- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> +- <Midl> +- <TargetEnvironment>X64</TargetEnvironment> +- </Midl> +- <ClCompile> +- <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions> +- <Optimization>Disabled</Optimization> +- <AdditionalIncludeDirectories>.\gtkmm;..\gtk;$(GlibEtcInstallRoot)\include\atkmm-1.6;$(GlibEtcInstallRoot)\lib\atkmm-1.6\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> ++ <OutputFile>$(OutDir)$(ProjectName)$(ReleaseDllSuffix).dll</OutputFile> ++ <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile> ++ <RandomizedBaseAddress>false</RandomizedBaseAddress> ++ <GenerateDebugInformation>true</GenerateDebugInformation> ++ <OptimizeReferences>true</OptimizeReferences> ++ <DataExecutionPrevention> ++ </DataExecutionPrevention> ++ </Link> ++ </ItemDefinitionGroup> ++ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> ++ <Midl> ++ <TargetEnvironment>X64</TargetEnvironment> ++ </Midl> ++ <ClCompile> ++ <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions> ++ <Optimization>Disabled</Optimization> ++ <AdditionalIncludeDirectories>.\gtkmm;..\gtk;$(GlibEtcInstallRoot)\include\atkmm-1.6;$(GlibEtcInstallRoot)\lib\atkmm-1.6\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>_DEBUG;_NO_CRT_STDIO_INLINE;$(GtkMMBuildDefs);)</PreprocessorDefinitions> +- <MinimalRebuild>true</MinimalRebuild> +- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> +- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> +- <RuntimeTypeInfo>true</RuntimeTypeInfo> +- <PrecompiledHeader> +- </PrecompiledHeader> +- <WarningLevel>Level3</WarningLevel> +- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> +- </ClCompile> +- <PreLinkEvent> +- <Message>Generate gtkmm def file</Message> +- <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj</Command> +- </PreLinkEvent> +- <Link> ++ <MinimalRebuild>true</MinimalRebuild> ++ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> ++ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> ++ <RuntimeTypeInfo>true</RuntimeTypeInfo> ++ <PrecompiledHeader> ++ </PrecompiledHeader> ++ <WarningLevel>Level3</WarningLevel> ++ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> ++ </ClCompile> ++ <PreLinkEvent> ++ <Message>Generate gtkmm def file</Message> ++ <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj</Command> ++ </PreLinkEvent> ++ <Link> + <AdditionalDependencies>legacy_stdio_definitions.lib;%(AdditionalDependencies)</AdditionalDependencies> +- <OutputFile>$(OutDir)$(ProjectName)$(DebugDllSuffix).dll</OutputFile> +- <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile> +- <GenerateDebugInformation>true</GenerateDebugInformation> +- <RandomizedBaseAddress>false</RandomizedBaseAddress> +- <DataExecutionPrevention> +- </DataExecutionPrevention> +- <TargetMachine>MachineX64</TargetMachine> +- </Link> +- </ItemDefinitionGroup> +- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> +- <Midl> +- <TargetEnvironment>X64</TargetEnvironment> +- </Midl> +- <ClCompile> +- <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions> +- <AdditionalIncludeDirectories>.\gtkmm;..\gtk;$(GlibEtcInstallRoot)\include\atkmm-1.6;$(GlibEtcInstallRoot)\lib\atkmm-1.6\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> ++ <OutputFile>$(OutDir)$(ProjectName)$(DebugDllSuffix).dll</OutputFile> ++ <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile> ++ <GenerateDebugInformation>true</GenerateDebugInformation> ++ <RandomizedBaseAddress>false</RandomizedBaseAddress> ++ <DataExecutionPrevention> ++ </DataExecutionPrevention> ++ <TargetMachine>MachineX64</TargetMachine> ++ </Link> ++ </ItemDefinitionGroup> ++ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> ++ <Midl> ++ <TargetEnvironment>X64</TargetEnvironment> ++ </Midl> ++ <ClCompile> ++ <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions> ++ <AdditionalIncludeDirectories>.\gtkmm;..\gtk;$(GlibEtcInstallRoot)\include\atkmm-1.6;$(GlibEtcInstallRoot)\lib\atkmm-1.6\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>$(GtkMMBuildDefs);_NO_CRT_STDIO_INLINE;%(PreprocessorDefinitions)</PreprocessorDefinitions> +- <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> +- <RuntimeTypeInfo>true</RuntimeTypeInfo> +- <PrecompiledHeader> +- </PrecompiledHeader> +- <WarningLevel>Level3</WarningLevel> +- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> +- </ClCompile> +- <PreLinkEvent> +- <Message>Generate gtkmm def file</Message> +- <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj</Command> +- </PreLinkEvent> +- <Link> ++ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> ++ <RuntimeTypeInfo>true</RuntimeTypeInfo> ++ <PrecompiledHeader> ++ </PrecompiledHeader> ++ <WarningLevel>Level3</WarningLevel> ++ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> ++ </ClCompile> ++ <PreLinkEvent> ++ <Message>Generate gtkmm def file</Message> ++ <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj</Command> ++ </PreLinkEvent> ++ <Link> + <AdditionalDependencies>legacy_stdio_definitions.lib;%(AdditionalDependencies)</AdditionalDependencies> +- <OutputFile>$(OutDir)$(ProjectName)$(ReleaseDllSuffix).dll</OutputFile> +- <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile> +- <GenerateDebugInformation>true</GenerateDebugInformation> +- <OptimizeReferences>true</OptimizeReferences> +- <RandomizedBaseAddress>false</RandomizedBaseAddress> +- <DataExecutionPrevention> +- </DataExecutionPrevention> +- <TargetMachine>MachineX64</TargetMachine> +- </Link> +- </ItemDefinitionGroup> +- <ItemGroup> +- <ClCompile Include="..\gtk\gtkmm\aboutdialog.cc" /> +- <ClCompile Include="..\gtk\gtkmm\accelgroup.cc" /> +- <ClCompile Include="..\gtk\gtkmm\accelkey.cc" /> +- <ClCompile Include="..\gtk\gtkmm\accellabel.cc" /> +- <ClCompile Include="..\gtk\gtkmm\accelmap.cc" /> +- <ClCompile Include="..\gtk\gtkmm\action.cc" /> +- <ClCompile Include="..\gtk\gtkmm\actionable.cc" /> +- <ClCompile Include="..\gtk\gtkmm\actionbar.cc" /> +- <ClCompile Include="..\gtk\gtkmm\actiongroup.cc" /> +- <ClCompile Include="..\gtk\gtkmm\activatable.cc" /> +- <ClCompile Include="..\gtk\gtkmm\adjustment.cc" /> +- <ClCompile Include="..\gtk\gtkmm\alignment.cc" /> +- <ClCompile Include="..\gtk\gtkmm\appchooser.cc" /> +- <ClCompile Include="..\gtk\gtkmm\appchooserbutton.cc" /> +- <ClCompile Include="..\gtk\gtkmm\appchooserdialog.cc" /> +- <ClCompile Include="..\gtk\gtkmm\appchooserwidget.cc" /> +- <ClCompile Include="..\gtk\gtkmm\application.cc" /> +- <ClCompile Include="..\gtk\gtkmm\applicationwindow.cc" /> +- <ClCompile Include="..\gtk\gtkmm\arrow.cc" /> +- <ClCompile Include="..\gtk\gtkmm\aspectframe.cc" /> +- <ClCompile Include="..\gtk\gtkmm\assistant.cc" /> +- <ClCompile Include="..\gtk\gtkmm\bin.cc" /> +- <ClCompile Include="..\gtk\gtkmm\border.cc" /> +- <ClCompile Include="..\gtk\gtkmm\box.cc" /> +- <ClCompile Include="..\gtk\gtkmm\buildable.cc" /> +- <ClCompile Include="..\gtk\gtkmm\builder.cc" /> +- <ClCompile Include="..\gtk\gtkmm\button.cc" /> +- <ClCompile Include="..\gtk\gtkmm\buttonbox.cc" /> +- <ClCompile Include="..\gtk\gtkmm\calendar.cc" /> +- <ClCompile Include="..\gtk\gtkmm\cellarea.cc" /> +- <ClCompile Include="..\gtk\gtkmm\cellareabox.cc" /> +- <ClCompile Include="..\gtk\gtkmm\cellareacontext.cc" /> +- <ClCompile Include="..\gtk\gtkmm\celleditable.cc" /> +- <ClCompile Include="..\gtk\gtkmm\celllayout.cc" /> +- <ClCompile Include="..\gtk\gtkmm\cellrenderer.cc" /> +- <ClCompile Include="..\gtk\gtkmm\cellrenderer_generation.cc" /> +- <ClCompile Include="..\gtk\gtkmm\cellrendereraccel.cc" /> +- <ClCompile Include="..\gtk\gtkmm\cellrenderercombo.cc" /> +- <ClCompile Include="..\gtk\gtkmm\cellrendererpixbuf.cc" /> +- <ClCompile Include="..\gtk\gtkmm\cellrendererprogress.cc" /> +- <ClCompile Include="..\gtk\gtkmm\cellrendererspin.cc" /> +- <ClCompile Include="..\gtk\gtkmm\cellrendererspinner.cc" /> +- <ClCompile Include="..\gtk\gtkmm\cellrenderertext.cc" /> +- <ClCompile Include="..\gtk\gtkmm\cellrenderertoggle.cc" /> +- <ClCompile Include="..\gtk\gtkmm\cellview.cc" /> +- <ClCompile Include="..\gtk\gtkmm\checkbutton.cc" /> +- <ClCompile Include="..\gtk\gtkmm\checkmenuitem.cc" /> +- <ClCompile Include="..\gtk\gtkmm\childpropertyproxy.cc" /> +- <ClCompile Include="..\gtk\gtkmm\childpropertyproxy_base.cc" /> +- <ClCompile Include="..\gtk\gtkmm\clipboard.cc" /> +- <ClCompile Include="..\gtk\gtkmm\colorbutton.cc" /> +- <ClCompile Include="..\gtk\gtkmm\colorchooser.cc" /> +- <ClCompile Include="..\gtk\gtkmm\colorchooserdialog.cc" /> +- <ClCompile Include="..\gtk\gtkmm\colorselection.cc" /> +- <ClCompile Include="..\gtk\gtkmm\combobox.cc" /> +- <ClCompile Include="..\gtk\gtkmm\comboboxtext.cc" /> +- <ClCompile Include="..\gtk\gtkmm\container.cc" /> +- <ClCompile Include="..\gtk\gtkmm\cssprovider.cc" /> +- <ClCompile Include="..\gtk\gtkmm\csssection.cc" /> +- <ClCompile Include="..\gtk\gtkmm\dialog.cc" /> +- <ClCompile Include="..\gtk\gtkmm\drawingarea.cc" /> +- <ClCompile Include="..\gtk\gtkmm\editable.cc" /> +- <ClCompile Include="..\gtk\gtkmm\entry.cc" /> +- <ClCompile Include="..\gtk\gtkmm\entrybuffer.cc" /> +- <ClCompile Include="..\gtk\gtkmm\entrycompletion.cc" /> +- <ClCompile Include="..\gtk\gtkmm\enums.cc" /> +- <ClCompile Include="..\gtk\gtkmm\eventbox.cc" /> +- <ClCompile Include="..\gtk\gtkmm\eventcontroller.cc" /> +- <ClCompile Include="..\gtk\gtkmm\expander.cc" /> +- <ClCompile Include="..\gtk\gtkmm\filechooser.cc" /> +- <ClCompile Include="..\gtk\gtkmm\filechooserbutton.cc" /> +- <ClCompile Include="..\gtk\gtkmm\filechooserdialog.cc" /> +- <ClCompile Include="..\gtk\gtkmm\filechooserwidget.cc" /> +- <ClCompile Include="..\gtk\gtkmm\filefilter.cc" /> +- <ClCompile Include="..\gtk\gtkmm\fixed.cc" /> +- <ClCompile Include="..\gtk\gtkmm\flowbox.cc" /> +- <ClCompile Include="..\gtk\gtkmm\flowboxchild.cc" /> +- <ClCompile Include="..\gtk\gtkmm\fontbutton.cc" /> +- <ClCompile Include="..\gtk\gtkmm\fontchooser.cc" /> +- <ClCompile Include="..\gtk\gtkmm\fontchooserdialog.cc" /> +- <ClCompile Include="..\gtk\gtkmm\fontchooserwidget.cc" /> +- <ClCompile Include="..\gtk\gtkmm\fontselection.cc" /> +- <ClCompile Include="..\gtk\gtkmm\frame.cc" /> +- <ClCompile Include="..\gtk\gtkmm\gesture.cc" /> +- <ClCompile Include="..\gtk\gtkmm\gesturedrag.cc" /> +- <ClCompile Include="..\gtk\gtkmm\gesturelongpress.cc" /> +- <ClCompile Include="..\gtk\gtkmm\gesturemultipress.cc" /> +- <ClCompile Include="..\gtk\gtkmm\gesturepan.cc" /> +- <ClCompile Include="..\gtk\gtkmm\gesturerotate.cc" /> +- <ClCompile Include="..\gtk\gtkmm\gesturesingle.cc" /> +- <ClCompile Include="..\gtk\gtkmm\gestureswipe.cc" /> +- <ClCompile Include="..\gtk\gtkmm\gesturezoom.cc" /> +- <ClCompile Include="..\gtk\gtkmm\glarea.cc" /> +- <ClCompile Include="..\gtk\gtkmm\grid.cc" /> +- <ClCompile Include="..\gtk\gtkmm\handlebox.cc" /> +- <ClCompile Include="..\gtk\gtkmm\headerbar.cc" /> +- <ClCompile Include="..\gtk\gtkmm\hvbox.cc" /> +- <ClCompile Include="..\gtk\gtkmm\hvbuttonbox.cc" /> +- <ClCompile Include="..\gtk\gtkmm\hvpaned.cc" /> +- <ClCompile Include="..\gtk\gtkmm\hvscale.cc" /> +- <ClCompile Include="..\gtk\gtkmm\hvscrollbar.cc" /> +- <ClCompile Include="..\gtk\gtkmm\hvseparator.cc" /> +- <ClCompile Include="..\gtk\gtkmm\iconfactory.cc" /> +- <ClCompile Include="..\gtk\gtkmm\iconinfo.cc" /> +- <ClCompile Include="..\gtk\gtkmm\iconset.cc" /> +- <ClCompile Include="..\gtk\gtkmm\iconsource.cc" /> +- <ClCompile Include="..\gtk\gtkmm\icontheme.cc" /> +- <ClCompile Include="..\gtk\gtkmm\iconview.cc" /> +- <ClCompile Include="..\gtk\gtkmm\image.cc" /> +- <ClCompile Include="..\gtk\gtkmm\imagemenuitem.cc" /> +- <ClCompile Include="..\gtk\gtkmm\infobar.cc" /> +- <ClCompile Include="..\gtk\gtkmm\invisible.cc" /> +- <ClCompile Include="..\gtk\gtkmm\label.cc" /> +- <ClCompile Include="..\gtk\gtkmm\layout.cc" /> +- <ClCompile Include="..\gtk\gtkmm\levelbar.cc" /> +- <ClCompile Include="..\gtk\gtkmm\linkbutton.cc" /> +- <ClCompile Include="..\gtk\gtkmm\listbox.cc" /> +- <ClCompile Include="..\gtk\gtkmm\listboxrow.cc" /> +- <ClCompile Include="..\gtk\gtkmm\liststore.cc" /> +- <ClCompile Include="..\gtk\gtkmm\listviewtext.cc" /> +- <ClCompile Include="..\gtk\gtkmm\lockbutton.cc" /> +- <ClCompile Include="..\gtk\gtkmm\main.cc" /> +- <ClCompile Include="..\gtk\gtkmm\menu.cc" /> +- <ClCompile Include="..\gtk\gtkmm\menubar.cc" /> +- <ClCompile Include="..\gtk\gtkmm\menubutton.cc" /> +- <ClCompile Include="..\gtk\gtkmm\menuitem.cc" /> +- <ClCompile Include="..\gtk\gtkmm\menushell.cc" /> +- <ClCompile Include="..\gtk\gtkmm\menutoolbutton.cc" /> +- <ClCompile Include="..\gtk\gtkmm\messagedialog.cc" /> +- <ClCompile Include="..\gtk\gtkmm\misc.cc" /> +- <ClCompile Include="..\gtk\gtkmm\modelbutton.cc" /> +- <ClCompile Include="..\gtk\gtkmm\notebook.cc" /> +- <ClCompile Include="..\gtk\gtkmm\numerableicon.cc" /> +- <ClCompile Include="..\gtk\gtkmm\object.cc" /> +- <ClCompile Include="..\gtk\gtkmm\offscreenwindow.cc" /> +- <ClCompile Include="..\gtk\gtkmm\orientable.cc" /> +- <ClCompile Include="..\gtk\gtkmm\overlay.cc" /> +- <ClCompile Include="..\gtk\gtkmm\pagesetup.cc" /> +- <ClCompile Include="..\gtk\gtkmm\paned.cc" /> +- <ClCompile Include="..\gtk\gtkmm\papersize.cc" /> +- <ClCompile Include="..\gtk\gtkmm\placessidebar.cc" /> +- <ClCompile Include="..\gtk\gtkmm\popover.cc" /> +- <ClCompile Include="..\gtk\gtkmm\popovermenu.cc" /> +- <ClCompile Include="..\gtk\gtkmm\printcontext.cc" /> +- <ClCompile Include="..\gtk\gtkmm\printoperation.cc" /> +- <ClCompile Include="..\gtk\gtkmm\printoperationpreview.cc" /> +- <ClCompile Include="..\gtk\gtkmm\printsettings.cc" /> +- <ClCompile Include="..\gtk\gtkmm\progressbar.cc" /> +- <ClCompile Include="..\gtk\gtkmm\radioaction.cc" /> +- <ClCompile Include="..\gtk\gtkmm\radiobutton.cc" /> +- <ClCompile Include="..\gtk\gtkmm\radiobuttongroup.cc" /> +- <ClCompile Include="..\gtk\gtkmm\radiomenuitem.cc" /> +- <ClCompile Include="..\gtk\gtkmm\radiotoolbutton.cc" /> +- <ClCompile Include="..\gtk\gtkmm\range.cc" /> +- <ClCompile Include="..\gtk\gtkmm\recentaction.cc" /> +- <ClCompile Include="..\gtk\gtkmm\recentchooser.cc" /> +- <ClCompile Include="..\gtk\gtkmm\recentchooserdialog.cc" /> +- <ClCompile Include="..\gtk\gtkmm\recentchoosermenu.cc" /> +- <ClCompile Include="..\gtk\gtkmm\recentchooserwidget.cc" /> +- <ClCompile Include="..\gtk\gtkmm\recentfilter.cc" /> +- <ClCompile Include="..\gtk\gtkmm\recentinfo.cc" /> +- <ClCompile Include="..\gtk\gtkmm\recentmanager.cc" /> +- <ClCompile Include="..\gtk\gtkmm\requisition.cc" /> +- <ClCompile Include="..\gtk\gtkmm\revealer.cc" /> +- <ClCompile Include="..\gtk\gtkmm\scale.cc" /> +- <ClCompile Include="..\gtk\gtkmm\scalebutton.cc" /> +- <ClCompile Include="..\gtk\gtkmm\scrollable.cc" /> +- <ClCompile Include="..\gtk\gtkmm\scrollbar.cc" /> +- <ClCompile Include="..\gtk\gtkmm\scrolledwindow.cc" /> +- <ClCompile Include="..\gtk\gtkmm\searchbar.cc" /> +- <ClCompile Include="..\gtk\gtkmm\searchentry.cc" /> +- <ClCompile Include="..\gtk\gtkmm\selectiondata.cc" /> +- <ClCompile Include="..\gtk\gtkmm\selectiondata_private.cc" /> +- <ClCompile Include="..\gtk\gtkmm\separator.cc" /> +- <ClCompile Include="..\gtk\gtkmm\separatormenuitem.cc" /> +- <ClCompile Include="..\gtk\gtkmm\separatortoolitem.cc" /> +- <ClCompile Include="..\gtk\gtkmm\settings.cc" /> +- <ClCompile Include="..\gtk\gtkmm\shortcutlabel.cc" /> +- <ClCompile Include="..\gtk\gtkmm\shortcutsgroup.cc" /> +- <ClCompile Include="..\gtk\gtkmm\shortcutssection.cc" /> +- <ClCompile Include="..\gtk\gtkmm\shortcutsshortcut.cc" /> +- <ClCompile Include="..\gtk\gtkmm\shortcutswindow.cc" /> +- <ClCompile Include="..\gtk\gtkmm\sizegroup.cc" /> +- <ClCompile Include="..\gtk\gtkmm\spinbutton.cc" /> +- <ClCompile Include="..\gtk\gtkmm\spinner.cc" /> +- <ClCompile Include="..\gtk\gtkmm\stack.cc" /> +- <ClCompile Include="..\gtk\gtkmm\stacksidebar.cc" /> +- <ClCompile Include="..\gtk\gtkmm\stackswitcher.cc" /> +- <ClCompile Include="..\gtk\gtkmm\statusbar.cc" /> +- <ClCompile Include="..\gtk\gtkmm\statusicon.cc" /> +- <ClCompile Include="..\gtk\gtkmm\stock.cc" /> +- <ClCompile Include="..\gtk\gtkmm\stockid.cc" /> +- <ClCompile Include="..\gtk\gtkmm\stockitem.cc" /> +- <ClCompile Include="..\gtk\gtkmm\stylecontext.cc" /> +- <ClCompile Include="..\gtk\gtkmm\styleprovider.cc" /> +- <ClCompile Include="..\gtk\gtkmm\switch.cc" /> +- <ClCompile Include="..\gtk\gtkmm\table.cc" /> +- <ClCompile Include="..\gtk\gtkmm\targetentry.cc" /> +- <ClCompile Include="..\gtk\gtkmm\targetlist.cc" /> +- <ClCompile Include="..\gtk\gtkmm\tearoffmenuitem.cc" /> +- <ClCompile Include="..\gtk\gtkmm\textattributes.cc" /> +- <ClCompile Include="..\gtk\gtkmm\textbuffer.cc" /> +- <ClCompile Include="..\gtk\gtkmm\textchildanchor.cc" /> +- <ClCompile Include="..\gtk\gtkmm\textiter.cc" /> +- <ClCompile Include="..\gtk\gtkmm\textmark.cc" /> +- <ClCompile Include="..\gtk\gtkmm\texttag.cc" /> +- <ClCompile Include="..\gtk\gtkmm\texttagtable.cc" /> +- <ClCompile Include="..\gtk\gtkmm\textview.cc" /> +- <ClCompile Include="..\gtk\gtkmm\toggleaction.cc" /> +- <ClCompile Include="..\gtk\gtkmm\togglebutton.cc" /> +- <ClCompile Include="..\gtk\gtkmm\toggletoolbutton.cc" /> +- <ClCompile Include="..\gtk\gtkmm\toolbar.cc" /> +- <ClCompile Include="..\gtk\gtkmm\toolbutton.cc" /> +- <ClCompile Include="..\gtk\gtkmm\toolitem.cc" /> +- <ClCompile Include="..\gtk\gtkmm\toolitemgroup.cc" /> +- <ClCompile Include="..\gtk\gtkmm\toolpalette.cc" /> +- <ClCompile Include="..\gtk\gtkmm\toolshell.cc" /> +- <ClCompile Include="..\gtk\gtkmm\tooltip.cc" /> +- <ClCompile Include="..\gtk\gtkmm\treedragdest.cc" /> +- <ClCompile Include="..\gtk\gtkmm\treedragsource.cc" /> +- <ClCompile Include="..\gtk\gtkmm\treeiter.cc" /> +- <ClCompile Include="..\gtk\gtkmm\treemodel.cc" /> +- <ClCompile Include="..\gtk\gtkmm\treemodelcolumn.cc" /> +- <ClCompile Include="..\gtk\gtkmm\treemodelfilter.cc" /> +- <ClCompile Include="..\gtk\gtkmm\treemodelsort.cc" /> +- <ClCompile Include="..\gtk\gtkmm\treepath.cc" /> +- <ClCompile Include="..\gtk\gtkmm\treerowreference.cc" /> +- <ClCompile Include="..\gtk\gtkmm\treeselection.cc" /> +- <ClCompile Include="..\gtk\gtkmm\treesortable.cc" /> +- <ClCompile Include="..\gtk\gtkmm\treestore.cc" /> +- <ClCompile Include="..\gtk\gtkmm\treeview.cc" /> +- <ClCompile Include="..\gtk\gtkmm\treeview_private.cc" /> +- <ClCompile Include="..\gtk\gtkmm\treeviewcolumn.cc" /> +- <ClCompile Include="..\gtk\gtkmm\uimanager.cc" /> +- <ClCompile Include="..\gtk\gtkmm\viewport.cc" /> +- <ClCompile Include="..\gtk\gtkmm\volumebutton.cc" /> +- <ClCompile Include="..\gtk\gtkmm\widget.cc" /> +- <ClCompile Include="..\gtk\gtkmm\widgetpath.cc" /> +- <ClCompile Include="..\gtk\gtkmm\window.cc" /> +- <ClCompile Include="..\gtk\gtkmm\windowgroup.cc" /> +- <ClCompile Include="..\gtk\gtkmm\wrap_init.cc" /> +- </ItemGroup> +- <ItemGroup> +- <ClInclude Include="..\gtk\gtkmm\aboutdialog.h" /> +- <ClInclude Include="..\gtk\gtkmm\accelgroup.h" /> +- <ClInclude Include="..\gtk\gtkmm\accelkey.h" /> +- <ClInclude Include="..\gtk\gtkmm\accellabel.h" /> +- <ClInclude Include="..\gtk\gtkmm\accelmap.h" /> +- <ClInclude Include="..\gtk\gtkmm\action.h" /> +- <ClInclude Include="..\gtk\gtkmm\actionable.h" /> +- <ClInclude Include="..\gtk\gtkmm\actionbar.h" /> +- <ClInclude Include="..\gtk\gtkmm\actiongroup.h" /> +- <ClInclude Include="..\gtk\gtkmm\activatable.h" /> +- <ClInclude Include="..\gtk\gtkmm\adjustment.h" /> +- <ClInclude Include="..\gtk\gtkmm\alignment.h" /> +- <ClInclude Include="..\gtk\gtkmm\appchooser.h" /> +- <ClInclude Include="..\gtk\gtkmm\appchooserbutton.h" /> +- <ClInclude Include="..\gtk\gtkmm\appchooserdialog.h" /> +- <ClInclude Include="..\gtk\gtkmm\appchooserwidget.h" /> +- <ClInclude Include="..\gtk\gtkmm\application.h" /> +- <ClInclude Include="..\gtk\gtkmm\applicationwindow.h" /> +- <ClInclude Include="..\gtk\gtkmm\arrow.h" /> +- <ClInclude Include="..\gtk\gtkmm\aspectframe.h" /> +- <ClInclude Include="..\gtk\gtkmm\assistant.h" /> +- <ClInclude Include="..\gtk\gtkmm\base.h" /> +- <ClInclude Include="..\gtk\gtkmm\bin.h" /> +- <ClInclude Include="..\gtk\gtkmm\border.h" /> +- <ClInclude Include="..\gtk\gtkmm\box.h" /> +- <ClInclude Include="..\gtk\gtkmm\builder.h" /> +- <ClInclude Include="..\gtk\gtkmm\button.h" /> +- <ClInclude Include="..\gtk\gtkmm\buttonbox.h" /> +- <ClInclude Include="..\gtk\gtkmm\calendar.h" /> +- <ClInclude Include="..\gtk\gtkmm\cellarea.h" /> +- <ClInclude Include="..\gtk\gtkmm\cellareabox.h" /> +- <ClInclude Include="..\gtk\gtkmm\cellareacontext.h" /> +- <ClInclude Include="..\gtk\gtkmm\celleditable.h" /> +- <ClInclude Include="..\gtk\gtkmm\celllayout.h" /> +- <ClInclude Include="..\gtk\gtkmm\cellrenderer.h" /> +- <ClInclude Include="..\gtk\gtkmm\cellrenderer_generation.h" /> +- <ClInclude Include="..\gtk\gtkmm\cellrendereraccel.h" /> +- <ClInclude Include="..\gtk\gtkmm\cellrenderercombo.h" /> +- <ClInclude Include="..\gtk\gtkmm\cellrendererpixbuf.h" /> +- <ClInclude Include="..\gtk\gtkmm\cellrendererprogress.h" /> +- <ClInclude Include="..\gtk\gtkmm\cellrendererspin.h" /> +- <ClInclude Include="..\gtk\gtkmm\cellrendererspinner.h" /> +- <ClInclude Include="..\gtk\gtkmm\cellrenderertext.h" /> +- <ClInclude Include="..\gtk\gtkmm\cellrenderertoggle.h" /> +- <ClInclude Include="..\gtk\gtkmm\cellview.h" /> +- <ClInclude Include="..\gtk\gtkmm\checkbutton.h" /> +- <ClInclude Include="..\gtk\gtkmm\checkmenuitem.h" /> +- <ClInclude Include="..\gtk\gtkmm\childpropertyproxy.h" /> +- <ClInclude Include="..\gtk\gtkmm\childpropertyproxy_base.h" /> +- <ClInclude Include="..\gtk\gtkmm\clipboard.h" /> +- <ClInclude Include="..\gtk\gtkmm\colorbutton.h" /> +- <ClInclude Include="..\gtk\gtkmm\colorchooser.h" /> +- <ClInclude Include="..\gtk\gtkmm\colorchooserdialog.h" /> +- <ClInclude Include="..\gtk\gtkmm\colorselection.h" /> +- <ClInclude Include="..\gtk\gtkmm\combobox.h" /> +- <ClInclude Include="..\gtk\gtkmm\comboboxtext.h" /> +- <ClInclude Include="..\gtk\gtkmm\container.h" /> +- <ClInclude Include="..\gtk\gtkmm\cssprovider.h" /> +- <ClInclude Include="..\gtk\gtkmm\csssection.h" /> +- <ClInclude Include="..\gtk\gtkmm\dialog.h" /> +- <ClInclude Include="..\gtk\gtkmm\drawingarea.h" /> +- <ClInclude Include="..\gtk\gtkmm\editable.h" /> +- <ClInclude Include="..\gtk\gtkmm\entry.h" /> +- <ClInclude Include="..\gtk\gtkmm\entrybuffer.h" /> +- <ClInclude Include="..\gtk\gtkmm\entrycompletion.h" /> +- <ClInclude Include="..\gtk\gtkmm\enums.h" /> +- <ClInclude Include="..\gtk\gtkmm\eventbox.h" /> +- <ClInclude Include="..\gtk\gtkmm\eventcontroller.h" /> +- <ClInclude Include="..\gtk\gtkmm\expander.h" /> +- <ClInclude Include="..\gtk\gtkmm\filechooser.h" /> +- <ClInclude Include="..\gtk\gtkmm\filechooserbutton.h" /> +- <ClInclude Include="..\gtk\gtkmm\filechooserdialog.h" /> +- <ClInclude Include="..\gtk\gtkmm\filechooserwidget.h" /> +- <ClInclude Include="..\gtk\gtkmm\filefilter.h" /> +- <ClInclude Include="..\gtk\gtkmm\fixed.h" /> +- <ClInclude Include="..\gtk\gtkmm\flowbox.h" /> +- <ClInclude Include="..\gtk\gtkmm\flowboxchild.h" /> +- <ClInclude Include="..\gtk\gtkmm\fontbutton.h" /> +- <ClInclude Include="..\gtk\gtkmm\fontchooser.h" /> +- <ClInclude Include="..\gtk\gtkmm\fontchooserdialog.h" /> +- <ClInclude Include="..\gtk\gtkmm\fontchooserwidget.h" /> +- <ClInclude Include="..\gtk\gtkmm\fontselection.h" /> +- <ClInclude Include="..\gtk\gtkmm\frame.h" /> +- <ClInclude Include="..\gtk\gtkmm\gesture.h" /> +- <ClInclude Include="..\gtk\gtkmm\gesturedrag.h" /> +- <ClInclude Include="..\gtk\gtkmm\gesturelongpress.h" /> +- <ClInclude Include="..\gtk\gtkmm\gesturemultipress.h" /> +- <ClInclude Include="..\gtk\gtkmm\gesturepan.h" /> +- <ClInclude Include="..\gtk\gtkmm\gesturerotate.h" /> +- <ClInclude Include="..\gtk\gtkmm\gesturesingle.h" /> +- <ClInclude Include="..\gtk\gtkmm\gestureswipe.h" /> +- <ClInclude Include="..\gtk\gtkmm\gesturezoom.h" /> +- <ClInclude Include="..\gtk\gtkmm\glarea.h" /> +- <ClInclude Include="..\gtk\gtkmm\grid.h" /> +- <ClInclude Include="..\gtk\gtkmm\handlebox.h" /> +- <ClInclude Include="..\gtk\gtkmm\headerbar.h" /> +- <ClInclude Include="..\gtk\gtkmm\hvbox.h" /> +- <ClInclude Include="..\gtk\gtkmm\hvbuttonbox.h" /> +- <ClInclude Include="..\gtk\gtkmm\hvpaned.h" /> +- <ClInclude Include="..\gtk\gtkmm\hvscale.h" /> +- <ClInclude Include="..\gtk\gtkmm\hvscrollbar.h" /> +- <ClInclude Include="..\gtk\gtkmm\hvseparator.h" /> +- <ClInclude Include="..\gtk\gtkmm\iconfactory.h" /> +- <ClInclude Include="..\gtk\gtkmm\iconinfo.h" /> +- <ClInclude Include="..\gtk\gtkmm\iconset.h" /> +- <ClInclude Include="..\gtk\gtkmm\iconsource.h" /> +- <ClInclude Include="..\gtk\gtkmm\icontheme.h" /> +- <ClInclude Include="..\gtk\gtkmm\iconview.h" /> +- <ClInclude Include="..\gtk\gtkmm\image.h" /> +- <ClInclude Include="..\gtk\gtkmm\imagemenuitem.h" /> +- <ClInclude Include="..\gtk\gtkmm\infobar.h" /> +- <ClInclude Include="..\gtk\gtkmm\invisible.h" /> +- <ClInclude Include="..\gtk\gtkmm\label.h" /> +- <ClInclude Include="..\gtk\gtkmm\layout.h" /> +- <ClInclude Include="..\gtk\gtkmm\levelbar.h" /> +- <ClInclude Include="..\gtk\gtkmm\linkbutton.h" /> +- <ClInclude Include="..\gtk\gtkmm\listbox.h" /> +- <ClInclude Include="..\gtk\gtkmm\listboxrow.h" /> +- <ClInclude Include="..\gtk\gtkmm\liststore.h" /> +- <ClInclude Include="..\gtk\gtkmm\listviewtext.h" /> +- <ClInclude Include="..\gtk\gtkmm\lockbutton.h" /> +- <ClInclude Include="..\gtk\gtkmm\main.h" /> +- <ClInclude Include="..\gtk\gtkmm\menu.h" /> +- <ClInclude Include="..\gtk\gtkmm\menubar.h" /> +- <ClInclude Include="..\gtk\gtkmm\menubutton.h" /> +- <ClInclude Include="..\gtk\gtkmm\menuitem.h" /> +- <ClInclude Include="..\gtk\gtkmm\menushell.h" /> +- <ClInclude Include="..\gtk\gtkmm\menutoolbutton.h" /> +- <ClInclude Include="..\gtk\gtkmm\messagedialog.h" /> +- <ClInclude Include="..\gtk\gtkmm\misc.h" /> +- <ClInclude Include="..\gtk\gtkmm\modelbutton.h" /> +- <ClInclude Include="..\gtk\gtkmm\notebook.h" /> +- <ClInclude Include="..\gtk\gtkmm\numerableicon.h" /> +- <ClInclude Include="..\gtk\gtkmm\object.h" /> +- <ClInclude Include="..\gtk\gtkmm\offscreenwindow.h" /> +- <ClInclude Include="..\gtk\gtkmm\orientable.h" /> +- <ClInclude Include="..\gtk\gtkmm\overlay.h" /> +- <ClInclude Include="..\gtk\gtkmm\pagesetup.h" /> +- <ClInclude Include="..\gtk\gtkmm\paned.h" /> +- <ClInclude Include="..\gtk\gtkmm\papersize.h" /> +- <ClInclude Include="..\gtk\gtkmm\placessidebar.h" /> +- <ClInclude Include="..\gtk\gtkmm\popover.h" /> +- <ClInclude Include="..\gtk\gtkmm\popovermenu.h" /> +- <ClInclude Include="..\gtk\gtkmm\printcontext.h" /> +- <ClInclude Include="..\gtk\gtkmm\printoperation.h" /> +- <ClInclude Include="..\gtk\gtkmm\printoperationpreview.h" /> +- <ClInclude Include="..\gtk\gtkmm\printsettings.h" /> +- <ClInclude Include="..\gtk\gtkmm\progressbar.h" /> +- <ClInclude Include="..\gtk\gtkmm\radioaction.h" /> +- <ClInclude Include="..\gtk\gtkmm\radiobutton.h" /> +- <ClInclude Include="..\gtk\gtkmm\radiobuttongroup.h" /> +- <ClInclude Include="..\gtk\gtkmm\radiomenuitem.h" /> +- <ClInclude Include="..\gtk\gtkmm\radiotoolbutton.h" /> +- <ClInclude Include="..\gtk\gtkmm\range.h" /> +- <ClInclude Include="..\gtk\gtkmm\recentaction.h" /> +- <ClInclude Include="..\gtk\gtkmm\recentchooser.h" /> +- <ClInclude Include="..\gtk\gtkmm\recentchooserdialog.h" /> +- <ClInclude Include="..\gtk\gtkmm\recentchoosermenu.h" /> +- <ClInclude Include="..\gtk\gtkmm\recentchooserwidget.h" /> +- <ClInclude Include="..\gtk\gtkmm\recentfilter.h" /> +- <ClInclude Include="..\gtk\gtkmm\recentinfo.h" /> +- <ClInclude Include="..\gtk\gtkmm\recentmanager.h" /> +- <ClInclude Include="..\gtk\gtkmm\requisition.h" /> +- <ClInclude Include="..\gtk\gtkmm\revealer.h" /> +- <ClInclude Include="..\gtk\gtkmm\scale.h" /> +- <ClInclude Include="..\gtk\gtkmm\scalebutton.h" /> +- <ClInclude Include="..\gtk\gtkmm\scrollable.h" /> +- <ClInclude Include="..\gtk\gtkmm\scrollbar.h" /> +- <ClInclude Include="..\gtk\gtkmm\scrolledwindow.h" /> +- <ClInclude Include="..\gtk\gtkmm\searchbar.h" /> +- <ClInclude Include="..\gtk\gtkmm\searchentry.h" /> +- <ClInclude Include="..\gtk\gtkmm\selectiondata.h" /> +- <ClInclude Include="..\gtk\gtkmm\selectiondata_private.h" /> +- <ClInclude Include="..\gtk\gtkmm\separator.h" /> +- <ClInclude Include="..\gtk\gtkmm\separatormenuitem.h" /> +- <ClInclude Include="..\gtk\gtkmm\separatortoolitem.h" /> +- <ClInclude Include="..\gtk\gtkmm\settings.h" /> +- <ClInclude Include="..\gtk\gtkmm\shortcutlabel.h" /> +- <ClInclude Include="..\gtk\gtkmm\shortcutsgroup.h" /> +- <ClInclude Include="..\gtk\gtkmm\shortcutssection.h" /> +- <ClInclude Include="..\gtk\gtkmm\shortcutsshortcut.h" /> +- <ClInclude Include="..\gtk\gtkmm\shortcutswindow.h" /> +- <ClInclude Include="..\gtk\gtkmm\sizegroup.h" /> +- <ClInclude Include="..\gtk\gtkmm\spinbutton.h" /> +- <ClInclude Include="..\gtk\gtkmm\spinner.h" /> +- <ClInclude Include="..\gtk\gtkmm\stack.h" /> +- <ClInclude Include="..\gtk\gtkmm\stacksidebar.h" /> +- <ClInclude Include="..\gtk\gtkmm\stackswitcher.h" /> +- <ClInclude Include="..\gtk\gtkmm\statusbar.h" /> +- <ClInclude Include="..\gtk\gtkmm\statusicon.h" /> +- <ClInclude Include="..\gtk\gtkmm\stock.h" /> +- <ClInclude Include="..\gtk\gtkmm\stockid.h" /> +- <ClInclude Include="..\gtk\gtkmm\stockitem.h" /> +- <ClInclude Include="..\gtk\gtkmm\stylecontext.h" /> +- <ClInclude Include="..\gtk\gtkmm\styleprovider.h" /> +- <ClInclude Include="..\gtk\gtkmm\switch.h" /> +- <ClInclude Include="..\gtk\gtkmm\table.h" /> +- <ClInclude Include="..\gtk\gtkmm\targetentry.h" /> +- <ClInclude Include="..\gtk\gtkmm\targetlist.h" /> +- <ClInclude Include="..\gtk\gtkmm\tearoffmenuitem.h" /> +- <ClInclude Include="..\gtk\gtkmm\textattributes.h" /> +- <ClInclude Include="..\gtk\gtkmm\textbuffer.h" /> +- <ClInclude Include="..\gtk\gtkmm\textchildanchor.h" /> +- <ClInclude Include="..\gtk\gtkmm\textiter.h" /> +- <ClInclude Include="..\gtk\gtkmm\textmark.h" /> +- <ClInclude Include="..\gtk\gtkmm\texttag.h" /> +- <ClInclude Include="..\gtk\gtkmm\texttagtable.h" /> +- <ClInclude Include="..\gtk\gtkmm\textview.h" /> +- <ClInclude Include="..\gtk\gtkmm\toggleaction.h" /> +- <ClInclude Include="..\gtk\gtkmm\togglebutton.h" /> +- <ClInclude Include="..\gtk\gtkmm\toggletoolbutton.h" /> +- <ClInclude Include="..\gtk\gtkmm\toolbar.h" /> +- <ClInclude Include="..\gtk\gtkmm\toolbutton.h" /> +- <ClInclude Include="..\gtk\gtkmm\toolitem.h" /> +- <ClInclude Include="..\gtk\gtkmm\toolitemgroup.h" /> +- <ClInclude Include="..\gtk\gtkmm\toolpalette.h" /> +- <ClInclude Include="..\gtk\gtkmm\toolshell.h" /> +- <ClInclude Include="..\gtk\gtkmm\tooltip.h" /> +- <ClInclude Include="..\gtk\gtkmm\treedragdest.h" /> +- <ClInclude Include="..\gtk\gtkmm\treedragsource.h" /> +- <ClInclude Include="..\gtk\gtkmm\treeiter.h" /> +- <ClInclude Include="..\gtk\gtkmm\treemodel.h" /> +- <ClInclude Include="..\gtk\gtkmm\treemodelcolumn.h" /> +- <ClInclude Include="..\gtk\gtkmm\treemodelfilter.h" /> +- <ClInclude Include="..\gtk\gtkmm\treemodelsort.h" /> +- <ClInclude Include="..\gtk\gtkmm\treepath.h" /> +- <ClInclude Include="..\gtk\gtkmm\treerowreference.h" /> +- <ClInclude Include="..\gtk\gtkmm\treeselection.h" /> +- <ClInclude Include="..\gtk\gtkmm\treesortable.h" /> +- <ClInclude Include="..\gtk\gtkmm\treestore.h" /> +- <ClInclude Include="..\gtk\gtkmm\treeview.h" /> +- <ClInclude Include="..\gtk\gtkmm\treeview_private.h" /> +- <ClInclude Include="..\gtk\gtkmm\treeviewcolumn.h" /> +- <ClInclude Include="..\gtk\gtkmm\uimanager.h" /> +- <ClInclude Include="..\gtk\gtkmm\viewport.h" /> +- <ClInclude Include="..\gtk\gtkmm\volumebutton.h" /> +- <ClInclude Include="..\gtk\gtkmm\widget.h" /> +- <ClInclude Include="..\gtk\gtkmm\widgetpath.h" /> +- <ClInclude Include="..\gtk\gtkmm\window.h" /> +- <ClInclude Include="..\gtk\gtkmm\windowgroup.h" /> +- <ClInclude Include="..\gtk\gtkmm\wrap_init.h" /> +- </ItemGroup> +- <ItemGroup> +- <ResourceCompile Include=".\gtkmm\gtkmm.rc" /> +- </ItemGroup> +- <ItemGroup> +- <ProjectReference Include="gdkmm.vcxproj"> +- <Project>{976c8f9c-1a1d-4e23-b79e-ec9091bbea0e}</Project> +- <ReferenceOutputAssembly>false</ReferenceOutputAssembly> +- </ProjectReference> +- <ProjectReference Include="gendef.vcxproj"> +- <Project>{07324745-c9be-4d65-b08a-9c88188c0c28}</Project> +- <ReferenceOutputAssembly>false</ReferenceOutputAssembly> +- </ProjectReference> +- </ItemGroup> +- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> +- <ImportGroup Label="ExtensionTargets"> +- </ImportGroup> +-</Project> +\ No newline at end of file ++ <OutputFile>$(OutDir)$(ProjectName)$(ReleaseDllSuffix).dll</OutputFile> ++ <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile> ++ <GenerateDebugInformation>true</GenerateDebugInformation> ++ <OptimizeReferences>true</OptimizeReferences> ++ <RandomizedBaseAddress>false</RandomizedBaseAddress> ++ <DataExecutionPrevention> ++ </DataExecutionPrevention> ++ <TargetMachine>MachineX64</TargetMachine> ++ </Link> ++ </ItemDefinitionGroup> ++ <ItemGroup> ++ <ClCompile Include="..\gtk\gtkmm\aboutdialog.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\accelgroup.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\accelkey.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\accellabel.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\accelmap.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\action.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\actionable.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\actionbar.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\actiongroup.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\activatable.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\adjustment.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\alignment.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\appchooser.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\appchooserbutton.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\appchooserdialog.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\appchooserwidget.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\application.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\applicationwindow.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\arrow.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\aspectframe.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\assistant.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\bin.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\border.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\box.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\buildable.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\builder.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\button.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\buttonbox.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\calendar.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\cellarea.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\cellareabox.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\cellareacontext.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\celleditable.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\celllayout.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\cellrenderer.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\cellrenderer_generation.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\cellrendereraccel.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\cellrenderercombo.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\cellrendererpixbuf.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\cellrendererprogress.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\cellrendererspin.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\cellrendererspinner.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\cellrenderertext.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\cellrenderertoggle.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\cellview.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\checkbutton.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\checkmenuitem.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\childpropertyproxy.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\childpropertyproxy_base.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\clipboard.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\colorbutton.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\colorchooser.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\colorchooserdialog.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\colorselection.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\combobox.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\comboboxtext.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\container.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\cssprovider.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\csssection.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\dialog.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\drawingarea.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\editable.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\entry.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\entrybuffer.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\entrycompletion.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\enums.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\eventbox.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\eventcontroller.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\expander.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\filechooser.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\filechooserbutton.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\filechooserdialog.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\filechooserwidget.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\filefilter.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\fixed.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\flowbox.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\flowboxchild.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\fontbutton.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\fontchooser.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\fontchooserdialog.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\fontchooserwidget.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\fontselection.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\frame.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\gesture.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\gesturedrag.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\gesturelongpress.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\gesturemultipress.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\gesturepan.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\gesturerotate.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\gesturesingle.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\gestureswipe.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\gesturezoom.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\glarea.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\grid.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\handlebox.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\headerbar.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\hvbox.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\hvbuttonbox.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\hvpaned.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\hvscale.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\hvscrollbar.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\hvseparator.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\iconfactory.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\iconinfo.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\iconset.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\iconsource.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\icontheme.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\iconview.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\image.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\imagemenuitem.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\infobar.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\invisible.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\label.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\layout.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\levelbar.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\linkbutton.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\listbox.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\listboxrow.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\liststore.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\listviewtext.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\lockbutton.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\main.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\menu.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\menubar.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\menubutton.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\menuitem.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\menushell.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\menutoolbutton.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\messagedialog.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\misc.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\modelbutton.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\notebook.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\numerableicon.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\object.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\offscreenwindow.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\orientable.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\overlay.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\pagesetup.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\paned.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\papersize.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\placessidebar.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\popover.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\popovermenu.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\printcontext.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\printoperation.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\printoperationpreview.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\printsettings.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\progressbar.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\radioaction.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\radiobutton.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\radiobuttongroup.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\radiomenuitem.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\radiotoolbutton.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\range.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\recentaction.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\recentchooser.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\recentchooserdialog.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\recentchoosermenu.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\recentchooserwidget.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\recentfilter.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\recentinfo.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\recentmanager.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\requisition.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\revealer.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\scale.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\scalebutton.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\scrollable.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\scrollbar.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\scrolledwindow.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\searchbar.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\searchentry.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\selectiondata.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\selectiondata_private.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\separator.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\separatormenuitem.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\separatortoolitem.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\settings.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\shortcutlabel.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\shortcutsgroup.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\shortcutssection.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\shortcutsshortcut.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\shortcutswindow.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\sizegroup.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\spinbutton.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\spinner.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\stack.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\stacksidebar.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\stackswitcher.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\statusbar.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\statusicon.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\stock.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\stockid.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\stockitem.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\stylecontext.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\styleprovider.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\switch.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\table.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\targetentry.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\targetlist.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\tearoffmenuitem.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\textattributes.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\textbuffer.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\textchildanchor.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\textiter.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\textmark.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\texttag.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\texttagtable.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\textview.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\toggleaction.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\togglebutton.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\toggletoolbutton.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\toolbar.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\toolbutton.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\toolitem.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\toolitemgroup.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\toolpalette.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\toolshell.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\tooltip.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\treedragdest.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\treedragsource.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\treeiter.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\treemodel.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\treemodelcolumn.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\treemodelfilter.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\treemodelsort.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\treepath.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\treerowreference.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\treeselection.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\treesortable.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\treestore.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\treeview.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\treeview_private.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\treeviewcolumn.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\uimanager.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\viewport.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\volumebutton.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\widget.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\widgetpath.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\window.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\windowgroup.cc" /> ++ <ClCompile Include="..\gtk\gtkmm\wrap_init.cc" /> ++ </ItemGroup> ++ <ItemGroup> ++ <ClInclude Include="..\gtk\gtkmm\aboutdialog.h" /> ++ <ClInclude Include="..\gtk\gtkmm\accelgroup.h" /> ++ <ClInclude Include="..\gtk\gtkmm\accelkey.h" /> ++ <ClInclude Include="..\gtk\gtkmm\accellabel.h" /> ++ <ClInclude Include="..\gtk\gtkmm\accelmap.h" /> ++ <ClInclude Include="..\gtk\gtkmm\action.h" /> ++ <ClInclude Include="..\gtk\gtkmm\actionable.h" /> ++ <ClInclude Include="..\gtk\gtkmm\actionbar.h" /> ++ <ClInclude Include="..\gtk\gtkmm\actiongroup.h" /> ++ <ClInclude Include="..\gtk\gtkmm\activatable.h" /> ++ <ClInclude Include="..\gtk\gtkmm\adjustment.h" /> ++ <ClInclude Include="..\gtk\gtkmm\alignment.h" /> ++ <ClInclude Include="..\gtk\gtkmm\appchooser.h" /> ++ <ClInclude Include="..\gtk\gtkmm\appchooserbutton.h" /> ++ <ClInclude Include="..\gtk\gtkmm\appchooserdialog.h" /> ++ <ClInclude Include="..\gtk\gtkmm\appchooserwidget.h" /> ++ <ClInclude Include="..\gtk\gtkmm\application.h" /> ++ <ClInclude Include="..\gtk\gtkmm\applicationwindow.h" /> ++ <ClInclude Include="..\gtk\gtkmm\arrow.h" /> ++ <ClInclude Include="..\gtk\gtkmm\aspectframe.h" /> ++ <ClInclude Include="..\gtk\gtkmm\assistant.h" /> ++ <ClInclude Include="..\gtk\gtkmm\base.h" /> ++ <ClInclude Include="..\gtk\gtkmm\bin.h" /> ++ <ClInclude Include="..\gtk\gtkmm\border.h" /> ++ <ClInclude Include="..\gtk\gtkmm\box.h" /> ++ <ClInclude Include="..\gtk\gtkmm\builder.h" /> ++ <ClInclude Include="..\gtk\gtkmm\button.h" /> ++ <ClInclude Include="..\gtk\gtkmm\buttonbox.h" /> ++ <ClInclude Include="..\gtk\gtkmm\calendar.h" /> ++ <ClInclude Include="..\gtk\gtkmm\cellarea.h" /> ++ <ClInclude Include="..\gtk\gtkmm\cellareabox.h" /> ++ <ClInclude Include="..\gtk\gtkmm\cellareacontext.h" /> ++ <ClInclude Include="..\gtk\gtkmm\celleditable.h" /> ++ <ClInclude Include="..\gtk\gtkmm\celllayout.h" /> ++ <ClInclude Include="..\gtk\gtkmm\cellrenderer.h" /> ++ <ClInclude Include="..\gtk\gtkmm\cellrenderer_generation.h" /> ++ <ClInclude Include="..\gtk\gtkmm\cellrendereraccel.h" /> ++ <ClInclude Include="..\gtk\gtkmm\cellrenderercombo.h" /> ++ <ClInclude Include="..\gtk\gtkmm\cellrendererpixbuf.h" /> ++ <ClInclude Include="..\gtk\gtkmm\cellrendererprogress.h" /> ++ <ClInclude Include="..\gtk\gtkmm\cellrendererspin.h" /> ++ <ClInclude Include="..\gtk\gtkmm\cellrendererspinner.h" /> ++ <ClInclude Include="..\gtk\gtkmm\cellrenderertext.h" /> ++ <ClInclude Include="..\gtk\gtkmm\cellrenderertoggle.h" /> ++ <ClInclude Include="..\gtk\gtkmm\cellview.h" /> ++ <ClInclude Include="..\gtk\gtkmm\checkbutton.h" /> ++ <ClInclude Include="..\gtk\gtkmm\checkmenuitem.h" /> ++ <ClInclude Include="..\gtk\gtkmm\childpropertyproxy.h" /> ++ <ClInclude Include="..\gtk\gtkmm\childpropertyproxy_base.h" /> ++ <ClInclude Include="..\gtk\gtkmm\clipboard.h" /> ++ <ClInclude Include="..\gtk\gtkmm\colorbutton.h" /> ++ <ClInclude Include="..\gtk\gtkmm\colorchooser.h" /> ++ <ClInclude Include="..\gtk\gtkmm\colorchooserdialog.h" /> ++ <ClInclude Include="..\gtk\gtkmm\colorselection.h" /> ++ <ClInclude Include="..\gtk\gtkmm\combobox.h" /> ++ <ClInclude Include="..\gtk\gtkmm\comboboxtext.h" /> ++ <ClInclude Include="..\gtk\gtkmm\container.h" /> ++ <ClInclude Include="..\gtk\gtkmm\cssprovider.h" /> ++ <ClInclude Include="..\gtk\gtkmm\csssection.h" /> ++ <ClInclude Include="..\gtk\gtkmm\dialog.h" /> ++ <ClInclude Include="..\gtk\gtkmm\drawingarea.h" /> ++ <ClInclude Include="..\gtk\gtkmm\editable.h" /> ++ <ClInclude Include="..\gtk\gtkmm\entry.h" /> ++ <ClInclude Include="..\gtk\gtkmm\entrybuffer.h" /> ++ <ClInclude Include="..\gtk\gtkmm\entrycompletion.h" /> ++ <ClInclude Include="..\gtk\gtkmm\enums.h" /> ++ <ClInclude Include="..\gtk\gtkmm\eventbox.h" /> ++ <ClInclude Include="..\gtk\gtkmm\eventcontroller.h" /> ++ <ClInclude Include="..\gtk\gtkmm\expander.h" /> ++ <ClInclude Include="..\gtk\gtkmm\filechooser.h" /> ++ <ClInclude Include="..\gtk\gtkmm\filechooserbutton.h" /> ++ <ClInclude Include="..\gtk\gtkmm\filechooserdialog.h" /> ++ <ClInclude Include="..\gtk\gtkmm\filechooserwidget.h" /> ++ <ClInclude Include="..\gtk\gtkmm\filefilter.h" /> ++ <ClInclude Include="..\gtk\gtkmm\fixed.h" /> ++ <ClInclude Include="..\gtk\gtkmm\flowbox.h" /> ++ <ClInclude Include="..\gtk\gtkmm\flowboxchild.h" /> ++ <ClInclude Include="..\gtk\gtkmm\fontbutton.h" /> ++ <ClInclude Include="..\gtk\gtkmm\fontchooser.h" /> ++ <ClInclude Include="..\gtk\gtkmm\fontchooserdialog.h" /> ++ <ClInclude Include="..\gtk\gtkmm\fontchooserwidget.h" /> ++ <ClInclude Include="..\gtk\gtkmm\fontselection.h" /> ++ <ClInclude Include="..\gtk\gtkmm\frame.h" /> ++ <ClInclude Include="..\gtk\gtkmm\gesture.h" /> ++ <ClInclude Include="..\gtk\gtkmm\gesturedrag.h" /> ++ <ClInclude Include="..\gtk\gtkmm\gesturelongpress.h" /> ++ <ClInclude Include="..\gtk\gtkmm\gesturemultipress.h" /> ++ <ClInclude Include="..\gtk\gtkmm\gesturepan.h" /> ++ <ClInclude Include="..\gtk\gtkmm\gesturerotate.h" /> ++ <ClInclude Include="..\gtk\gtkmm\gesturesingle.h" /> ++ <ClInclude Include="..\gtk\gtkmm\gestureswipe.h" /> ++ <ClInclude Include="..\gtk\gtkmm\gesturezoom.h" /> ++ <ClInclude Include="..\gtk\gtkmm\glarea.h" /> ++ <ClInclude Include="..\gtk\gtkmm\grid.h" /> ++ <ClInclude Include="..\gtk\gtkmm\handlebox.h" /> ++ <ClInclude Include="..\gtk\gtkmm\headerbar.h" /> ++ <ClInclude Include="..\gtk\gtkmm\hvbox.h" /> ++ <ClInclude Include="..\gtk\gtkmm\hvbuttonbox.h" /> ++ <ClInclude Include="..\gtk\gtkmm\hvpaned.h" /> ++ <ClInclude Include="..\gtk\gtkmm\hvscale.h" /> ++ <ClInclude Include="..\gtk\gtkmm\hvscrollbar.h" /> ++ <ClInclude Include="..\gtk\gtkmm\hvseparator.h" /> ++ <ClInclude Include="..\gtk\gtkmm\iconfactory.h" /> ++ <ClInclude Include="..\gtk\gtkmm\iconinfo.h" /> ++ <ClInclude Include="..\gtk\gtkmm\iconset.h" /> ++ <ClInclude Include="..\gtk\gtkmm\iconsource.h" /> ++ <ClInclude Include="..\gtk\gtkmm\icontheme.h" /> ++ <ClInclude Include="..\gtk\gtkmm\iconview.h" /> ++ <ClInclude Include="..\gtk\gtkmm\image.h" /> ++ <ClInclude Include="..\gtk\gtkmm\imagemenuitem.h" /> ++ <ClInclude Include="..\gtk\gtkmm\infobar.h" /> ++ <ClInclude Include="..\gtk\gtkmm\invisible.h" /> ++ <ClInclude Include="..\gtk\gtkmm\label.h" /> ++ <ClInclude Include="..\gtk\gtkmm\layout.h" /> ++ <ClInclude Include="..\gtk\gtkmm\levelbar.h" /> ++ <ClInclude Include="..\gtk\gtkmm\linkbutton.h" /> ++ <ClInclude Include="..\gtk\gtkmm\listbox.h" /> ++ <ClInclude Include="..\gtk\gtkmm\listboxrow.h" /> ++ <ClInclude Include="..\gtk\gtkmm\liststore.h" /> ++ <ClInclude Include="..\gtk\gtkmm\listviewtext.h" /> ++ <ClInclude Include="..\gtk\gtkmm\lockbutton.h" /> ++ <ClInclude Include="..\gtk\gtkmm\main.h" /> ++ <ClInclude Include="..\gtk\gtkmm\menu.h" /> ++ <ClInclude Include="..\gtk\gtkmm\menubar.h" /> ++ <ClInclude Include="..\gtk\gtkmm\menubutton.h" /> ++ <ClInclude Include="..\gtk\gtkmm\menuitem.h" /> ++ <ClInclude Include="..\gtk\gtkmm\menushell.h" /> ++ <ClInclude Include="..\gtk\gtkmm\menutoolbutton.h" /> ++ <ClInclude Include="..\gtk\gtkmm\messagedialog.h" /> ++ <ClInclude Include="..\gtk\gtkmm\misc.h" /> ++ <ClInclude Include="..\gtk\gtkmm\modelbutton.h" /> ++ <ClInclude Include="..\gtk\gtkmm\notebook.h" /> ++ <ClInclude Include="..\gtk\gtkmm\numerableicon.h" /> ++ <ClInclude Include="..\gtk\gtkmm\object.h" /> ++ <ClInclude Include="..\gtk\gtkmm\offscreenwindow.h" /> ++ <ClInclude Include="..\gtk\gtkmm\orientable.h" /> ++ <ClInclude Include="..\gtk\gtkmm\overlay.h" /> ++ <ClInclude Include="..\gtk\gtkmm\pagesetup.h" /> ++ <ClInclude Include="..\gtk\gtkmm\paned.h" /> ++ <ClInclude Include="..\gtk\gtkmm\papersize.h" /> ++ <ClInclude Include="..\gtk\gtkmm\placessidebar.h" /> ++ <ClInclude Include="..\gtk\gtkmm\popover.h" /> ++ <ClInclude Include="..\gtk\gtkmm\popovermenu.h" /> ++ <ClInclude Include="..\gtk\gtkmm\printcontext.h" /> ++ <ClInclude Include="..\gtk\gtkmm\printoperation.h" /> ++ <ClInclude Include="..\gtk\gtkmm\printoperationpreview.h" /> ++ <ClInclude Include="..\gtk\gtkmm\printsettings.h" /> ++ <ClInclude Include="..\gtk\gtkmm\progressbar.h" /> ++ <ClInclude Include="..\gtk\gtkmm\radioaction.h" /> ++ <ClInclude Include="..\gtk\gtkmm\radiobutton.h" /> ++ <ClInclude Include="..\gtk\gtkmm\radiobuttongroup.h" /> ++ <ClInclude Include="..\gtk\gtkmm\radiomenuitem.h" /> ++ <ClInclude Include="..\gtk\gtkmm\radiotoolbutton.h" /> ++ <ClInclude Include="..\gtk\gtkmm\range.h" /> ++ <ClInclude Include="..\gtk\gtkmm\recentaction.h" /> ++ <ClInclude Include="..\gtk\gtkmm\recentchooser.h" /> ++ <ClInclude Include="..\gtk\gtkmm\recentchooserdialog.h" /> ++ <ClInclude Include="..\gtk\gtkmm\recentchoosermenu.h" /> ++ <ClInclude Include="..\gtk\gtkmm\recentchooserwidget.h" /> ++ <ClInclude Include="..\gtk\gtkmm\recentfilter.h" /> ++ <ClInclude Include="..\gtk\gtkmm\recentinfo.h" /> ++ <ClInclude Include="..\gtk\gtkmm\recentmanager.h" /> ++ <ClInclude Include="..\gtk\gtkmm\requisition.h" /> ++ <ClInclude Include="..\gtk\gtkmm\revealer.h" /> ++ <ClInclude Include="..\gtk\gtkmm\scale.h" /> ++ <ClInclude Include="..\gtk\gtkmm\scalebutton.h" /> ++ <ClInclude Include="..\gtk\gtkmm\scrollable.h" /> ++ <ClInclude Include="..\gtk\gtkmm\scrollbar.h" /> ++ <ClInclude Include="..\gtk\gtkmm\scrolledwindow.h" /> ++ <ClInclude Include="..\gtk\gtkmm\searchbar.h" /> ++ <ClInclude Include="..\gtk\gtkmm\searchentry.h" /> ++ <ClInclude Include="..\gtk\gtkmm\selectiondata.h" /> ++ <ClInclude Include="..\gtk\gtkmm\selectiondata_private.h" /> ++ <ClInclude Include="..\gtk\gtkmm\separator.h" /> ++ <ClInclude Include="..\gtk\gtkmm\separatormenuitem.h" /> ++ <ClInclude Include="..\gtk\gtkmm\separatortoolitem.h" /> ++ <ClInclude Include="..\gtk\gtkmm\settings.h" /> ++ <ClInclude Include="..\gtk\gtkmm\shortcutlabel.h" /> ++ <ClInclude Include="..\gtk\gtkmm\shortcutsgroup.h" /> ++ <ClInclude Include="..\gtk\gtkmm\shortcutssection.h" /> ++ <ClInclude Include="..\gtk\gtkmm\shortcutsshortcut.h" /> ++ <ClInclude Include="..\gtk\gtkmm\shortcutswindow.h" /> ++ <ClInclude Include="..\gtk\gtkmm\sizegroup.h" /> ++ <ClInclude Include="..\gtk\gtkmm\spinbutton.h" /> ++ <ClInclude Include="..\gtk\gtkmm\spinner.h" /> ++ <ClInclude Include="..\gtk\gtkmm\stack.h" /> ++ <ClInclude Include="..\gtk\gtkmm\stacksidebar.h" /> ++ <ClInclude Include="..\gtk\gtkmm\stackswitcher.h" /> ++ <ClInclude Include="..\gtk\gtkmm\statusbar.h" /> ++ <ClInclude Include="..\gtk\gtkmm\statusicon.h" /> ++ <ClInclude Include="..\gtk\gtkmm\stock.h" /> ++ <ClInclude Include="..\gtk\gtkmm\stockid.h" /> ++ <ClInclude Include="..\gtk\gtkmm\stockitem.h" /> ++ <ClInclude Include="..\gtk\gtkmm\stylecontext.h" /> ++ <ClInclude Include="..\gtk\gtkmm\styleprovider.h" /> ++ <ClInclude Include="..\gtk\gtkmm\switch.h" /> ++ <ClInclude Include="..\gtk\gtkmm\table.h" /> ++ <ClInclude Include="..\gtk\gtkmm\targetentry.h" /> ++ <ClInclude Include="..\gtk\gtkmm\targetlist.h" /> ++ <ClInclude Include="..\gtk\gtkmm\tearoffmenuitem.h" /> ++ <ClInclude Include="..\gtk\gtkmm\textattributes.h" /> ++ <ClInclude Include="..\gtk\gtkmm\textbuffer.h" /> ++ <ClInclude Include="..\gtk\gtkmm\textchildanchor.h" /> ++ <ClInclude Include="..\gtk\gtkmm\textiter.h" /> ++ <ClInclude Include="..\gtk\gtkmm\textmark.h" /> ++ <ClInclude Include="..\gtk\gtkmm\texttag.h" /> ++ <ClInclude Include="..\gtk\gtkmm\texttagtable.h" /> ++ <ClInclude Include="..\gtk\gtkmm\textview.h" /> ++ <ClInclude Include="..\gtk\gtkmm\toggleaction.h" /> ++ <ClInclude Include="..\gtk\gtkmm\togglebutton.h" /> ++ <ClInclude Include="..\gtk\gtkmm\toggletoolbutton.h" /> ++ <ClInclude Include="..\gtk\gtkmm\toolbar.h" /> ++ <ClInclude Include="..\gtk\gtkmm\toolbutton.h" /> ++ <ClInclude Include="..\gtk\gtkmm\toolitem.h" /> ++ <ClInclude Include="..\gtk\gtkmm\toolitemgroup.h" /> ++ <ClInclude Include="..\gtk\gtkmm\toolpalette.h" /> ++ <ClInclude Include="..\gtk\gtkmm\toolshell.h" /> ++ <ClInclude Include="..\gtk\gtkmm\tooltip.h" /> ++ <ClInclude Include="..\gtk\gtkmm\treedragdest.h" /> ++ <ClInclude Include="..\gtk\gtkmm\treedragsource.h" /> ++ <ClInclude Include="..\gtk\gtkmm\treeiter.h" /> ++ <ClInclude Include="..\gtk\gtkmm\treemodel.h" /> ++ <ClInclude Include="..\gtk\gtkmm\treemodelcolumn.h" /> ++ <ClInclude Include="..\gtk\gtkmm\treemodelfilter.h" /> ++ <ClInclude Include="..\gtk\gtkmm\treemodelsort.h" /> ++ <ClInclude Include="..\gtk\gtkmm\treepath.h" /> ++ <ClInclude Include="..\gtk\gtkmm\treerowreference.h" /> ++ <ClInclude Include="..\gtk\gtkmm\treeselection.h" /> ++ <ClInclude Include="..\gtk\gtkmm\treesortable.h" /> ++ <ClInclude Include="..\gtk\gtkmm\treestore.h" /> ++ <ClInclude Include="..\gtk\gtkmm\treeview.h" /> ++ <ClInclude Include="..\gtk\gtkmm\treeview_private.h" /> ++ <ClInclude Include="..\gtk\gtkmm\treeviewcolumn.h" /> ++ <ClInclude Include="..\gtk\gtkmm\uimanager.h" /> ++ <ClInclude Include="..\gtk\gtkmm\viewport.h" /> ++ <ClInclude Include="..\gtk\gtkmm\volumebutton.h" /> ++ <ClInclude Include="..\gtk\gtkmm\widget.h" /> ++ <ClInclude Include="..\gtk\gtkmm\widgetpath.h" /> ++ <ClInclude Include="..\gtk\gtkmm\window.h" /> ++ <ClInclude Include="..\gtk\gtkmm\windowgroup.h" /> ++ <ClInclude Include="..\gtk\gtkmm\wrap_init.h" /> ++ </ItemGroup> ++ <ItemGroup> ++ <ResourceCompile Include=".\gtkmm\gtkmm.rc" /> ++ </ItemGroup> ++ <ItemGroup> ++ <ProjectReference Include="gdkmm.vcxproj"> ++ <Project>{976c8f9c-1a1d-4e23-b79e-ec9091bbea0e}</Project> ++ <ReferenceOutputAssembly>false</ReferenceOutputAssembly> ++ </ProjectReference> ++ <ProjectReference Include="gendef.vcxproj"> ++ <Project>{07324745-c9be-4d65-b08a-9c88188c0c28}</Project> ++ <ReferenceOutputAssembly>false</ReferenceOutputAssembly> ++ </ProjectReference> ++ </ItemGroup> ++ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> ++ <ImportGroup Label="ExtensionTargets"> ++ </ImportGroup> ++</Project> +\ No newline at end of file +diff --git a/MSVC_Net2013/gtkmm3-demo.vcxproj b/MSVC_Net2013/gtkmm3-demo.vcxproj +index 9c33d45..84a988a 100644 +--- a/MSVC_Net2013/gtkmm3-demo.vcxproj ++++ b/MSVC_Net2013/gtkmm3-demo.vcxproj +@@ -23,26 +23,27 @@ + <ProjectGuid>{5A8BBE25-E8D8-487B-AD2D-690438F09FA1}</ProjectGuid> + <RootNamespace>gtkmm3-demo</RootNamespace> + <Keyword>Win32Proj</Keyword> ++ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> +@@ -251,4 +252,4 @@ + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +-</Project> ++</Project> +\ No newline at end of file +diff --git a/MSVC_Net2013/install.vcxproj b/MSVC_Net2013/install.vcxproj +index 1df2f4b..a484bd6 100644 +--- a/MSVC_Net2013/install.vcxproj ++++ b/MSVC_Net2013/install.vcxproj +@@ -22,28 +22,29 @@ + <ProjectGuid>{2093D218-190E-4194-9421-3BA7CBF33B10}</ProjectGuid> + <RootNamespace>install</RootNamespace> + <Keyword>Win32Proj</Keyword> ++ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Utility</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <WholeProgramOptimization>true</WholeProgramOptimization> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>Utility</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>Utility</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <WholeProgramOptimization>true</WholeProgramOptimization> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>Utility</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> diff --git a/ports/gtkmm/fix_properties.patch b/ports/gtkmm/fix_properties.patch new file mode 100644 index 000000000..3db0a30e5 --- /dev/null +++ b/ports/gtkmm/fix_properties.patch @@ -0,0 +1,2423 @@ +diff --git a/MSVC_Net2013/gdkmm.vcxproj b/MSVC_Net2013/gdkmm.vcxproj +index dd495a0..94c6396 100644 +--- a/MSVC_Net2013/gdkmm.vcxproj ++++ b/MSVC_Net2013/gdkmm.vcxproj +@@ -93,7 +93,7 @@ + <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj</Command> + </PreLinkEvent> + <Link> +- <AdditionalDependencies>$(CPPDepLibsDebug);%(AdditionalDependencies)</AdditionalDependencies> ++ <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(OutDir)$(ProjectName)$(DebugDllSuffix).dll</OutputFile> + <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile> + <GenerateDebugInformation>true</GenerateDebugInformation> +@@ -118,7 +118,7 @@ + <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj</Command> + </PreLinkEvent> + <Link> +- <AdditionalDependencies>$(CPPDepLibsRelease);%(AdditionalDependencies)</AdditionalDependencies> ++ <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(OutDir)$(ProjectName)$(ReleaseDllSuffix).dll</OutputFile> + <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile> + <GenerateDebugInformation>true</GenerateDebugInformation> +@@ -150,7 +150,7 @@ + <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj</Command> + </PreLinkEvent> + <Link> +- <AdditionalDependencies>$(CPPDepLibsDebug);%(AdditionalDependencies)</AdditionalDependencies> ++ <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(OutDir)$(ProjectName)$(DebugDllSuffix).dll</OutputFile> + <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile> + <GenerateDebugInformation>true</GenerateDebugInformation> +@@ -179,7 +179,7 @@ + <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj</Command> + </PreLinkEvent> + <Link> +- <AdditionalDependencies>$(CPPDepLibsRelease);%(AdditionalDependencies)</AdditionalDependencies> ++ <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(OutDir)$(ProjectName)$(ReleaseDllSuffix).dll</OutputFile> + <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile> + <RandomizedBaseAddress>false</RandomizedBaseAddress> +@@ -263,4 +263,4 @@ + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +-</Project> ++</Project> +\ No newline at end of file +diff --git a/MSVC_Net2013/gdkmm.vcxproj.filters b/MSVC_Net2013/gdkmm.vcxproj.filters +index 826f785..da390e5 100644 +--- a/MSVC_Net2013/gdkmm.vcxproj.filters ++++ b/MSVC_Net2013/gdkmm.vcxproj.filters +@@ -15,71 +15,183 @@ + </Filter> + </ItemGroup> + <ItemGroup> +- <ClCompile Include="..\gdk\gdkmm\applaunchcontext.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gdk\gdkmm\color.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gdk\gdkmm\colormap.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gdk\gdkmm\cursor.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gdk\gdkmm\device.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gdk\gdkmm\devicemanager.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gdk\gdkmm\display.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gdk\gdkmm\displaymanager.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gdk\gdkmm\dragcontext.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gdk\gdkmm\drawingcontext.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gdk\gdkmm\event.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gdk\gdkmm\general.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gdk\gdkmm\glcontext.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gdk\gdkmm\monitor.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gdk\gdkmm\pixbuf.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gdk\gdkmm\pixbufanimation.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gdk\gdkmm\pixbufanimationiter.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gdk\gdkmm\pixbufformat.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gdk\gdkmm\pixbufloader.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gdk\gdkmm\rectangle.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gdk\gdkmm\rgba.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gdk\gdkmm\seat.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gdk\gdkmm\screen.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gdk\gdkmm\timecoord.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gdk\gdkmm\types.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gdk\gdkmm\visual.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gdk\gdkmm\window.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gdk\gdkmm\wrap_init.cc"><Filter>Source Files</Filter></ClCompile> ++ <ClCompile Include="..\gdk\gdkmm\applaunchcontext.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gdk\gdkmm\color.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gdk\gdkmm\cursor.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gdk\gdkmm\device.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gdk\gdkmm\devicemanager.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gdk\gdkmm\display.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gdk\gdkmm\displaymanager.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gdk\gdkmm\dragcontext.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gdk\gdkmm\drawingcontext.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gdk\gdkmm\event.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gdk\gdkmm\general.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gdk\gdkmm\glcontext.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gdk\gdkmm\monitor.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gdk\gdkmm\pixbuf.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gdk\gdkmm\pixbufanimation.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gdk\gdkmm\pixbufanimationiter.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gdk\gdkmm\pixbufformat.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gdk\gdkmm\pixbufloader.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gdk\gdkmm\rectangle.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gdk\gdkmm\rgba.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gdk\gdkmm\seat.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gdk\gdkmm\screen.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gdk\gdkmm\timecoord.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gdk\gdkmm\types.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gdk\gdkmm\visual.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gdk\gdkmm\window.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gdk\gdkmm\wrap_init.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> + </ItemGroup> + <ItemGroup> +- <ClInclude Include="..\gdk\gdkmm\applaunchcontext.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gdk\gdkmm\color.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gdk\gdkmm\colormap.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gdk\gdkmm\cursor.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gdk\gdkmm\device.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gdk\gdkmm\devicemanager.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gdk\gdkmm\display.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gdk\gdkmm\displaymanager.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gdk\gdkmm\dragcontext.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gdk\gdkmm\drawingcontext.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gdk\gdkmm\event.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gdk\gdkmm\gc.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gdk\gdkmm\general.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gdk\gdkmm\glcontext.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gdk\gdkmm\list.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gdk\gdkmm\monitor.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gdk\gdkmm\pixbuf.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gdk\gdkmm\pixbufanimation.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gdk\gdkmm\pixbufanimationiter.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gdk\gdkmm\pixbufformat.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gdk\gdkmm\pixbufloader.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gdk\gdkmm\rectangle.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gdk\gdkmm\region.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gdk\gdkmm\rgba.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gdk\gdkmm\seat.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gdk\gdkmm\screen.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gdk\gdkmm\timecoord.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gdk\gdkmm\types.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gdk\gdkmm\visual.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gdk\gdkmm\window.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gdk\gdkmm\wrap_init.h"><Filter>Header Files</Filter></ClInclude> ++ <ClInclude Include="..\gdk\gdkmm\applaunchcontext.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gdk\gdkmm\color.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gdk\gdkmm\colormap.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gdk\gdkmm\cursor.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gdk\gdkmm\device.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gdk\gdkmm\devicemanager.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gdk\gdkmm\display.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gdk\gdkmm\displaymanager.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gdk\gdkmm\dragcontext.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gdk\gdkmm\drawingcontext.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gdk\gdkmm\event.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gdk\gdkmm\general.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gdk\gdkmm\glcontext.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gdk\gdkmm\list.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gdk\gdkmm\monitor.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gdk\gdkmm\pixbuf.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gdk\gdkmm\pixbufanimation.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gdk\gdkmm\pixbufanimationiter.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gdk\gdkmm\pixbufformat.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gdk\gdkmm\pixbufloader.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gdk\gdkmm\rectangle.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gdk\gdkmm\region.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gdk\gdkmm\rgba.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gdk\gdkmm\seat.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gdk\gdkmm\screen.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gdk\gdkmm\timecoord.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gdk\gdkmm\types.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gdk\gdkmm\visual.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gdk\gdkmm\window.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gdk\gdkmm\wrap_init.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> + </ItemGroup> + <ItemGroup> + <ResourceCompile Include=".\gdkmm\gdkmm.rc"> + <Filter>Resource Files</Filter> + </ResourceCompile> + </ItemGroup> +-</Project> ++</Project> +\ No newline at end of file +diff --git a/MSVC_Net2013/gtkmm-build-defines.props b/MSVC_Net2013/gtkmm-build-defines.props +index 880cbf7..2cb24a3 100644 +--- a/MSVC_Net2013/gtkmm-build-defines.props ++++ b/MSVC_Net2013/gtkmm-build-defines.props +@@ -4,10 +4,8 @@ + <Import Project="gtkmm-version-paths.props" /> + </ImportGroup> + <PropertyGroup Label="UserMacros"> +- <GdkMMBuildDefs>GDKMM_BUILD</GdkMMBuildDefs> +- <GtkMMBuildDefs>GTKMM_BUILD</GtkMMBuildDefs> +- <CPPDepLibsRelease>pangomm-vc$(VSVer)0-1_4.lib;giomm-vc$(VSVer)0-2_4.lib;glibmm-vc$(VSVer)0-2_4.lib;cairomm-vc$(VSVer)0-1_0.lib;sigc-vc$(VSVer)0-2_0.lib</CPPDepLibsRelease> +- <CPPDepLibsDebug>pangomm-vc$(VSVer)0-d-1_4.lib;giomm-vc$(VSVer)0-d-2_4.lib;glibmm-vc$(VSVer)0-d-2_4.lib;cairomm-vc$(VSVer)0-d-1_0.lib;sigc-vc$(VSVer)0-d-2_0.lib</CPPDepLibsDebug> ++ <GdkMMBuildDefs>GDKMM_BUILD;_WINDLL</GdkMMBuildDefs> ++ <GtkMMBuildDefs>GTKMM_BUILD;_WINDLL</GtkMMBuildDefs> + </PropertyGroup> + <PropertyGroup> + <_PropertySheetDisplayName>glibmmbuilddefinesprops</_PropertySheetDisplayName> +@@ -16,15 +14,15 @@ + </PropertyGroup> + <ItemDefinitionGroup> + <ClCompile> +- <AdditionalIncludeDirectories>.\gdkmm;..;..\gdk;$(GlibEtcInstallRoot)\include\pangomm-1.4;$(GlibEtcInstallRoot)\lib\pangomm-1.4\include;$(GlibEtcInstallRoot)\include\giomm-2.4;$(GlibEtcInstallRoot)\lib\giomm-2.4\include;$(GlibEtcInstallRoot)\include\glibmm-2.4;$(GlibEtcInstallRoot)\lib\glibmm-2.4\include;$(GlibEtcInstallRoot)\include\cairomm-1.0;$(GlibEtcInstallRoot)\lib\cairomm-1.0\include;$(GlibEtcInstallRoot)\include\sigc++-2.0;$(GlibEtcInstallRoot)\lib\sigc++-2.0\include;$(GlibEtcInstallRoot)\include\gtk-3.0;$(GlibEtcInstallRoot)\include\gdk-pixbuf-2.0;$(GlibEtcInstallRoot)\include\pango-1.0;$(GlibEtcInstallRoot)\include\gio-win32-2.0;$(GlibEtcInstallRoot)\include\glib-2.0;$(GlibEtcInstallRoot)\lib\glib-2.0\include;$(GlibEtcInstallRoot)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> ++ <AdditionalIncludeDirectories>.\gdkmm;..;..\gdk;.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <ForcedIncludeFiles>msvc_recommended_pragmas.h;%(ForcedIncludeFiles)</ForcedIncludeFiles> + <DisableSpecificWarnings>4250;%(DisableSpecificWarnings)</DisableSpecificWarnings> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + <AdditionalOptions>/d2Zi+ %(AdditionalOptions)</AdditionalOptions> + </ClCompile> + <Link> +- <AdditionalDependencies>gtk-3.0.lib;gdk-3.0.lib;gdk_pixbuf-2.0.lib;gobject-2.0.lib;gio-2.0.lib;glib-2.0.lib;epoxy.lib;%(AdditionalDependencies)</AdditionalDependencies> +- <AdditionalLibraryDirectories>$(GlibEtcInstallRoot)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> ++ <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> ++ <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + </Link> + </ItemDefinitionGroup> + <ItemGroup> +@@ -34,11 +32,5 @@ + <BuildMacro Include="GtkMMBuildDefs"> + <Value>$(GtkMMBuildDefs)</Value> + </BuildMacro> +- <BuildMacro Include="CPPDepLibsRelease"> +- <Value>$(CPPDepLibsRelease)</Value> +- </BuildMacro> +- <BuildMacro Include="CPPDepLibsDebug"> +- <Value>$(CPPDepLibsDebug)</Value> +- </BuildMacro> + </ItemGroup> +-</Project> ++</Project> +\ No newline at end of file +diff --git a/MSVC_Net2013/gtkmm-version-paths.props b/MSVC_Net2013/gtkmm-version-paths.props +index f0c2834..968562a 100644 +--- a/MSVC_Net2013/gtkmm-version-paths.props ++++ b/MSVC_Net2013/gtkmm-version-paths.props +@@ -2,13 +2,9 @@ + <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup Label="UserMacros"> + <VSVer>12</VSVer> +- <GlibEtcInstallRoot>$(SolutionDir)\..\..\vs$(VSVer)\$(Platform)</GlibEtcInstallRoot> +- <CopyDir>$(GlibEtcInstallRoot)</CopyDir> + <DefDir>$(SolutionDir)$(Configuration)\$(Platform)\obj\$(ProjectName)\</DefDir> + <ApiMajorVersion>3</ApiMajorVersion> + <ApiMinorVersion>0</ApiMinorVersion> +- <ReleaseDllSuffix>-vc$(VSVer)0-$(ApiMajorVersion)_$(ApiMinorVersion)</ReleaseDllSuffix> +- <DebugDllSuffix>-vc$(VSVer)0-d-$(ApiMajorVersion)_$(ApiMinorVersion)</DebugDllSuffix> + </PropertyGroup> + <PropertyGroup> + <_PropertySheetDisplayName>glibmmversionpathsprops</_PropertySheetDisplayName> +@@ -17,12 +13,6 @@ + <BuildMacro Include="VSVer"> + <Value>$(VSVer)</Value> + </BuildMacro> +- <BuildMacro Include="GlibEtcInstallRoot"> +- <Value>$(GlibEtcInstallRoot)</Value> +- </BuildMacro> +- <BuildMacro Include="CopyDir"> +- <Value>$(CopyDir)</Value> +- </BuildMacro> + <BuildMacro Include="DefDir"> + <Value>$(DefDir)</Value> + </BuildMacro> +@@ -32,11 +22,5 @@ + <BuildMacro Include="ApiMinorVersion"> + <Value>$(ApiMinorVersion)</Value> + </BuildMacro> +- <BuildMacro Include="ReleaseDllSuffix"> +- <Value>$(ReleaseDllSuffix)</Value> +- </BuildMacro> +- <BuildMacro Include="DebugDllSuffix"> +- <Value>$(DebugDllSuffix)</Value> +- </BuildMacro> + </ItemGroup> + </Project> +\ No newline at end of file +diff --git a/MSVC_Net2013/gtkmm.vcxproj b/MSVC_Net2013/gtkmm.vcxproj +index 8093886..ec56ed1 100644 +--- a/MSVC_Net2013/gtkmm.vcxproj ++++ b/MSVC_Net2013/gtkmm.vcxproj +@@ -80,7 +80,7 @@ + <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions> + <Optimization>Disabled</Optimization> + <AdditionalIncludeDirectories>.\gtkmm;..\gtk;$(GlibEtcInstallRoot)\include\atkmm-1.6;$(GlibEtcInstallRoot)\lib\atkmm-1.6\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> +- <PreprocessorDefinitions>_DEBUG;$(GtkMMBuildDefs);%(PreprocessorDefinitions)</PreprocessorDefinitions> ++ <PreprocessorDefinitions>_DEBUG;_NO_CRT_STDIO_INLINE;$(GtkMMBuildDefs);_NO_CRT_STDIO_INLINE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MinimalRebuild>true</MinimalRebuild> + <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> +@@ -95,7 +95,7 @@ + <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj</Command> + </PreLinkEvent> + <Link> +- <AdditionalDependencies>atkmm-vc$(VSVer)0-d-1_6.lib;$(CPPDepLibsDebug);%(AdditionalDependencies)</AdditionalDependencies> ++ <AdditionalDependencies>legacy_stdio_definitions.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(OutDir)$(ProjectName)$(DebugDllSuffix).dll</OutputFile> + <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile> + <GenerateDebugInformation>true</GenerateDebugInformation> +@@ -108,7 +108,7 @@ + <ClCompile> + <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions> + <AdditionalIncludeDirectories>.\gtkmm;..\gtk;$(GlibEtcInstallRoot)\include\atkmm-1.6;$(GlibEtcInstallRoot)\lib\atkmm-1.6\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> +- <PreprocessorDefinitions>$(GtkMMBuildDefs);%(PreprocessorDefinitions)</PreprocessorDefinitions> ++ <PreprocessorDefinitions>$(GtkMMBuildDefs);_NO_CRT_STDIO_INLINE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <RuntimeTypeInfo>true</RuntimeTypeInfo> + <PrecompiledHeader> +@@ -121,7 +121,7 @@ + <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj</Command> + </PreLinkEvent> + <Link> +- <AdditionalDependencies>atkmm-vc$(VSVer)0-1_6.lib;$(CPPDepLibsRelease);%(AdditionalDependencies)</AdditionalDependencies> ++ <AdditionalDependencies>legacy_stdio_definitions.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(OutDir)$(ProjectName)$(ReleaseDllSuffix).dll</OutputFile> + <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile> + <RandomizedBaseAddress>false</RandomizedBaseAddress> +@@ -139,7 +139,7 @@ + <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions> + <Optimization>Disabled</Optimization> + <AdditionalIncludeDirectories>.\gtkmm;..\gtk;$(GlibEtcInstallRoot)\include\atkmm-1.6;$(GlibEtcInstallRoot)\lib\atkmm-1.6\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> +- <PreprocessorDefinitions>_DEBUG;$(GtkMMBuildDefs);%(PreprocessorDefinitions)</PreprocessorDefinitions> ++ <PreprocessorDefinitions>_DEBUG;_NO_CRT_STDIO_INLINE;$(GtkMMBuildDefs);)</PreprocessorDefinitions> + <MinimalRebuild>true</MinimalRebuild> + <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> +@@ -154,7 +154,7 @@ + <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj</Command> + </PreLinkEvent> + <Link> +- <AdditionalDependencies>atkmm-vc$(VSVer)0-d-1_6.lib;$(CPPDepLibsDebug);%(AdditionalDependencies)</AdditionalDependencies> ++ <AdditionalDependencies>legacy_stdio_definitions.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(OutDir)$(ProjectName)$(DebugDllSuffix).dll</OutputFile> + <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile> + <GenerateDebugInformation>true</GenerateDebugInformation> +@@ -171,7 +171,7 @@ + <ClCompile> + <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions> + <AdditionalIncludeDirectories>.\gtkmm;..\gtk;$(GlibEtcInstallRoot)\include\atkmm-1.6;$(GlibEtcInstallRoot)\lib\atkmm-1.6\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> +- <PreprocessorDefinitions>$(GtkMMBuildDefs);%(PreprocessorDefinitions)</PreprocessorDefinitions> ++ <PreprocessorDefinitions>$(GtkMMBuildDefs);_NO_CRT_STDIO_INLINE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <RuntimeTypeInfo>true</RuntimeTypeInfo> + <PrecompiledHeader> +@@ -184,7 +184,7 @@ + <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj</Command> + </PreLinkEvent> + <Link> +- <AdditionalDependencies>atkmm-vc$(VSVer)0-1_6.lib;$(CPPDepLibsRelease);%(AdditionalDependencies)</AdditionalDependencies> ++ <AdditionalDependencies>legacy_stdio_definitions.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(OutDir)$(ProjectName)$(ReleaseDllSuffix).dll</OutputFile> + <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile> + <GenerateDebugInformation>true</GenerateDebugInformation> +@@ -697,4 +697,4 @@ + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +-</Project> ++</Project> +\ No newline at end of file +diff --git a/MSVC_Net2013/gtkmm.vcxproj.filters b/MSVC_Net2013/gtkmm.vcxproj.filters +index 5237502..5e8bd36 100644 +--- a/MSVC_Net2013/gtkmm.vcxproj.filters ++++ b/MSVC_Net2013/gtkmm.vcxproj.filters +@@ -14,496 +14,1459 @@ + </Filter> + </ItemGroup> + <ItemGroup> +- <ClCompile Include="..\gtk\gtkmm\aboutdialog.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\accelgroup.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\accelkey.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\accellabel.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\accelmap.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\action.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\actionable.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\actionbar.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\actiongroup.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\activatable.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\adjustment.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\alignment.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\appchooser.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\appchooserbutton.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\appchooserdialog.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\appchooserwidget.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\application.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\applicationwindow.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\arrow.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\aspectframe.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\assistant.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\bin.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\border.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\box.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\buildable.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\builder.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\button.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\buttonbox.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\calendar.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\cellarea.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\cellareabox.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\cellareacontext.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\celleditable.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\celllayout.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\cellrenderer.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\cellrenderer_generation.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\cellrendereraccel.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\cellrenderercombo.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\cellrendererpixbuf.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\cellrendererprogress.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\cellrendererspin.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\cellrendererspinner.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\cellrenderertext.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\cellrenderertoggle.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\cellview.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\checkbutton.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\checkmenuitem.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\childpropertyproxy.cc"><Filter>Header Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\childpropertyproxy_base.cc"><Filter>Header Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\clipboard.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\colorbutton.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\colorchooser.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\colorchooserdialog.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\colorselection.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\combobox.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\comboboxtext.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\container.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\cssprovider.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\csssection.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\dialog.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\drawingarea.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\editable.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\entry.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\entrybuffer.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\entrycompletion.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\enums.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\eventbox.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\eventcontroller.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\expander.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\filechooser.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\filechooserbutton.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\filechooserdialog.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\filechooserwidget.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\filefilter.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\fixed.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\flowbox.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\flowboxchild.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\fontbutton.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\fontchooser.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\fontchooserdialog.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\fontchooserwidget.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\fontselection.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\frame.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\gesture.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\gesturedrag.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\gesturelongpress.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\gesturemultipress.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\gesturepan.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\gesturerotate.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\gesturesingle.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\gestureswipe.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\gesturezoom.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\glarea.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\grid.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\handlebox.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\headerbar.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\hvbox.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\hvbuttonbox.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\hvpaned.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\hvscale.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\hvscrollbar.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\hvseparator.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\iconfactory.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\iconinfo.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\iconset.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\iconsource.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\icontheme.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\iconview.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\image.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\imagemenuitem.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\infobar.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\inputdialog.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\invisible.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\item.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\label.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\layout.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\linkbutton.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\listbox.cc"><Filter>Header Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\listboxrow.cc"><Filter>Header Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\liststore.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\listviewtext.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\lockbutton.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\main.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\menu.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\menu_elems.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\menubar.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\menubutton.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\menuitem.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\menushell.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\menutoolbutton.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\messagedialog.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\misc.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\modelbutton.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\notebook.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\numerableicon.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\object.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\offscreenwindow.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\orientable.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\overlay.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\pagesetup.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\paned.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\papersize.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\placessidebar.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\popover.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\popovermenu.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\printcontext.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\printoperation.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\printoperationpreview.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\printsettings.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\progressbar.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\radioaction.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\radiobutton.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\radiobuttongroup.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\radiomenuitem.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\radiotoolbutton.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\range.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\recentaction.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\recentchooser.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\recentchooserdialog.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\recentchoosermenu.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\recentchooserwidget.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\recentfilter.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\recentinfo.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\recentmanager.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\requisition.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\revealer.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\scale.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\scalebutton.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\scrollable.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\scrollbar.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\scrolledwindow.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\searchbar.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\searchentry.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\selectiondata.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\selectiondata_private.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\separator.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\separatormenuitem.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\separatortoolitem.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\settings.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\shortcutlabel.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\shortcutsgroup.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\shortcutssection.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\shortcutsshortcut.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\shortcutswindow.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\sizegroup.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\spinbutton.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\spinner.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\stack.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\stacksidebar.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\stackswitcher.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\statusbar.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\statusicon.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\stock.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\stockid.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\stockitem.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\stylecontext.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\styleprovider.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\switch.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\table.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\targetentry.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\targetlist.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\tearoffmenuitem.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\textattributes.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\textbuffer.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\textchildanchor.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\textiter.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\textmark.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\texttag.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\texttagtable.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\textview.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\toggleaction.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\togglebutton.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\toggletoolbutton.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\toolbar.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\toolbutton.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\toolitem.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\toolitemgroup.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\toolpalette.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\toolshell.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\tooltip.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\treedragdest.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\treedragsource.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\treeiter.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\treemodel.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\treemodelcolumn.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\treemodelfilter.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\treemodelsort.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\treepath.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\treerowreference.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\treeselection.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\treesortable.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\treestore.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\treeview.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\treeview_private.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\treeviewcolumn.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\uimanager.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\viewport.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\volumebutton.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\widget.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\widgetpath.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\window.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\windowgroup.cc"><Filter>Source Files</Filter></ClCompile> +- <ClCompile Include="..\gtk\gtkmm\wrap_init.cc"><Filter>Source Files</Filter></ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\aboutdialog.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\accelgroup.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\accelkey.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\accellabel.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\accelmap.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\action.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\actionable.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\actionbar.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\actiongroup.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\activatable.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\adjustment.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\alignment.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\appchooser.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\appchooserbutton.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\appchooserdialog.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\appchooserwidget.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\application.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\applicationwindow.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\arrow.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\aspectframe.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\assistant.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\bin.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\border.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\box.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\buildable.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\builder.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\button.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\buttonbox.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\calendar.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\cellarea.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\cellareabox.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\cellareacontext.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\celleditable.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\celllayout.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\cellrenderer.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\cellrenderer_generation.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\cellrendereraccel.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\cellrenderercombo.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\cellrendererpixbuf.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\cellrendererprogress.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\cellrendererspin.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\cellrendererspinner.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\cellrenderertext.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\cellrenderertoggle.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\cellview.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\checkbutton.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\checkmenuitem.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\childpropertyproxy.cc"> ++ <Filter>Header Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\childpropertyproxy_base.cc"> ++ <Filter>Header Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\clipboard.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\colorbutton.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\colorchooser.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\colorchooserdialog.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\colorselection.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\combobox.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\comboboxtext.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\container.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\cssprovider.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\csssection.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\dialog.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\drawingarea.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\editable.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\entry.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\entrybuffer.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\entrycompletion.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\enums.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\eventbox.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\eventcontroller.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\expander.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\filechooser.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\filechooserbutton.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\filechooserdialog.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\filechooserwidget.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\filefilter.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\fixed.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\flowbox.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\flowboxchild.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\fontbutton.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\fontchooser.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\fontchooserdialog.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\fontchooserwidget.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\fontselection.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\frame.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\gesture.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\gesturedrag.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\gesturelongpress.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\gesturemultipress.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\gesturepan.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\gesturerotate.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\gesturesingle.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\gestureswipe.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\gesturezoom.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\glarea.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\grid.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\handlebox.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\headerbar.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\hvbox.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\hvbuttonbox.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\hvpaned.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\hvscale.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\hvscrollbar.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\hvseparator.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\iconfactory.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\iconinfo.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\iconset.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\iconsource.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\icontheme.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\iconview.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\image.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\imagemenuitem.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\infobar.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\invisible.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\label.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\layout.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\linkbutton.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\listbox.cc"> ++ <Filter>Header Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\listboxrow.cc"> ++ <Filter>Header Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\liststore.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\listviewtext.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\lockbutton.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\main.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\menu.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\menubar.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\menubutton.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\menuitem.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\menushell.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\menutoolbutton.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\messagedialog.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\misc.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\modelbutton.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\notebook.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\numerableicon.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\object.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\offscreenwindow.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\orientable.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\overlay.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\pagesetup.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\paned.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\papersize.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\placessidebar.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\popover.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\popovermenu.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\printcontext.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\printoperation.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\printoperationpreview.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\printsettings.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\progressbar.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\radioaction.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\radiobutton.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\radiobuttongroup.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\radiomenuitem.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\radiotoolbutton.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\range.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\recentaction.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\recentchooser.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\recentchooserdialog.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\recentchoosermenu.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\recentchooserwidget.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\recentfilter.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\recentinfo.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\recentmanager.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\requisition.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\revealer.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\scale.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\scalebutton.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\scrollable.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\scrollbar.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\scrolledwindow.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\searchbar.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\searchentry.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\selectiondata.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\selectiondata_private.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\separator.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\separatormenuitem.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\separatortoolitem.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\settings.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\shortcutlabel.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\shortcutsgroup.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\shortcutssection.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\shortcutsshortcut.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\shortcutswindow.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\sizegroup.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\spinbutton.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\spinner.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\stack.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\stacksidebar.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\stackswitcher.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\statusbar.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\statusicon.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\stock.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\stockid.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\stockitem.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\stylecontext.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\styleprovider.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\switch.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\table.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\targetentry.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\targetlist.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\tearoffmenuitem.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\textattributes.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\textbuffer.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\textchildanchor.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\textiter.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\textmark.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\texttag.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\texttagtable.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\textview.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\toggleaction.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\togglebutton.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\toggletoolbutton.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\toolbar.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\toolbutton.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\toolitem.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\toolitemgroup.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\toolpalette.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\toolshell.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\tooltip.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\treedragdest.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\treedragsource.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\treeiter.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\treemodel.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\treemodelcolumn.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\treemodelfilter.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\treemodelsort.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\treepath.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\treerowreference.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\treeselection.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\treesortable.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\treestore.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\treeview.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\treeview_private.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\treeviewcolumn.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\uimanager.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\viewport.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\volumebutton.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\widget.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\widgetpath.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\window.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\windowgroup.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\wrap_init.cc"> ++ <Filter>Source Files</Filter> ++ </ClCompile> ++ <ClCompile Include="..\gtk\gtkmm\levelbar.cc" /> + </ItemGroup> + <ItemGroup> +- <ClInclude Include="..\gtk\gtkmm\aboutdialog.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\accelgroup.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\accelkey.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\accellabel.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\accelmap.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\action.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\actionable.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\actionbar.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\actiongroup.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\activatable.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\adjustment.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\alignment.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\appchooser.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\appchooserbutton.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\appchooserdialog.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\appchooserwidget.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\application.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\applicationwindow.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\arrow.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\aspectframe.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\assistant.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\base.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\bin.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\border.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\border.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\box.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\buildable.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\builder.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\button.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\buttonbox.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\calendar.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\celleditable.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\celllayout.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\cellrenderer.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\cellrenderer_generation.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\cellrendereraccel.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\cellrenderercombo.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\cellrendererpixbuf.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\cellrendererprogress.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\cellrendererspin.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\cellrendererspinner.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\cellrenderertext.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\cellrenderertoggle.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\cellview.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\checkbutton.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\checkmenuitem.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\childpropertyproxy.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\childpropertyproxy_base.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\clipboard.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\colorbutton.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\colorchooser.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\colorchooserdialog.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\colorselection.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\combobox.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\comboboxtext.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\container.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\cssprovider.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\csssection.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\dialog.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\drawingarea.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\editable.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\entry.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\entrybuffer.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\entrycompletion.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\enums.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\eventbox.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\eventcontroller.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\expander.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\filechooser.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\filechooserbutton.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\filechooserdialog.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\filechooserwidget.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\filefilter.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\fileselection.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\fixed.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\flowbox.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\flowboxchild.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\fontbutton.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\fontchooser.h"><Filter>Source Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\fontchooserdialog.h"><Filter>Source Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\fontchooserwidget.h"><Filter>Source Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\fontselection.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\frame.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\gesture.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\gesturedrag.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\gesturelongpress.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\gesturemultipress.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\gesturepan.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\gesturerotate.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\gesturesingle.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\gestureswipe.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\gesturezoom.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\glarea.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\grid.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\handlebox.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\headerbar.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\hvbox.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\hvbuttonbox.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\hvpaned.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\hvscale.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\hvscrollbar.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\hvseparator.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\iconfactory.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\iconinfo.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\iconset.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\iconsource.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\icontheme.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\iconview.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\image.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\imagemenuitem.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\infobar.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\invisible.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\label.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\layout.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\levelbar.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\linkbutton.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\listbox.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\listboxrow.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\liststore.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\listviewtext.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\lockbutton.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\main.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\menu.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\menubar.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\menubutton.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\menuitem.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\menushell.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\menutoolbutton.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\messagedialog.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\misc.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\modelbutton.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\notebook.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\numerableicons.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\object.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\offscreenwindow.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\orientable.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\overlay.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\pagesetup.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\paned.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\papersize.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\placessidebar.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\popover.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\popovermenu.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\printcontext.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\printoperation.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\printoperationpreview.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\printsettings.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\progressbar.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\radioaction.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\radiobutton.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\radiobuttongroup.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\radiomenuitem.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\radiotoolbutton.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\range.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\recentaction.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\recentchooser.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\recentchooserdialog.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\recentchoosermenu.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\recentchooserwidget.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\recentfilter.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\recentinfo.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\recentmanager.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\requisition.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\revealer.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\scale.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\scalebutton.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\scrollable.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\scrollbar.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\scrolledwindow.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\searchbar.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\searchentry.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\selectiondata.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\selectiondata_private.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\separator.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\separatormenuitem.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\separatortoolitem.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\settings.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\shortcutlabel.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\shortcutsgroup.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\shortcutssection.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\shortcutsshortcut.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\shortcutswindow.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\sizegroup.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\spinbutton.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\spinner.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\stack.h"><Filter>Source Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\stacksidebar.h"><Filter>Source Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\stackswitcher.h"><Filter>Source Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\statusbar.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\statusicon.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\stock.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\stockid.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\stockitem.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\stylecontext.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\styleprovider.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\switch.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\table.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\targetentry.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\targetlist.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\tearoffmenuitem.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\textattributes.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\textbuffer.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\textchildanchor.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\textiter.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\textmark.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\texttag.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\texttagtable.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\textview.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\toggleaction.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\togglebutton.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\toggletoolbutton.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\toolbar.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\toolbutton.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\toolitem.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\toolitemgroup.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\toolpalette.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\toolshell.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\tooltip.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\treedragdest.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\treedragsource.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\treeiter.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\treemodel.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\treemodelcolumn.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\treemodelfilter.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\treemodelsort.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\treepath.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\treerowreference.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\treeselection.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\treesortable.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\treestore.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\treeview.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\treeview_private.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\treeviewcolumn.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\uimanager.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\viewport.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\volumebutton.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\widget.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\widgetpath.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\window.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\windowgroup.h"><Filter>Header Files</Filter></ClInclude> +- <ClInclude Include="..\gtk\gtkmm\wrap_init.h"><Filter>Header Files</Filter></ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\aboutdialog.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\accelgroup.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\accelkey.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\accellabel.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\accelmap.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\action.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\actionable.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\actionbar.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\actiongroup.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\activatable.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\adjustment.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\alignment.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\appchooser.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\appchooserbutton.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\appchooserdialog.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\appchooserwidget.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\application.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\applicationwindow.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\arrow.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\aspectframe.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\assistant.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\base.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\bin.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\border.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\border.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\box.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\builder.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\button.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\buttonbox.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\calendar.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\celleditable.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\celllayout.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\cellrenderer.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\cellrenderer_generation.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\cellrendereraccel.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\cellrenderercombo.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\cellrendererpixbuf.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\cellrendererprogress.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\cellrendererspin.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\cellrendererspinner.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\cellrenderertext.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\cellrenderertoggle.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\cellview.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\checkbutton.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\checkmenuitem.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\childpropertyproxy.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\childpropertyproxy_base.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\clipboard.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\colorbutton.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\colorchooser.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\colorchooserdialog.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\colorselection.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\combobox.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\comboboxtext.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\container.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\cssprovider.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\csssection.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\dialog.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\drawingarea.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\editable.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\entry.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\entrybuffer.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\entrycompletion.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\enums.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\eventbox.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\eventcontroller.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\expander.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\filechooser.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\filechooserbutton.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\filechooserdialog.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\filechooserwidget.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\filefilter.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\fixed.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\flowbox.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\flowboxchild.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\fontbutton.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\fontchooser.h"> ++ <Filter>Source Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\fontchooserdialog.h"> ++ <Filter>Source Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\fontchooserwidget.h"> ++ <Filter>Source Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\fontselection.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\frame.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\gesture.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\gesturedrag.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\gesturelongpress.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\gesturemultipress.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\gesturepan.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\gesturerotate.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\gesturesingle.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\gestureswipe.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\gesturezoom.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\glarea.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\grid.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\handlebox.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\headerbar.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\hvbox.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\hvbuttonbox.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\hvpaned.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\hvscale.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\hvscrollbar.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\hvseparator.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\iconfactory.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\iconinfo.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\iconset.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\iconsource.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\icontheme.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\iconview.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\image.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\imagemenuitem.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\infobar.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\invisible.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\label.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\layout.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\levelbar.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\linkbutton.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\listbox.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\listboxrow.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\liststore.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\listviewtext.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\lockbutton.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\main.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\menu.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\menubar.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\menubutton.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\menuitem.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\menushell.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\menutoolbutton.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\messagedialog.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\misc.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\modelbutton.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\notebook.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\object.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\offscreenwindow.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\orientable.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\overlay.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\pagesetup.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\paned.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\papersize.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\placessidebar.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\popover.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\popovermenu.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\printcontext.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\printoperation.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\printoperationpreview.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\printsettings.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\progressbar.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\radioaction.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\radiobutton.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\radiobuttongroup.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\radiomenuitem.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\radiotoolbutton.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\range.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\recentaction.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\recentchooser.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\recentchooserdialog.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\recentchoosermenu.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\recentchooserwidget.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\recentfilter.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\recentinfo.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\recentmanager.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\requisition.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\revealer.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\scale.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\scalebutton.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\scrollable.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\scrollbar.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\scrolledwindow.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\searchbar.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\searchentry.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\selectiondata.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\selectiondata_private.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\separator.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\separatormenuitem.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\separatortoolitem.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\settings.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\shortcutlabel.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\shortcutsgroup.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\shortcutssection.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\shortcutsshortcut.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\shortcutswindow.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\sizegroup.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\spinbutton.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\spinner.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\stack.h"> ++ <Filter>Source Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\stacksidebar.h"> ++ <Filter>Source Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\stackswitcher.h"> ++ <Filter>Source Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\statusbar.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\statusicon.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\stock.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\stockid.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\stockitem.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\stylecontext.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\styleprovider.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\switch.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\table.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\targetentry.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\targetlist.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\tearoffmenuitem.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\textattributes.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\textbuffer.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\textchildanchor.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\textiter.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\textmark.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\texttag.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\texttagtable.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\textview.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\toggleaction.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\togglebutton.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\toggletoolbutton.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\toolbar.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\toolbutton.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\toolitem.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\toolitemgroup.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\toolpalette.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\toolshell.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\tooltip.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\treedragdest.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\treedragsource.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\treeiter.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\treemodel.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\treemodelcolumn.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\treemodelfilter.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\treemodelsort.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\treepath.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\treerowreference.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\treeselection.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\treesortable.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\treestore.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\treeview.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\treeview_private.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\treeviewcolumn.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\uimanager.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\viewport.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\volumebutton.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\widget.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\widgetpath.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\window.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\windowgroup.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\wrap_init.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\cellarea.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\cellareabox.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\cellareacontext.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> ++ <ClInclude Include="..\gtk\gtkmm\numerableicon.h"> ++ <Filter>Header Files</Filter> ++ </ClInclude> + </ItemGroup> + <ItemGroup> + <ResourceCompile Include=".\gtkmm\gtkmm.rc"> + <Filter>Resource Files</Filter> + </ResourceCompile> + </ItemGroup> +-</Project> ++</Project> +\ No newline at end of file diff --git a/ports/gtkmm/msvc_recommended_pragmas.h b/ports/gtkmm/msvc_recommended_pragmas.h new file mode 100644 index 000000000..c0eb1d5ed --- /dev/null +++ b/ports/gtkmm/msvc_recommended_pragmas.h @@ -0,0 +1,34 @@ +#ifndef _MSC_VER +#pragma error "This header is for Microsoft VC only." +#endif /* _MSC_VER */ + +/* Make MSVC more pedantic, this is a recommended pragma list + * from _Win32_Programming_ by Rector and Newcomer. + */ +#pragma warning(error:4002) /* too many actual parameters for macro */ +#pragma warning(error:4003) /* not enough actual parameters for macro */ +#pragma warning(1:4010) /* single-line comment contains line-continuation character */ +#pragma warning(error:4013) /* 'function' undefined; assuming extern returning int */ +#pragma warning(1:4016) /* no function return type; using int as default */ +#pragma warning(error:4020) /* too many actual parameters */ +#pragma warning(error:4021) /* too few actual parameters */ +#pragma warning(error:4027) /* function declared without formal parameter list */ +#pragma warning(error:4029) /* declared formal parameter list different from definition */ +#pragma warning(error:4033) /* 'function' must return a value */ +#pragma warning(error:4035) /* 'function' : no return value */ +#pragma warning(error:4045) /* array bounds overflow */ +#pragma warning(error:4047) /* different levels of indirection */ +#pragma warning(error:4049) /* terminating line number emission */ +#pragma warning(error:4053) /* An expression of type void was used as an operand */ +#pragma warning(error:4071) /* no function prototype given */ +#pragma warning(disable:4101) /* unreferenced local variable */ +#pragma warning(error:4150) + +#pragma warning(disable:4244) /* No possible loss of data warnings */ +#pragma warning(disable:4305) /* No truncation from int to char warnings */ + +#pragma warning(error:4819) /* The file contains a character that cannot be represented in the current code page */ + +/* work around Microsoft's premature attempt to deprecate the C-Library */ +#define _CRT_SECURE_NO_WARNINGS +#define _CRT_NONSTDC_NO_WARNINGS diff --git a/ports/gtkmm/portfile.cmake b/ports/gtkmm/portfile.cmake new file mode 100644 index 000000000..c82bc597d --- /dev/null +++ b/ports/gtkmm/portfile.cmake @@ -0,0 +1,105 @@ +# Glibmm uses winapi functions not available in WindowsStore, so gtkmm +# also +if (VCPKG_CMAKE_SYSTEM_NAME STREQUAL WindowsStore) +message(FATAL_ERROR "Error: UWP builds are currently not supported.") +endif() + +# Glibmm relies on DllMain, so gtkmm also +if (VCPKG_LIBRARY_LINKAGE STREQUAL static) +message(STATUS "Warning: Static building not supported. Building dynamic.") +set(VCPKG_LIBRARY_LINKAGE dynamic) +endif() + +include(vcpkg_common_functions) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/gtkmm-3.22.2) +vcpkg_download_distfile(ARCHIVE + URLS "http://ftp.gnome.org/pub/GNOME/sources/gtkmm/3.22/gtkmm-3.22.2.tar.xz" + FILENAME "gtkmm-3.22.2.tar.xz" + SHA512 6e96b543e459481145ee0f56f31a7ad2466bd8ccdd2abf3205998aecede73d235149ca6e5ba6e8d20a4fd5345e310870d81ac2a716d4f78d1460ed685badbdc2 +) +vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES ${CMAKE_CURRENT_LIST_DIR}/fix_properties.patch ${CMAKE_CURRENT_LIST_DIR}/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/gtkmm.sln + TARGET gtkmm + PLATFORM ${VS_PLATFORM} + # Need this for it to pick up xerces-c port: https://github.com/Microsoft/vcpkg/issues/891 + OPTIONS /p:ForceImportBeforeCppTargets=${VCPKG_ROOT_DIR}/scripts/buildsystems/msbuild/vcpkg.targets +) + +# Handle headers +file(COPY ${SOURCE_PATH}/MSVC_Net2013/gdkmm/gdkmmconfig.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) +file(COPY ${SOURCE_PATH}/gdk/gdkmm.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) +file( + COPY + ${SOURCE_PATH}/gdk/gdkmm + DESTINATION ${CURRENT_PACKAGES_DIR}/include + FILES_MATCHING PATTERN *.h +) +file(COPY ${SOURCE_PATH}/MSVC_Net2013/gtkmm/gtkmmconfig.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) +file(COPY ${SOURCE_PATH}/gtk/gtkmm.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) +file( + COPY + ${SOURCE_PATH}/gtk/gtkmm + DESTINATION ${CURRENT_PACKAGES_DIR}/include + FILES_MATCHING PATTERN *.h +) + +# Handle libraries +file( + COPY + ${SOURCE_PATH}/MSVC_Net2013/Release/${VS_PLATFORM}/bin/gdkmm.dll + DESTINATION ${CURRENT_PACKAGES_DIR}/bin +) +file( + COPY + ${SOURCE_PATH}/MSVC_Net2013/Release/${VS_PLATFORM}/bin/gdkmm.lib + DESTINATION ${CURRENT_PACKAGES_DIR}/lib +) +file( + COPY + ${SOURCE_PATH}/MSVC_Net2013/Release/${VS_PLATFORM}/bin/gtkmm.dll + DESTINATION ${CURRENT_PACKAGES_DIR}/bin +) +file( + COPY + ${SOURCE_PATH}/MSVC_Net2013/Release/${VS_PLATFORM}/bin/gtkmm.lib + DESTINATION ${CURRENT_PACKAGES_DIR}/lib +) +file( + COPY + ${SOURCE_PATH}/MSVC_Net2013/Debug/${VS_PLATFORM}/bin/gdkmm.dll + DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin +) +file( + COPY + ${SOURCE_PATH}/MSVC_Net2013/Debug/${VS_PLATFORM}/bin/gdkmm.lib + DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib +) +file( + COPY + ${SOURCE_PATH}/MSVC_Net2013/Debug/${VS_PLATFORM}/bin/gtkmm.dll + DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin +) +file( + COPY + ${SOURCE_PATH}/MSVC_Net2013/Debug/${VS_PLATFORM}/bin/gtkmm.lib + DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib +) + +vcpkg_copy_pdbs() + +# Handle copyright and readme +file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/gtkmm RENAME copyright) +file(INSTALL ${SOURCE_PATH}/README DESTINATION ${CURRENT_PACKAGES_DIR}/share/gtkmm RENAME readme.txt) diff --git a/ports/halide/CONTROL b/ports/halide/CONTROL new file mode 100644 index 000000000..2866357e3 --- /dev/null +++ b/ports/halide/CONTROL @@ -0,0 +1,3 @@ +Source: halide +Version: release_2017_10_30 +Description: Halide is a programming language designed to make it easier to write high-performance image processing code on modern machines. diff --git a/ports/halide/portfile.cmake b/ports/halide/portfile.cmake new file mode 100644 index 000000000..184d5114c --- /dev/null +++ b/ports/halide/portfile.cmake @@ -0,0 +1,88 @@ +include(vcpkg_common_functions) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + message(STATUS "Warning: Static building not supported yet. Building dynamic.") + set(VCPKG_LIBRARY_LINKAGE dynamic) +endif() + +if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") + set(TARGET_ARCHITECTURE 32) + set(FILE_HASH 99e9f05629213f99ba0b2ae088e2356842841604346a2871b05bf933a2a4712528ad1a38861f54478c16b99686ce615f97254b00c09b92b540c7afa1b0b0bb8f) +elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") + set(TARGET_ARCHITECTURE 64) + set(FILE_HASH aa699684321e779898ff09dc02163347dce355fa5d47fe673191e2323e28cc5b6554dfd51f39cc9c231ba8b07927f36e99b8489e4f7eb871ebaf6e377fc33cfc) +else() + message(FATAL_ERROR "Error: halide does not support the ${VCPKG_TARGET_ARCHITECTURE} architecture.") +endif() + +set(COMMIT_HASH 3af238615667312dcb46607752e3ae5d0ec5d713) +set(RELEASE_DATE 2017_10_30) + +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/halide-win-${TARGET_ARCHITECTURE}-distro-trunk-${COMMIT_HASH}) +vcpkg_download_distfile(ARCHIVE + URLS "https://github.com/halide/Halide/releases/download/release_${RELEASE_DATE}/halide-win-${TARGET_ARCHITECTURE}-distro-trunk-${COMMIT_HASH}.zip" + FILENAME "halide-win-${TARGET_ARCHITECTURE}-distro-trunk-${COMMIT_HASH}.zip" + SHA512 ${FILE_HASH} +) +vcpkg_extract_source_archive(${ARCHIVE} ${SOURCE_PATH}) + +vcpkg_download_distfile(LICENSE + URLS "https://raw.githubusercontent.com/halide/Halide/release_${RELEASE_DATE}/LICENSE.txt" + FILENAME "halide-release_${RELEASE_DATE}-LICENSE.txt" + SHA512 bf11aa011ce872bcd51fe8d350f7238ad1eceb61eb7af788a2d78a6cfdfa9095abeeb2d230ead5c5299d245d6507a7b4374e3294703c126dcdae531db5a5ba7a +) + +set(SOURCE_PATH ${SOURCE_PATH}/halide) + +file( + INSTALL + "${SOURCE_PATH}/include/Halide.h" + "${SOURCE_PATH}/include/HalideBuffer.h" + "${SOURCE_PATH}/include/HalideRuntime.h" + "${SOURCE_PATH}/include/HalideRuntimeCuda.h" + "${SOURCE_PATH}/include/HalideRuntimeHexagonHost.h" + "${SOURCE_PATH}/include/HalideRuntimeMetal.h" + "${SOURCE_PATH}/include/HalideRuntimeOpenCL.h" + "${SOURCE_PATH}/include/HalideRuntimeOpenGL.h" + "${SOURCE_PATH}/include/HalideRuntimeOpenGLCompute.h" + "${SOURCE_PATH}/include/HalideRuntimeQurt.h" + DESTINATION + ${CURRENT_PACKAGES_DIR}/include +) + +file( + INSTALL + "${SOURCE_PATH}/tools/halide_image_io.h" + DESTINATION + ${CURRENT_PACKAGES_DIR}/include +) + +file( + INSTALL + "${SOURCE_PATH}/Release/Halide.lib" + DESTINATION + ${CURRENT_PACKAGES_DIR}/lib +) + +file( + INSTALL + "${SOURCE_PATH}/Debug/Halide.lib" + DESTINATION + ${CURRENT_PACKAGES_DIR}/debug/lib +) + +file( + INSTALL + "${SOURCE_PATH}/Release/Halide.dll" + DESTINATION + ${CURRENT_PACKAGES_DIR}/bin +) + +file( + INSTALL + "${SOURCE_PATH}/Debug/Halide.dll" + DESTINATION + ${CURRENT_PACKAGES_DIR}/debug/bin +) + +file(INSTALL "${LICENSE}" DESTINATION ${CURRENT_PACKAGES_DIR}/share/halide RENAME copyright) diff --git a/ports/harfbuzz/0001-fix-uwp-build.patch b/ports/harfbuzz/0001-fix-uwp-build.patch index 532ce668e..24b5bf894 100644 --- a/ports/harfbuzz/0001-fix-uwp-build.patch +++ b/ports/harfbuzz/0001-fix-uwp-build.patch @@ -1,7 +1,7 @@ -diff --git "a/harfbuzz-1.4.6/src/hb-ft.cc" "b/harfbuzz-1.4.6/src/hb-ft.cc" -index 48d6a0ef..f4ce6608 100644 ---- "a/harfbuzz-1.4.6/src/hb-ft.cc" -+++ "b/harfbuzz-1.4.6/src/hb-ft.cc" +diff --git a/src/hb-ft.cc b/src/hb-ft.cc +index f578e9d..f224c07 100644 +--- a/src/hb-ft.cc ++++ b/src/hb-ft.cc @@ -31,6 +31,10 @@ #include "hb-ft.h" @@ -12,4 +12,4 @@ index 48d6a0ef..f4ce6608 100644 + #include "hb-font-private.hh" - #include "hb-cache-private.hh" // Maybe use in the future? + #include FT_ADVANCES_H diff --git a/ports/harfbuzz/CONTROL b/ports/harfbuzz/CONTROL index a99477b37..9dad59be5 100644 --- a/ports/harfbuzz/CONTROL +++ b/ports/harfbuzz/CONTROL @@ -1,4 +1,4 @@ Source: harfbuzz -Version: 1.4.6-2 +Version: 1.6.3-1 Description: HarfBuzz OpenType text shaping engine Build-Depends: freetype, glib (windows) diff --git a/ports/harfbuzz/portfile.cmake b/ports/harfbuzz/portfile.cmake index 798743d45..f9fa05555 100644 --- a/ports/harfbuzz/portfile.cmake +++ b/ports/harfbuzz/portfile.cmake @@ -1,14 +1,14 @@ include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/harfbuzz-1.4.6) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/harfbuzz-1.6.3) vcpkg_download_distfile(ARCHIVE - URLS "https://github.com/behdad/harfbuzz/releases/download/1.4.6/harfbuzz-1.4.6.tar.bz2" - FILENAME "harfbuzz-1.4.6.tar.bz2" - SHA512 aade3902adadf3a8339ba1d05279e639da7cb53981adc64e2a2d32a5d49335a6a9782a62cdf80beca569ec8a639792bf0368c0b6ecad08f35bc85878678aa096 + URLS "https://github.com/behdad/harfbuzz/releases/download/1.6.3/harfbuzz-1.6.3.tar.bz2" + FILENAME "harfbuzz-1.6.3.tar.bz2" + SHA512 37d1a161d9074e9898d9ef6cca6dffffc725005828d700744553b0145373b69bcd3b08f507d49f4c2e05850d9275a54f15983356c547c86e5e3c202cc7cbfbe8 ) vcpkg_extract_source_archive(${ARCHIVE}) vcpkg_apply_patches( - SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/ + SOURCE_PATH ${SOURCE_PATH} PATCHES "${CMAKE_CURRENT_LIST_DIR}/0001-fix-uwp-build.patch" ) diff --git a/ports/hdf5/portfile.cmake b/ports/hdf5/portfile.cmake index 9801ec44a..000ed6a31 100644 --- a/ports/hdf5/portfile.cmake +++ b/ports/hdf5/portfile.cmake @@ -1,19 +1,8 @@ -# Common Ambient Variables: -# VCPKG_ROOT_DIR = <C:\path\to\current\vcpkg> -# TARGET_TRIPLET is the current triplet (x86-windows, etc) -# PORT is the current port name (zlib, etc) -# CURRENT_BUILDTREES_DIR = ${VCPKG_ROOT_DIR}\buildtrees\${PORT} -# CURRENT_PACKAGES_DIR = ${VCPKG_ROOT_DIR}\packages\${PORT}_${TARGET_TRIPLET} -# +if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + message(FATAL_ERROR "${PORT} does not currently support UWP") +endif() include(vcpkg_common_functions) -# set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/hdf5-1.8.18) -# vcpkg_download_distfile(ARCHIVE -# URLS "https://support.hdfgroup.org/ftp/HDF5/current18/src/hdf5-1.8.18.tar.bz2" -# FILENAME "hdf5-1.8.18.tar.bz2" -# SHA512 01f6d14bdd3be2ced9c63cc9e1820cd7ea11db649ff9f3a3055c18c4b0fffe777fd23baad536e3bce31c4d76fe17db64a3972762e1bb4d232927c1ca140e72b2 -# ) -# vcpkg_extract_source_archive(${ARCHIVE}) set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/CMake-hdf5-1.10.0-patch1/hdf5-1.10.0-patch1) vcpkg_download_distfile(ARCHIVE URLS "http://hdf4.org/ftp/HDF5/releases/hdf5-1.10/hdf5-1.10.0-patch1/src/CMake-hdf5-1.10.0-patch1.zip" @@ -30,10 +19,7 @@ vcpkg_apply_patches( ${CMAKE_CURRENT_LIST_DIR}/link-libraries-private.patch ) -set(DISABLE_STATIC_LIBS OFF) -if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") - set(DISABLE_STATIC_LIBS ON) -endif() +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" DISABLE_STATIC_LIBS) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} @@ -57,9 +43,7 @@ vcpkg_copy_pdbs() file(RENAME ${CURRENT_PACKAGES_DIR}/share/hdf5/data/COPYING ${CURRENT_PACKAGES_DIR}/share/hdf5/copyright) -file(READ ${CURRENT_PACKAGES_DIR}/debug/share/hdf5/hdf5-targets-debug.cmake HDF5_TARGETS_DEBUG_MODULE) -string(REPLACE "\${_IMPORT_PREFIX}" "\${_IMPORT_PREFIX}/debug" HDF5_TARGETS_DEBUG_MODULE "${HDF5_TARGETS_DEBUG_MODULE}") -file(WRITE ${CURRENT_PACKAGES_DIR}/share/hdf5/hdf5-targets-debug.cmake "${HDF5_TARGETS_DEBUG_MODULE}") +vcpkg_fixup_cmake_targets(CONFIG_PATH share/hdf5) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) diff --git a/ports/if97/CONTROL b/ports/if97/CONTROL new file mode 100644 index 000000000..7e5bb74fb --- /dev/null +++ b/ports/if97/CONTROL @@ -0,0 +1,3 @@ +Source: if97 +Version: 2.1.0 +Description: This repository implements the IF97 formulation for the properties of pure water substance. diff --git a/ports/if97/portfile.cmake b/ports/if97/portfile.cmake new file mode 100644 index 000000000..4f8d28e82 --- /dev/null +++ b/ports/if97/portfile.cmake @@ -0,0 +1,19 @@ +include(vcpkg_common_functions) +set(PORT_VERSION 2.1.0) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO CoolProp/IF97 + REF v${PORT_VERSION} + SHA512 f8cde0538af395d8d82998bd71f28d89cd5c6fcfdf16410b0630a0f8b59ec86ff8a748b05681e65cbece051db5be6b960b6ea4fc8bce83b4309f46896083164a + HEAD_REF master +) + +file(INSTALL ${SOURCE_PATH}/IF97.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) + +# Handle copyright +file( + INSTALL ${SOURCE_PATH}/LICENSE + DESTINATION ${CURRENT_PACKAGES_DIR}/share/if97 + RENAME copyright +) diff --git a/ports/imgui/CMakeLists.txt b/ports/imgui/CMakeLists.txt index a4c49a337..3658c5cae 100644 --- a/ports/imgui/CMakeLists.txt +++ b/ports/imgui/CMakeLists.txt @@ -4,8 +4,6 @@ project(imgui CXX) set(CMAKE_DEBUG_POSTFIX d) set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) -find_path(STB_INCLUDE_DIR stb_rect_pack.h stb_textedit.h stb_truetype.h) - set(IMGUI_INCLUDES_PUBLIC imgui.h imconfig.h @@ -27,8 +25,6 @@ add_library(imgui ${IMGUI_SOURCES} ) -target_include_directories(imgui PUBLIC ${STB_INCLUDE_DIR}) - install(TARGETS imgui RUNTIME DESTINATION bin LIBRARY DESTINATION lib diff --git a/ports/imgui/CONTROL b/ports/imgui/CONTROL index 35e041de1..4428d0d45 100644 --- a/ports/imgui/CONTROL +++ b/ports/imgui/CONTROL @@ -1,4 +1,3 @@ Source: imgui -Version: 1.51-1 -Build-Depends: stb +Version: 1.52 Description: Bloat-free Immediate Mode Graphical User interface for C++ with minimal dependencies. diff --git a/ports/imgui/portfile.cmake b/ports/imgui/portfile.cmake index 587a4cf19..385a2396b 100644 --- a/ports/imgui/portfile.cmake +++ b/ports/imgui/portfile.cmake @@ -1,23 +1,14 @@ include(vcpkg_common_functions) -if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) - message(STATUS "Warning: Dynamic building not supported yet. Building static.") - set(VCPKG_LIBRARY_LINKAGE static) -endif() - vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ocornut/imgui - REF v1.51 - SHA512 33aea46d0ab8419fcd4af765c9f1a88dfb1b80ad466276b655a67f40ffedabe399db6b0d76a2ece74e551928bd6f842ae3fa42998e0b1a2206157a3852e002d6 + REF v1.52 + SHA512 8ada897ae33bcffa222dab4e9ff602611fa27d43f26085b8f96c313fea917d3149f1e3f4640f6156cfb7bc39bcb116106ccb4e8da1409d467e78c93bf9f7ea03 HEAD_REF master ) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) -file(GLOB STB_HEADERS ${SOURCE_PATH}/stb_*.h) -if(STB_HEADERS) - file(REMOVE ${STB_HEADERS}) -endif() vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} diff --git a/ports/itk/CONTROL b/ports/itk/CONTROL new file mode 100644 index 000000000..c930e9491 --- /dev/null +++ b/ports/itk/CONTROL @@ -0,0 +1,4 @@ +Source: itk +Version: 4.11.0 +Description: Insight Segmentation and Registration Toolkit (ITK) is used for image processing and analysis. +Build-Depends: libjpeg-turbo, zlib, libpng, tiff, expat diff --git a/ports/itk/portfile.cmake b/ports/itk/portfile.cmake new file mode 100644 index 000000000..79b298ae2 --- /dev/null +++ b/ports/itk/portfile.cmake @@ -0,0 +1,60 @@ +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO InsightSoftwareConsortium/ITK + REF fc374c8431a8aec740e4db3a398c6e95294f34a2 + SHA512 d4a313cfba78ab309e387c213a2dd568c4d8bb628210dcb519712bbed23380b870d7224634119fad08ff157451b75f1c7fbae93841a00091b0e403315cde2943 + HEAD_REF master +) + +# directory path length needs to be shorter than 50 characters +file(RENAME ${SOURCE_PATH} ${CURRENT_BUILDTREES_DIR}/ITK) +set(SOURCE_PATH "${CURRENT_BUILDTREES_DIR}/ITK") + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + -DBUILD_TESTING=OFF + -DBUILD_EXAMPLES=OFF + -DDO_NOT_INSTALL_ITK_TEST_DRIVER=ON + -DITK_INSTALL_DATA_DIR=share/itk/data + -DITK_INSTALL_DOC_DIR=share/itk/doc + -DITK_INSTALL_PACKAGE_DIR=share/itk + -DITK_LEGACY_REMOVE=ON + -DITK_USE_64BITS_IDS=ON + -DITK_USE_CONCEPT_CHECKING=ON + # -DITK_WRAP_PYTHON=ON + # -DITK_PYTHON_VERSION=3 + # -DITK_USE_SYSTEM_LIBRARIES=ON # enables USE_SYSTEM for many third party libraries which do not have vcpkg ports such as FFTW + -DITK_USE_SYSTEM_EXPAT=ON + -DITK_USE_SYSTEM_JPEG=ON + -DITK_USE_SYSTEM_PNG=ON + -DITK_USE_SYSTEM_TIFF=ON + -DITK_USE_SYSTEM_ZLIB=ON + -DITK_FORBID_DOWNLOADS=OFF + -DITK_BUILD_DEFAULT_MODULES=OFF # turns on HDF5, which is problematic + -DITKGroup_IO=OFF # turns on HDF5, which is problematic + -DModule_ITKReview=OFF # turns on HDF5, which is problematic + -DITKGroup_Filtering=ON + -DITKGroup_Registration=ON + -DITKGroup_Segmentation=ON + -DModule_ITKIOMesh=ON + -DModule_ITKIOCSV=ON + -DModule_IOSTL=ON # example how to turn on a non-default module + # -DModule_ITKVtkGlue=ON # this option requires VTK to be a dependency in CONTROL file + -DModule_MorphologicalContourInterpolation=ON # example how to turn on a remote module + -DModule_RLEImage=ON # example how to turn on a remote module + ${ADDITIONAL_OPTIONS} +) + +vcpkg_install_cmake() +vcpkg_copy_pdbs() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +# Handle copyright +file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/itk) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/itk/LICENSE ${CURRENT_PACKAGES_DIR}/share/itk/copyright) diff --git a/ports/jansson/portfile.cmake b/ports/jansson/portfile.cmake index 50d5a994e..e018170c7 100644 --- a/ports/jansson/portfile.cmake +++ b/ports/jansson/portfile.cmake @@ -21,6 +21,14 @@ else() set(JANSSON_BUILD_SHARED_LIBS OFF) endif() +# Jansson tries to random-seed its hash table with system-provided entropy. +# This is not ported to UWP yet. +if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + set(USE_WINDOWS_CRYPTOAPI OFF) +else() + set(USE_WINDOWS_CRYPTOAPI ON) +endif() + vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} OPTIONS @@ -28,6 +36,7 @@ vcpkg_configure_cmake( -DJANSSON_EXAMPLES=OFF -DJANSSON_WITHOUT_TESTS=ON -DJANSSON_BUILD_SHARED_LIBS=${JANSSON_BUILD_SHARED_LIBS} + -DUSE_WINDOWS_CRYPTOAPI=${USE_WINDOWS_CRYPTOAPI} ) vcpkg_install_cmake(DISABLE_PARALLEL) diff --git a/ports/jasper/CONTROL b/ports/jasper/CONTROL index 70f3eda3c..ede42e377 100644 --- a/ports/jasper/CONTROL +++ b/ports/jasper/CONTROL @@ -1,4 +1,4 @@ Source: jasper -Version: 2.0.13-1 +Version: 2.0.14-1 Description: Open source implementation of the JPEG-2000 Part-1 standard Build-Depends: libjpeg-turbo diff --git a/ports/jasper/jasper-fix-uwp.patch b/ports/jasper/jasper-fix-uwp.patch new file mode 100644 index 000000000..2b67d6c93 --- /dev/null +++ b/ports/jasper/jasper-fix-uwp.patch @@ -0,0 +1,32 @@ +From bad33461a302ed8db02e0d9875e7b59b9e8f6032 Mon Sep 17 00:00:00 2001 +From: Mikhail Paulyshka <me@mixaill.tk> +Date: Tue, 7 Nov 2017 20:10:31 +0300 +Subject: [PATCH] Fixed build for Windows 10 UWP + +--- + src/libjasper/CMakeLists.txt | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/src/libjasper/CMakeLists.txt b/src/libjasper/CMakeLists.txt +index 234ae67..9d0a522 100644 +--- a/src/libjasper/CMakeLists.txt ++++ b/src/libjasper/CMakeLists.txt +@@ -145,6 +145,15 @@ target_include_directories(libjasper BEFORE PRIVATE + set_target_properties(libjasper PROPERTIES OUTPUT_NAME jasper) + set_target_properties(libjasper PROPERTIES LINKER_LANGUAGE C) + ++if(MSVC) ++ target_compile_definitions(libjasper PRIVATE ++ "-D_CRT_SECURE_NO_WARNINGS") ++ target_compile_definitions(libjasper PRIVATE ++ "-D_CRT_SECURE_NO_DEPRECATE") ++ target_compile_definitions(libjasper PRIVATE ++ "-D_CRT_NONSTDC_NO_DEPRECATE") ++endif() ++ + if (UNIX) + set_target_properties(libjasper PROPERTIES + VERSION ${JAS_SO_NAME} SOVERSION ${JAS_SO_VERSION}) +-- +2.14.1.windows.1 + diff --git a/ports/jasper/portfile.cmake b/ports/jasper/portfile.cmake index fa2b415a7..ee73c8cbd 100644 --- a/ports/jasper/portfile.cmake +++ b/ports/jasper/portfile.cmake @@ -1,13 +1,22 @@ include(vcpkg_common_functions) + vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mdadams/jasper - REF version-2.0.13 - SHA512 8c09a7b773e739a2594cd1002fe66f79ea4336f7de7c97267ab976c06ba075468a7f3c8731dff13a98221cd11d3f2bf8dcddb3fc2c2fc7d7c5ba402bcd3f9fd8 + REF version-2.0.14 + SHA512 6b270cb1eb55f777f30016f3258e5e2297627e7d086334814c308464f5a4552c23241b0fdbc81ea715a6f4746294657f96c1cb6ceb320629ce57db7e81d84940 HEAD_REF master) -if(VCPKG_LIBRARY_LINKAGE STREQUAL static) - set(JASPER_LINKAGE -DJAS_ENABLE_SHARED=OFF) +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES + ${CMAKE_CURRENT_LIST_DIR}/jasper-fix-uwp.patch +) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) + set(JAS_ENABLE_SHARED ON) +else() + set(JAS_ENABLE_SHARED OFF) endif() vcpkg_configure_cmake( @@ -18,24 +27,18 @@ vcpkg_configure_cmake( -DJAS_ENABLE_LIBJPEG=ON -DJAS_ENABLE_OPENGL=OFF # not needed for the library -DJAS_ENABLE_DOC=OFF - ${JASPER_LINKAGE}) + -DJAS_ENABLE_PROGRAMS=OFF + -DJAS_ENABLE_SHARED=${JAS_ENABLE_SHARED} +) vcpkg_install_cmake() +vcpkg_copy_pdbs() -if(VCPKG_LIBRARY_LINKAGE STREQUAL static) - file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin) -else() - file(GLOB EXECS ${CURRENT_PACKAGES_DIR}/bin/*.exe ${CURRENT_PACKAGES_DIR}/debug/bin/*.exe) - file(REMOVE ${EXECS}) -endif() - -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/pkgconfig) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) - -vcpkg_copy_pdbs() +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/pkgconfig) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share) file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/jasper) file(RENAME ${CURRENT_PACKAGES_DIR}/share/jasper/LICENSE ${CURRENT_PACKAGES_DIR}/share/jasper/copyright) diff --git a/ports/lcms/CMakeLists.txt b/ports/lcms/CMakeLists.txt index 809fe505e..10ccc0b02 100644 --- a/ports/lcms/CMakeLists.txt +++ b/ports/lcms/CMakeLists.txt @@ -33,6 +33,8 @@ set(SRCS "src/cmssm.c" ) +set(CMAKE_DEBUG_POSTFIX d) + add_definitions(-DUNICODE -D_UNICODE) if(BUILD_SHARED_LIBS) diff --git a/ports/lcms/CONTROL b/ports/lcms/CONTROL index 03efca607..5855fbc71 100644 --- a/ports/lcms/CONTROL +++ b/ports/lcms/CONTROL @@ -1,4 +1,4 @@ Source: lcms -Version: 2.8-3 +Version: 2.8-4 Build-Depends: Description: Little CMS. diff --git a/ports/lcms/portfile.cmake b/ports/lcms/portfile.cmake index eeb12243c..7d52e5270 100644 --- a/ports/lcms/portfile.cmake +++ b/ports/lcms/portfile.cmake @@ -13,7 +13,7 @@ file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA - OPTIONS_DEBUG + OPTIONS_DEBUG -DSKIP_INSTALL_HEADERS=ON ) diff --git a/ports/leptonica/CONTROL b/ports/leptonica/CONTROL index cd1c44cb4..6ca0bea56 100644 --- a/ports/leptonica/CONTROL +++ b/ports/leptonica/CONTROL @@ -1,4 +1,4 @@ Source: leptonica -Version: 1.74.4-1 +Version: 1.74.4-2 Description: An open source library containing software that is broadly useful for image processing and image analysis applications Build-Depends: libjpeg-turbo, zlib, libpng, tiff, giflib diff --git a/ports/leptonica/portfile.cmake b/ports/leptonica/portfile.cmake index a5d4330fd..acaf7fe9d 100644 --- a/ports/leptonica/portfile.cmake +++ b/ports/leptonica/portfile.cmake @@ -12,12 +12,16 @@ vcpkg_apply_patches( SOURCE_PATH ${SOURCE_PATH} PATCHES ${CMAKE_CURRENT_LIST_DIR}/fix-cmakelists.patch + ${CMAKE_CURRENT_LIST_DIR}/use-tiff-libraries.patch ) +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" STATIC) + vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA OPTIONS + -DSTATIC=${STATIC} -DCMAKE_REQUIRED_INCLUDES=${CURRENT_INSTALLED_DIR}/include # for check_include_file() ) diff --git a/ports/leptonica/use-tiff-libraries.patch b/ports/leptonica/use-tiff-libraries.patch new file mode 100644 index 000000000..f994be552 --- /dev/null +++ b/ports/leptonica/use-tiff-libraries.patch @@ -0,0 +1,13 @@ +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 3af7e30..55e17da 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -44,7 +44,7 @@ if (PNG_LIBRARY) + endif() + if (TIFF_LIBRARY) + target_include_directories (leptonica PUBLIC ${TIFF_INCLUDE_DIR}) +- target_link_libraries (leptonica ${TIFF_LIBRARY}) ++ target_link_libraries (leptonica ${TIFF_LIBRARIES}) + endif() + if (WEBP_FOUND) + target_include_directories (leptonica PUBLIC ${WEBP_INCLUDE_DIR}) diff --git a/ports/leveldb/CMakeLists.txt b/ports/leveldb/CMakeLists.txt new file mode 100644 index 000000000..73b082c4a --- /dev/null +++ b/ports/leveldb/CMakeLists.txt @@ -0,0 +1,75 @@ +cmake_minimum_required(VERSION 3.8) +project(leveldb C CXX) + +option(INSTALL_HEADERS "Install header files" ON) + +add_definitions( + -DWIN32 + -D_CRT_NONSTDC_NO_DEPRECATE + -D_SCL_SECURE_NO_WARNINGS + -D_CRT_SECURE_NO_WARNINGS + -DNOMINMAX + -DLEVELDB_ATOMIC_PRESENT + -DLEVELDB_PLATFORM_WINDOWS +) + +add_library(libleveldb + db/builder.cc + db/c.cc + db/dbformat.cc + db/db_impl.cc + db/db_iter.cc + db/dumpfile.cc + db/filename.cc + db/log_reader.cc + db/log_writer.cc + db/memtable.cc + db/repair.cc + db/table_cache.cc + db/version_edit.cc + db/version_set.cc + db/write_batch.cc + helpers/memenv/memenv.cc + port/port_posix_sse.cc + port/port_win.cc + table/block.cc + table/block_builder.cc + table/filter_block.cc + table/format.cc + table/iterator.cc + table/merger.cc + table/table.cc + table/table_builder.cc + table/two_level_iterator.cc + util/arena.cc + util/bloom.cc + util/cache.cc + util/coding.cc + util/comparator.cc + util/crc32c.cc + util/env.cc + util/env_posix.cc + util/env_win.cc + util/filter_policy.cc + util/hash.cc + util/histogram.cc + util/logging.cc + util/options.cc + util/status.cc +) + +include_directories(${CMAKE_CURRENT_SOURCE_DIR} include) + +target_link_libraries(libleveldb PUBLIC Iphlpapi.lib Shlwapi.lib) + +install(TARGETS libleveldb + RUNTIME DESTINATION bin + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib +) + +if(INSTALL_HEADERS) + file(GLOB HEADERS include/leveldb/*.h) + install(FILES ${HEADERS} DESTINATION include/leveldb) + install(FILES helpers/memenv/memenv.h DESTINATION include) +endif()
\ No newline at end of file diff --git a/ports/leveldb/CONTROL b/ports/leveldb/CONTROL new file mode 100644 index 000000000..5953bc35d --- /dev/null +++ b/ports/leveldb/CONTROL @@ -0,0 +1,3 @@ +Source: leveldb
+Version: 2017-10-25-8b1cd3753b184341e837b30383832645135d3d73-1
+Description: LevelDB is a fast key-value storage library written at Google that provides an ordered mapping from string keys to string values.
diff --git a/ports/leveldb/msvc_code_fix.diff b/ports/leveldb/msvc_code_fix.diff new file mode 100644 index 000000000..6cab006d3 --- /dev/null +++ b/ports/leveldb/msvc_code_fix.diff @@ -0,0 +1,63 @@ + db/c.cc | 2 ++ + port/port_win.h | 7 +++++++ + util/env_win.cc | 6 ++++-- + 3 files changed, 13 insertions(+), 2 deletions(-) + +diff --git a/db/c.cc b/db/c.cc +index 08ff0ad..b23e3dc 100644 +--- a/db/c.cc ++++ b/db/c.cc +@@ -5,7 +5,9 @@ + #include "leveldb/c.h" + + #include <stdlib.h> ++#ifndef WIN32 + #include <unistd.h> ++#endif + #include "leveldb/cache.h" + #include "leveldb/comparator.h" + #include "leveldb/db.h" +diff --git a/port/port_win.h b/port/port_win.h +index e8bf46e..989c15c 100644 +--- a/port/port_win.h ++++ b/port/port_win.h +@@ -32,9 +32,16 @@ + #define STORAGE_LEVELDB_PORT_PORT_WIN_H_ + + #ifdef _MSC_VER ++#if !(_MSC_VER >= 1900) + #define snprintf _snprintf ++#endif + #define close _close + #define fread_unlocked _fread_nolock ++#ifdef _WIN64 ++#define ssize_t int64_t ++#else ++#define ssize_t int32_t ++#endif + #endif + + #include <string> +diff --git a/util/env_win.cc b/util/env_win.cc +index d32c4e6..3b4c92b 100644 +--- a/util/env_win.cc ++++ b/util/env_win.cc +@@ -761,14 +761,16 @@ uint64_t Win32Env::NowMicros() + static Status CreateDirInner( const std::string& dirname ) + { + Status sRet; +- DWORD attr = ::GetFileAttributes(dirname.c_str()); ++ std::wstring dirnameW; ++ ToWidePath(dirname, dirnameW); ++ DWORD attr = ::GetFileAttributesW(dirnameW.c_str()); + if (attr == INVALID_FILE_ATTRIBUTES) { // doesn't exist: + std::size_t slash = dirname.find_last_of("\\"); + if (slash != std::string::npos){ + sRet = CreateDirInner(dirname.substr(0, slash)); + if (!sRet.ok()) return sRet; + } +- BOOL result = ::CreateDirectory(dirname.c_str(), NULL); ++ BOOL result = ::CreateDirectoryW(dirnameW.c_str(), NULL); + if (result == FALSE) { + sRet = Status::IOError(dirname, "Could not create directory."); + return sRet; diff --git a/ports/leveldb/portfile.cmake b/ports/leveldb/portfile.cmake new file mode 100644 index 000000000..387cfd96e --- /dev/null +++ b/ports/leveldb/portfile.cmake @@ -0,0 +1,33 @@ +include(vcpkg_common_functions)
+
+set(VCPKG_LIBRARY_LINKAGE static)
+
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/leveldb-8b1cd3753b184341e837b30383832645135d3d73)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH "leveldb"
+ BRANCH "bitcoin-fork"
+ REPO "bitcoin-core/leveldb"
+ REF "8b1cd3753b184341e837b30383832645135d3d73"
+ SHA512 f5ad5fd21fb28ee052a4f3873abd58dab508c71621bcd482ab9e6ef4b57eca182c81502ddfe59736f5b2a54f2d05b397dd15982b3bd5d9039cd481eae3c7b958
+)
+
+message(STATUS "Patching")
+
+vcpkg_apply_patches(SOURCE_PATH ${SOURCE_PATH}
+ PATCHES ${CMAKE_CURRENT_LIST_DIR}/msvc_code_fix.diff)
+
+message(STATUS "Building")
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA # Disable this option if project cannot be built with Ninja
+ OPTIONS_DEBUG -DINSTALL_HEADERS=OFF
+)
+
+vcpkg_install_cmake()
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/leveldb RENAME copyright)
diff --git a/ports/libaiff/CMakeLists.txt b/ports/libaiff/CMakeLists.txt new file mode 100644 index 000000000..9dcfd46d2 --- /dev/null +++ b/ports/libaiff/CMakeLists.txt @@ -0,0 +1,32 @@ +cmake_minimum_required (VERSION 3.9) +project (libaiff) +set(SRC + iff.c aifx.c lpcm.c g711.c + float32.c libaiff.c + extended.c pascal.c +) + +if(MSVC) + add_compile_options(/W4 -D_CRT_SECURE_NO_WARNINGS -DHAVE_INTTYPES_H -DHAVE_STDINT_H -DHAVE_STRING_H -DHAVE_STDLIB_H) +endif() + +if(BUILD_SHARED_LIBS) + set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) +endif() + +include_directories(.) + +add_library(libaiff ${SRC}) + + +install( + TARGETS libaiff + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) + + +if(NOT DISABLE_INSTALL_HEADERS) + install(FILES libaiff/libaiff.h libaiff/config.h libaiff/endian.h DESTINATION include/libaiff) +endif() diff --git a/ports/libaiff/CONTROL b/ports/libaiff/CONTROL new file mode 100644 index 000000000..21078bfe8 --- /dev/null +++ b/ports/libaiff/CONTROL @@ -0,0 +1,3 @@ +Source: libaiff +Version: 5.0 +Description: LibAiff is an open-source library, providing C applications transparent read & write operations for Audio Interchange File Format (AIFF) files, with the goal of supporting all of its features diff --git a/ports/libaiff/allow_utf_16_filename.patch b/ports/libaiff/allow_utf_16_filename.patch new file mode 100644 index 000000000..773b492fd --- /dev/null +++ b/ports/libaiff/allow_utf_16_filename.patch @@ -0,0 +1,214 @@ +diff --git a/libaiff.c b/libaiff.c +index d0ad40d..e266802 100644 +--- a/libaiff.c ++++ b/libaiff.c +@@ -44,6 +44,8 @@ static struct decoder* decoders[] = { + + static AIFF_Ref AIFF_ReadOpen (const char *, int); + static AIFF_Ref AIFF_WriteOpen (const char *, int); ++static AIFF_Ref AIFF_ReadOpenW (const wchar_t*, int); ++static AIFF_Ref AIFF_WriteOpenW (const wchar_t*, int); + static void AIFF_ReadClose (AIFF_Ref); + static int AIFF_WriteClose (AIFF_Ref); + static void* InitBuffer (AIFF_Ref, size_t); +@@ -53,6 +55,21 @@ static int Prepare (AIFF_Ref); + static void Unprepare (AIFF_Ref); + static struct decoder* FindDecoder (IFFType); + ++#ifdef _WIN32 ++AIFF_Ref ++AIFF_OpenFileW(const wchar_t *file, int flags) ++{ ++ AIFF_Ref ref = NULL; ++ ++ if (flags & F_RDONLY) { ++ ref = AIFF_ReadOpenW(file, flags); ++ } else if (flags & F_WRONLY) { ++ ref = AIFF_WriteOpenW(file, flags); ++ } ++ ++ return ref; ++} ++#endif + AIFF_Ref + AIFF_OpenFile(const char *file, int flags) + { +@@ -86,6 +103,76 @@ AIFF_CloseFile(AIFF_Ref ref) + return r; + } + ++#ifdef _WIN32 ++static AIFF_Ref ++AIFF_ReadOpenW(const wchar_t *file, int flags) ++{ ++ AIFF_Ref r; ++ IFFHeader hdr; ++ ++ r = malloc(kAIFFRefSize); ++ if (!r) { ++ return NULL; ++ } ++ r->fd = _wfopen(file, L"rb"); ++ if (r->fd == NULL) { ++ free(r); ++ return NULL; ++ } ++ r->flags = F_RDONLY | flags; ++ if (fread(&hdr, 1, 4, r->fd) < 4) { ++ fclose(r->fd); ++ free(r); ++ return NULL; ++ } ++ switch (hdr.hid) { ++ case AIFF_TYPE_IFF: ++ /* Continue reading the IFF header */ ++ if (fread(&(hdr.len), 1, 8, r->fd) < 8) { ++ fclose(r->fd); ++ free(r); ++ return NULL; ++ } ++ if (hdr.len == 0) { ++ fclose(r->fd); ++ free(r); ++ return NULL; ++ } ++ /* ++ * Check the format type (AIFF or AIFC) ++ */ ++ r->format = hdr.fid; ++ switch (r->format) { ++ case AIFF_TYPE_AIFF: ++ case AIFF_TYPE_AIFC: ++ break; ++ default: ++ fclose(r->fd); ++ free(r); ++ return NULL; ++ } ++ ++ if (init_aifx(r) < 1) { ++ fclose(r->fd); ++ free(r); ++ return NULL; ++ } ++ break; ++ default: ++ fclose(r->fd); ++ free(r); ++ return NULL; ++ } ++ ++ r->stat = 0; ++ r->buffer = NULL; ++ r->buflen = 0; ++ ++ return r; ++} ++ ++#endif ++ + static AIFF_Ref + AIFF_ReadOpen(const char *file, int flags) + { +@@ -450,6 +537,89 @@ AIFF_ReadClose(AIFF_Ref r) + return; + } + ++#ifdef WIN32 ++static AIFF_Ref ++AIFF_WriteOpenW(const wchar_t *file, int flags) ++{ ++ AIFF_Ref w; ++ IFFHeader hdr; ++ ASSERT(sizeof(IFFHeader) == 12); ++ ++ w = malloc(kAIFFRefSize); ++ if (!w) { ++err0: ++ return NULL; ++ } ++ ++ /* ++ * Simultaneous open for reading & writing ++ */ ++ w->fd = _wfopen(file, L"w+b"); ++ if (w->fd == NULL) { ++err1: ++ free(w); ++ goto err0; ++ } ++ hdr.hid = ARRANGE_BE32(AIFF_FORM); ++ w->len = 4; ++ hdr.len = ARRANGE_BE32(4); ++ if (flags & F_AIFC) ++ hdr.fid = ARRANGE_BE32(AIFF_AIFC); ++ else ++ hdr.fid = ARRANGE_BE32(AIFF_AIFF); ++ ++ if (fwrite(&hdr, 1, 12, w->fd) < 12) { ++err2: ++ fclose(w->fd); ++ goto err1; ++ } ++ w->stat = 0; ++ w->segmentSize = 0; ++ w->buffer = NULL; ++ w->buflen = 0; ++ w->tics = 0; ++ ++ /* ++ * If writing AIFF-C, write the required FVER chunk ++ */ ++ if (flags & F_AIFC) { ++ IFFChunk chk; ++ uint32_t vers; ++ ASSERT(sizeof(IFFChunk) == 8); ++ ++ chk.id = ARRANGE_BE32(AIFF_FVER); ++ chk.len = ARRANGE_BE32(4); ++ vers = ARRANGE_BE32(AIFC_STD_DRAFT_082691); ++ ++ if (fwrite(&chk, 1, 8, w->fd) < 8 || ++ fwrite(&vers, 1, 4, w->fd) < 4) { ++ goto err2; ++ } ++ ++ w->len += 12; ++ ++ /* ++ * If no endianness specified for AIFF-C, ++ * default to big endian ++ */ ++ if (!(flags & (LPCM_LTE_ENDIAN | LPCM_BIG_ENDIAN))) { ++ flags |= LPCM_BIG_ENDIAN; ++ } ++ } else { ++ /* ++ * If writing regular AIFF, make sure we ++ * write big-endian data ++ */ ++ flags &= ~LPCM_LTE_ENDIAN; ++ flags |= LPCM_BIG_ENDIAN; ++ } ++ ++ w->flags = F_WRONLY | flags; ++ ++ return w; ++} ++#endif ++ + static AIFF_Ref + AIFF_WriteOpen(const char *file, int flags) + { +diff --git a/libaiff/libaiff.h b/libaiff/libaiff.h +index 56fc77f..e1940a5 100644 +--- a/libaiff/libaiff.h ++++ b/libaiff/libaiff.h +@@ -165,6 +165,7 @@ typedef struct s_Instrument Instrument ; + + /* == Function prototypes == */ + AIFF_Ref AIFF_OpenFile(const char *, int) ; ++AIFF_Ref AIFF_OpenFileW(const wchar_t *, int) ; + int AIFF_CloseFile(AIFF_Ref) ; + char* AIFF_GetAttribute(AIFF_Ref,IFFType) ; + int AIFF_GetInstrumentData(AIFF_Ref,Instrument*) ; diff --git a/ports/libaiff/buffer_uninitialized.patch b/ports/libaiff/buffer_uninitialized.patch new file mode 100644 index 000000000..d87ab41c6 --- /dev/null +++ b/ports/libaiff/buffer_uninitialized.patch @@ -0,0 +1,42 @@ +diff --git "a/libaiff.c" "b/libaiff.c" +index e266802..21179f9 100644 +--- "a/libaiff.c" ++++ "b/libaiff.c" +@@ -168,6 +168,9 @@ AIFF_ReadOpenW(const wchar_t *file, int flags) + r->buffer = NULL; + r->buflen = 0; + ++ r->buffer2 = NULL; ++ r->buflen2 = 0; ++ + return r; + } + +@@ -237,6 +240,9 @@ AIFF_ReadOpen(const char *file, int flags) + r->buffer = NULL; + r->buflen = 0; + ++ r->buffer2 = NULL; ++ r->buflen2 = 0; ++ + return r; + } + +@@ -577,6 +583,8 @@ err2: + w->segmentSize = 0; + w->buffer = NULL; + w->buflen = 0; ++ w->buffer2 = NULL; ++ w->buflen2 = 0; + w->tics = 0; + + /* +@@ -659,6 +667,8 @@ err2: + w->segmentSize = 0; + w->buffer = NULL; + w->buflen = 0; ++ w->buffer2 = NULL; ++ w->buflen2 = 0; + w->tics = 0; + + /* diff --git a/ports/libaiff/config.h b/ports/libaiff/config.h new file mode 100644 index 000000000..f7c04eebf --- /dev/null +++ b/ports/libaiff/config.h @@ -0,0 +1,12 @@ +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "marcotrillo@gmail.com" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "LibAiff (MSVC)" + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "LibAiff (MSVC) $Revision: 1.1 $" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "$Revision: 1.1 $" + diff --git a/ports/libaiff/portfile.cmake b/ports/libaiff/portfile.cmake new file mode 100644 index 000000000..17277159e --- /dev/null +++ b/ports/libaiff/portfile.cmake @@ -0,0 +1,41 @@ +include(vcpkg_common_functions)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libaiff-5.0)
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://sourceforge.net/projects/aifftools/files/libaiff/LibAiff%205.0/libaiff-5.0-release.tar.gz"
+ FILENAME "libaiff-5.0-release.tar.gz"
+ SHA512 7800f9a3fbd0c5a17b8cc6c9b60181131d159ab5f5fb8e7de54e8f88c151717a988231de664a635e61940267c854a9ce83d58b12e322dcdda3aa8080c7b15f66
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ "${CMAKE_CURRENT_LIST_DIR}/allow_utf_16_filename.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/buffer_uninitialized.patch"
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/config.h DESTINATION ${SOURCE_PATH}/libaiff)
+
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON
+)
+
+vcpkg_install_cmake()
+
+file(GLOB HEADERS "${CURRENT_PACKAGES_DIR}/include/libaiff/*.h")
+foreach(HEADER ${HEADERS})
+ file(READ "${HEADER}" _contents)
+ string(REPLACE "#ifdef HAVE_STDINT_H" "#if 1" _contents "${_contents}")
+ string(REPLACE "#ifdef HAVE_STRING_H" "#if 1" _contents "${_contents}")
+ string(REPLACE "#ifdef HAVE_STDLIB_H" "#if 1" _contents "${_contents}")
+ string(REPLACE "#ifdef HAVE_INTTYPES_H" "#if 1" _contents "${_contents}")
+ file(WRITE "${HEADER}" "${_contents}")
+endforeach()
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/libaiff RENAME copyright)
diff --git a/ports/libflac/CONTROL b/ports/libflac/CONTROL index 2a0572d2a..ca2995d68 100644 --- a/ports/libflac/CONTROL +++ b/ports/libflac/CONTROL @@ -1,4 +1,4 @@ Source: libflac
-Version: 1.3.2-3
+Version: 1.3.2-4
Description: Library for manipulating FLAC files
Build-Depends: libogg
diff --git a/ports/libflac/portfile.cmake b/ports/libflac/portfile.cmake index cbf7d6fd3..236f51c8e 100644 --- a/ports/libflac/portfile.cmake +++ b/ports/libflac/portfile.cmake @@ -1,8 +1,3 @@ - # libFLAC uses winapi functions not available in WindowsStore
-if (VCPKG_CMAKE_SYSTEM_NAME STREQUAL WindowsStore)
- message(FATAL_ERROR "Error: UWP builds are currently not supported.")
-endif()
-
include(vcpkg_common_functions)
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/flac-1.3.2)
vcpkg_download_distfile(ARCHIVE
@@ -12,6 +7,13 @@ vcpkg_download_distfile(ARCHIVE vcpkg_extract_source_archive(${ARCHIVE})
+vcpkg_apply_patches(
+ SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/flac-1.3.2
+ PATCHES
+ "${CMAKE_CURRENT_LIST_DIR}/uwp-library-console.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/uwp-createfile2.patch"
+)
+
if(VCPKG_TARGET_ARCHITECTURE STREQUAL x86)
vcpkg_find_acquire_program(NASM)
get_filename_component(NASM_EXE_PATH ${NASM} DIRECTORY)
diff --git a/ports/libflac/uwp-createfile2.patch b/ports/libflac/uwp-createfile2.patch new file mode 100644 index 000000000..cfb343990 --- /dev/null +++ b/ports/libflac/uwp-createfile2.patch @@ -0,0 +1,38 @@ +diff --git a/src/libFLAC/windows_unicode_filenames.c b/src/libFLAC/windows_unicode_filenames.c +index 2404e31..d320bf5 100644 +--- a/src/libFLAC/windows_unicode_filenames.c ++++ b/src/libFLAC/windows_unicode_filenames.c +@@ -185,6 +185,27 @@ int flac_internal_rename_utf8(const char *oldname, const char *newname) + + HANDLE WINAPI flac_internal_CreateFile_utf8(const char *lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile) + { ++#if defined (WINAPI_FAMILY_PARTITION) && !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) ++ HANDLE handle = INVALID_HANDLE_VALUE; ++ ++ if (!utf8_filenames) ++ return handle; ++ ++ wchar_t *wname; ++ ++ if ((wname = wchar_from_utf8(lpFileName)) != NULL) ++ { ++ CREATEFILE2_EXTENDED_PARAMETERS cfParams = {0}; ++ cfParams.dwSize = sizeof(CREATEFILE2_EXTENDED_PARAMETERS); ++ cfParams.dwFileAttributes = dwFlagsAndAttributes & FILE_ATTRIBUTE_NORMAL; ++ cfParams.lpSecurityAttributes = lpSecurityAttributes; ++ cfParams.hTemplateFile = hTemplateFile; ++ handle = CreateFile2(wname, dwDesiredAccess, dwShareMode, dwCreationDisposition, &cfParams); ++ free(wname); ++ } ++ ++ return handle; ++#else + if (!utf8_filenames) { + return CreateFileA(lpFileName, dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile); + } else { +@@ -198,4 +219,5 @@ HANDLE WINAPI flac_internal_CreateFile_utf8(const char *lpFileName, DWORD dwDesi + + return handle; + } ++#endif + } diff --git a/ports/libflac/uwp-library-console.patch b/ports/libflac/uwp-library-console.patch new file mode 100644 index 000000000..bba2422c3 --- /dev/null +++ b/ports/libflac/uwp-library-console.patch @@ -0,0 +1,53 @@ +diff --git a/src/share/win_utf8_io/win_utf8_io.c b/src/share/win_utf8_io/win_utf8_io.c +index c61d27f..0870054 100644 +--- a/src/share/win_utf8_io/win_utf8_io.c ++++ b/src/share/win_utf8_io/win_utf8_io.c +@@ -110,7 +110,11 @@ int get_utf8_argv(int *argc, char ***argv) + char **utf8argv; + int ret, i; + ++#if defined (WINAPI_FAMILY_PARTITION) && !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) ++ if ((handle = LoadPackagedLibrary("msvcrt.dll", 0)) == NULL) return 1; ++#else + if ((handle = LoadLibrary("msvcrt.dll")) == NULL) return 1; ++#endif + if ((wgetmainargs = (wgetmainargs_t)GetProcAddress(handle, "__wgetmainargs")) == NULL) { + FreeLibrary(handle); + return 1; +@@ -163,6 +167,9 @@ size_t strlen_utf8(const char *str) + /* get the console width in characters */ + int win_get_console_width(void) + { ++#if defined (WINAPI_FAMILY_PARTITION) && !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) ++ return 80; ++#else + int width = 80; + CONSOLE_SCREEN_BUFFER_INFO csbi; + HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE); +@@ -170,6 +177,7 @@ int win_get_console_width(void) + if (GetConsoleScreenBufferInfo(hOut, &csbi) != 0) + width = csbi.dwSize.X; + return width; ++#endif + } + + /* print functions */ +@@ -179,6 +187,10 @@ static int wprint_console(FILE *stream, const wchar_t *text, size_t len) + DWORD out; + int ret; + ++#if defined (WINAPI_FAMILY_PARTITION) && !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) ++ // disabled for UWP as there's no alternative: ++ // https://docs.microsoft.com/en-us/uwp/win32-and-com/alternatives-to-windows-apis-uwp ++#else + do { + if (stream == stdout) { + HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE); +@@ -197,6 +209,7 @@ static int wprint_console(FILE *stream, const wchar_t *text, size_t len) + return out; + } + } while(0); ++#endif + + ret = fputws(text, stream); + if (ret < 0) diff --git a/ports/libharu/CONTROL b/ports/libharu/CONTROL index 4ca6f8c26..623628ab8 100644 --- a/ports/libharu/CONTROL +++ b/ports/libharu/CONTROL @@ -1,4 +1,4 @@ Source: libharu -Version: 2017-08-15-d84867ebf9f-2 +Version: 2017-08-15-d84867ebf9f-4 Description: libharu - free PDF library -Build-Depends: zlib,libpng +Build-Depends: zlib, libpng diff --git a/ports/libharu/portfile.cmake b/ports/libharu/portfile.cmake index a1ae49816..c8e9250b9 100644 --- a/ports/libharu/portfile.cmake +++ b/ports/libharu/portfile.cmake @@ -7,52 +7,50 @@ vcpkg_from_github( HEAD_REF master ) +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" LIBHPDF_STATIC) +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "shared" LIBHPDF_SHARED) + vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + -DLIBHPDF_STATIC=${LIBHPDF_STATIC} + -DLIBHPDF_SHARED=${LIBHPDF_SHARED} ) -vcpkg_build_cmake() +vcpkg_install_cmake() -file(GLOB DLLS - "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/*.dll" - "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/Release/*.dll" - "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/*/Release/*.dll" -) -file(GLOB LIBS - "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/*.lib" - "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/Release/*.lib" - "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/*/Release/*.lib" -) -file(GLOB DEBUG_DLLS - "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/*.dll" - "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/Debug/*.dll" - "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/*/Debug/*.dll" -) -file(GLOB DEBUG_LIBS - "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/*.lib" - "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/Debug/*.lib" - "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/*/Debug/*.lib" +if(VCPKG_LIBRARY_LINKAGE STREQUAL static) + file(RENAME ${CURRENT_PACKAGES_DIR}/lib/libhpdfs.lib ${CURRENT_PACKAGES_DIR}/lib/libhpdf.lib) + file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/libhpdfsd.lib ${CURRENT_PACKAGES_DIR}/debug/lib/libhpdfd.lib) +endif() + +file(REMOVE_RECURSE + ${CURRENT_PACKAGES_DIR}/debug/include + ${CURRENT_PACKAGES_DIR}/debug/README + ${CURRENT_PACKAGES_DIR}/debug/CHANGES + ${CURRENT_PACKAGES_DIR}/debug/INSTALL + ${CURRENT_PACKAGES_DIR}/README + ${CURRENT_PACKAGES_DIR}/CHANGES + ${CURRENT_PACKAGES_DIR}/INSTALL ) -file(GLOB HEADERS "${SOURCE_PATH}/include/*.h" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/include/*.h") -if(DLLS) - file(INSTALL ${DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/bin) +file(READ "${CURRENT_PACKAGES_DIR}/include/hpdf.h" _contents) +if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + string(REPLACE "#ifdef HPDF_DLL\n" "#if 1\n" _contents "${_contents}") +else() + string(REPLACE "#ifdef HPDF_DLL\n" "#if 0\n" _contents "${_contents}") endif() -file(INSTALL ${LIBS} DESTINATION ${CURRENT_PACKAGES_DIR}/lib) +file(WRITE "${CURRENT_PACKAGES_DIR}/include/hpdf.h" "${_contents}") -if(DEBUG_DLLS) - file(INSTALL ${DEBUG_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) +file(READ "${CURRENT_PACKAGES_DIR}/include/hpdf_types.h" _contents) +if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + string(REPLACE "#ifdef HPDF_DLL\n" "#if 1\n" _contents "${_contents}") +else() + string(REPLACE "#ifdef HPDF_DLL\n" "#if 0\n" _contents "${_contents}") endif() -file(INSTALL ${DEBUG_LIBS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) - -file(INSTALL ${HEADERS} DESTINATION ${CURRENT_PACKAGES_DIR}/include) +file(WRITE "${CURRENT_PACKAGES_DIR}/include/hpdf_types.h" "${_contents}") file(INSTALL ${SOURCE_PATH}/LICENCE DESTINATION ${CURRENT_PACKAGES_DIR}/share/libharu RENAME copyright) -if(VCPKG_LIBRARY_LINKAGE STREQUAL static) - file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin) - file(RENAME ${CURRENT_PACKAGES_DIR}/lib/libhpdfs.lib ${CURRENT_PACKAGES_DIR}/lib/libhpdf.lib) - file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/libhpdfsd.lib ${CURRENT_PACKAGES_DIR}/debug/lib/libhpdfd.lib) -endif() - vcpkg_copy_pdbs() diff --git a/ports/libiconv/0002-Config-for-MSVC.patch b/ports/libiconv/0002-Config-for-MSVC.patch index 8ce2f683f..0c90e50ef 100644 --- a/ports/libiconv/0002-Config-for-MSVC.patch +++ b/ports/libiconv/0002-Config-for-MSVC.patch @@ -1,57 +1,3 @@ -diff --git "a/config.h.in" "b/config.h.in" -index 207e487..56501ed 100644 ---- "a/config.h.in" -+++ "b/config.h.in" -@@ -27,7 +27,7 @@ - #undef DOUBLE_SLASH_IS_DISTINCT_ROOT - - /* Define as good substitute value for EILSEQ. */ --#undef EILSEQ -+//#undef EILSEQ - - /* Define to 1 to enable a few rarely used encodings. */ - #undef ENABLE_EXTRA -@@ -207,10 +207,10 @@ - #undef HAVE_MACH_O_DYLD_H - - /* Define to 1 if you have the `mbrtowc' function. */ --#undef HAVE_MBRTOWC -+#define HAVE_MBRTOWC 1 - - /* Define to 1 if you have the `mbsinit' function. */ --#undef HAVE_MBSINIT -+#define HAVE_MBSINIT 1 - - /* Define to 1 if <wchar.h> declares mbstate_t. */ - #undef HAVE_MBSTATE_T -@@ -665,7 +665,7 @@ - #undef HAVE_WCHAR_T - - /* Define to 1 if you have the `wcrtomb' function. */ --#undef HAVE_WCRTOMB -+#define HAVE_WCRTOMB 1 - - /* Define to 1 if you have the <winsock2.h> header file. */ - #undef HAVE_WINSOCK2_H -@@ -683,7 +683,7 @@ - #undef HAVE__NSGETEXECUTABLEPATH - - /* Define as const if the declaration of iconv() needs const. */ --#undef ICONV_CONST -+#define ICONV_CONST const - - /* Define to the value of ${prefix}, as a string. */ - #undef INSTALLPREFIX -@@ -787,7 +787,7 @@ - #undef WINT_T_SUFFIX - - /* Define if the machine's byte ordering is little endian. */ --#undef WORDS_LITTLEENDIAN -+#define WORDS_LITTLEENDIAN 1 - - /* Define to 1 if on MINIX. */ - #undef _MINIX - diff --git "a/lib/loop_wchar.h" "b/lib/loop_wchar.h" index 6dc011b..158ccdd 100644 --- "a/lib/loop_wchar.h" diff --git a/ports/libiconv/CMakeLists.txt b/ports/libiconv/CMakeLists.txt index 0d2a2a4d3..be42843e3 100644 --- a/ports/libiconv/CMakeLists.txt +++ b/ports/libiconv/CMakeLists.txt @@ -1,20 +1,5 @@ -## -## CMake support for libiconv -## based on the work here: https://github.com/vovythevov/libiconv-cmake -## - cmake_minimum_required(VERSION 3.0.0) -project(Libiconv) - -# -# Options -# - -# Config file -configure_file( - ${Libiconv_SOURCE_DIR}/config.h.in - ${Libiconv_BINARY_DIR}/config.h -) +project(libiconv C) if(BUILD_SHARED_LIBS) set(LIBICONV_DYNAMIC "1 /*LIBICONV_DYNAMIC*/") @@ -26,59 +11,37 @@ set(USE_MBSTATE_T "0 /*USE_MBSTATE_T*/") set(BROKEN_WCHAR_H "0 /*BROKEN_WCHAR_H*/") set(HAVE_VISIBILITY "0 /*HAVE_VISIBILITY*/") -include_directories(${Libiconv_SOURCE_DIR} ${Libiconv_BINARY_DIR}) - -# -# Build libcharset -# -set(libname libcharset) -set(libcharset_source_dir ${Libiconv_SOURCE_DIR}/libcharset) - -add_definitions(-DLIBDIR) - -configure_file( - ${Libiconv_SOURCE_DIR}/libcharset/include/localcharset.h.build.in - ${Libiconv_BINARY_DIR}/localcharset.h -) - -set(${libname}_sources - ${libcharset_source_dir}/lib/localcharset.c - ${Libiconv_BINARY_DIR}/localcharset.h -) +configure_file(config.h.in config.h) +file(READ "${CMAKE_CURRENT_BINARY_DIR}/config.h" _contents) +string(REPLACE "#undef HAVE_WORKING_O_NOFOLLOW" "#define HAVE_WORKING_O_NOFOLLOW 0" _contents "${_contents}") +string(REPLACE "#undef HAVE_MBRTOWC" "#define HAVE_MBRTOWC 1" _contents "${_contents}") +string(REPLACE "#undef HAVE_MBSINIT" "#define HAVE_MBSINIT 1" _contents "${_contents}") +string(REPLACE "#undef HAVE_WCRTOMB" "#define HAVE_WCRTOMB 1" _contents "${_contents}") +string(REPLACE "#undef ICONV_CONST" "#define ICONV_CONST const" _contents "${_contents}") +string(REPLACE "#undef EILSEQ" "" _contents "${_contents}") +string(REPLACE "#undef WORDS_LITTLEENDIAN" "#define WORDS_LITTLEENDIAN 1" _contents "${_contents}") +file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/config.h" "${_contents}") -add_library(${libname} ${${libname}_sources}) -list(APPEND Libiconv_TARGETS ${libname}) -list(APPEND Libiconv_headers ${Libiconv_BINARY_DIR}/localcharset.h) +configure_file(libcharset/include/localcharset.h.build.in localcharset.h) +configure_file(include/iconv.h.build.in iconv.h) -# -# Build libiconv -# -set(libname libiconv) +include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}) -add_definitions(-D_CRT_SECURE_NO_WARNINGS) +add_definitions(-DLIBDIR -D_CRT_SECURE_NO_WARNINGS) -configure_file( - ${Libiconv_SOURCE_DIR}/include/iconv.h.build.in - ${Libiconv_BINARY_DIR}/iconv.h - ) +add_library(libcharset libcharset/lib/localcharset.c) -set(${libname}_sources - ${Libiconv_SOURCE_DIR}/lib/iconv.c - ${Libiconv_BINARY_DIR}/iconv.h -) - -add_library(${libname} ${${libname}_sources}) -target_link_libraries(${libname} libcharset) -list(APPEND Libiconv_TARGETS ${libname}) -list(APPEND Libiconv_headers ${Libiconv_BINARY_DIR}/iconv.h) +add_library(libiconv lib/iconv.c) +target_link_libraries(libiconv libcharset) -# -# Export targets -# -install(TARGETS ${Libiconv_TARGETS} +install(TARGETS libcharset libiconv RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) -install(FILES ${Libiconv_headers} DESTINATION include) +install(FILES + ${CMAKE_CURRENT_BINARY_DIR}/iconv.h + ${CMAKE_CURRENT_BINARY_DIR}/localcharset.h + DESTINATION include +) diff --git a/ports/libiconv/CONTROL b/ports/libiconv/CONTROL index 851c8dd01..980763980 100644 --- a/ports/libiconv/CONTROL +++ b/ports/libiconv/CONTROL @@ -1,3 +1,3 @@ Source: libiconv -Version: 1.14-1 +Version: 1.15 Description: GNU Unicode text conversion diff --git a/ports/libiconv/portfile.cmake b/ports/libiconv/portfile.cmake index 46bd2f9e9..a79d7c074 100644 --- a/ports/libiconv/portfile.cmake +++ b/ports/libiconv/portfile.cmake @@ -1,9 +1,9 @@ include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libiconv-1.14) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libiconv-1.15) vcpkg_download_distfile(ARCHIVE - URLS "https://ftp.gnu.org/gnu/libiconv/libiconv-1.14.tar.gz" - FILENAME "libiconv-1.14.tar.gz" - SHA512 b96774fefc4fa1d07948fcc667027701373c34ebf9c4101000428e048addd85a5bb5e05e59f80eb783a3054a3a8a3c0da909450053275bbbf3ffde511eb3f387 + URLS "https://ftp.gnu.org/gnu/libiconv/libiconv-1.15.tar.gz" + FILENAME "libiconv-1.15.tar.gz" + SHA512 1233fe3ca09341b53354fd4bfe342a7589181145a1232c9919583a8c9979636855839049f3406f253a9d9829908816bb71fd6d34dd544ba290d6f04251376b1a ) vcpkg_extract_source_archive(${ARCHIVE}) @@ -19,6 +19,7 @@ vcpkg_apply_patches( vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA ) vcpkg_install_cmake() diff --git a/ports/libjpeg-turbo/CONTROL b/ports/libjpeg-turbo/CONTROL index bf642bd1b..d63d15db9 100644 --- a/ports/libjpeg-turbo/CONTROL +++ b/ports/libjpeg-turbo/CONTROL @@ -1,3 +1,3 @@ Source: libjpeg-turbo -Version: 1.5.2-1 +Version: 1.5.2-2 Description: libjpeg-turbo is a JPEG image codec that uses SIMD instructions (MMX, SSE2, NEON, AltiVec) to accelerate baseline JPEG compression and decompression on x86, x86-64, ARM, and PowerPC systems. diff --git a/ports/libjpeg-turbo/portfile.cmake b/ports/libjpeg-turbo/portfile.cmake index a5d09fda2..1d45087b0 100644 --- a/ports/libjpeg-turbo/portfile.cmake +++ b/ports/libjpeg-turbo/portfile.cmake @@ -16,13 +16,9 @@ vcpkg_find_acquire_program(NASM) get_filename_component(NASM_EXE_PATH ${NASM} DIRECTORY) set(ENV{PATH} "$ENV{PATH};${NASM_EXE_PATH}") -if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") - set(ENABLE_STATIC OFF) - set(ENABLE_SHARED ON) -else() - set(ENABLE_STATIC ON) - set(ENABLE_SHARED OFF) -endif() +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" ENABLE_SHARED) +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" ENABLE_STATIC) +string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "dynamic" WITH_CRT_DLL) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") set(LIBJPEGTURBO_SIMD -DWITH_SIMD=OFF) @@ -36,6 +32,7 @@ vcpkg_configure_cmake( -DENABLE_SHARED=${ENABLE_SHARED} -DENABLE_EXECUTABLES=OFF -DINSTALL_DOCS=OFF + -DWITH_CRT_DLL=${WITH_CRT_DLL} ${LIBJPEGTURBO_SIMD} OPTIONS_DEBUG -DINSTALL_HEADERS=OFF ) @@ -56,3 +53,4 @@ file(COPY ) file(RENAME ${CURRENT_PACKAGES_DIR}/share/libjpeg-turbo/LICENSE.md ${CURRENT_PACKAGES_DIR}/share/libjpeg-turbo/copyright) vcpkg_copy_pdbs() +file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) diff --git a/ports/libjpeg-turbo/usage b/ports/libjpeg-turbo/usage new file mode 100644 index 000000000..ccd47717f --- /dev/null +++ b/ports/libjpeg-turbo/usage @@ -0,0 +1,5 @@ +The package libjpeg-turbo is compatible with built-in CMake targets:
+
+ find_package(JPEG REQUIRED)
+ target_link_libraries(main PRIVATE ${JPEG_LIBRARIES})
+ target_include_directories(main PRIVATE ${JPEG_INCLUDE_DIR})
diff --git a/ports/liblzma/portfile.cmake b/ports/liblzma/portfile.cmake index 6185815f4..be7e494ad 100644 --- a/ports/liblzma/portfile.cmake +++ b/ports/liblzma/portfile.cmake @@ -1,3 +1,6 @@ +if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ message(FATAL_ERROR "${PORT} does not currently support UWP")
+endif()
include(vcpkg_common_functions)
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/xz-5.2.3)
diff --git a/ports/libmspack/CMakeLists.txt b/ports/libmspack/CMakeLists.txt new file mode 100644 index 000000000..4591d3e04 --- /dev/null +++ b/ports/libmspack/CMakeLists.txt @@ -0,0 +1,52 @@ +cmake_minimum_required(VERSION 3.8) + +project(libmspack C) + +set(CMAKE_DEBUG_POSTFIX "d") + +add_definitions(-DHAVE_CONFIG_H) + +if(MSVC) + add_definitions(-D_CRT_SECURE_NO_DEPRECATE) + add_definitions(-D_CRT_NONSTDC_NO_DEPRECATE) +endif() + +# List the source files +set(LIB_SRC mspack/cabc.c + mspack/cabd.c + mspack/chmc.c + mspack/chmd.c + mspack/crc32.c + mspack/hlpc.c + mspack/hlpd.c + mspack/kwajc.c + mspack/kwajd.c + mspack/litc.c + mspack/litd.c + mspack/lzssd.c + mspack/lzxc.c + mspack/lzxd.c + mspack/mszipc.c + mspack/mszipd.c + mspack/oabc.c + mspack/oabd.c + mspack/qtmd.c + mspack/system.c + mspack/szddc.c + mspack/szddd.c +) + +if(BUILD_SHARED_LIBS) + set(LIB_DEF libmspack.def) +endif() + +add_library(libmspack ${LIB_SRC} ${LIB_DEF}) + +target_include_directories(libmspack PRIVATE . ./mspack) + +install(TARGETS libmspack + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib) + +install(FILES mspack/mspack.h DESTINATION include) diff --git a/ports/libmspack/CONTROL b/ports/libmspack/CONTROL new file mode 100644 index 000000000..b881f614f --- /dev/null +++ b/ports/libmspack/CONTROL @@ -0,0 +1,4 @@ +Source: libmspack +Version: 0.6 +Build-Depends: +Description: libmspack is a portable library for some loosely related Microsoft compression formats. diff --git a/ports/libmspack/config.h b/ports/libmspack/config.h new file mode 100644 index 000000000..ebe95831c --- /dev/null +++ b/ports/libmspack/config.h @@ -0,0 +1,8 @@ +#define HAVE_LIMITS_H 1 +#define HAVE_INTTYPES_H 1 +#define HAVE_STRING_H 1 +#define HAVE_CTYPE_H 1 + +#define HAVE_MEMCMP 1 +#define HAVE_TOWLOWER 1 +#define HAVE_TOLOWER 1 diff --git a/ports/libmspack/libmspack.def b/ports/libmspack/libmspack.def new file mode 100644 index 000000000..6a1a43d75 --- /dev/null +++ b/ports/libmspack/libmspack.def @@ -0,0 +1,32 @@ +EXPORTS + +mspack_create_cab_compressor +mspack_create_chm_compressor +mspack_create_lit_compressor +mspack_create_hlp_compressor +mspack_create_szdd_compressor +mspack_create_kwaj_compressor +mspack_create_oab_compressor + +mspack_create_cab_decompressor +mspack_create_chm_decompressor +mspack_create_lit_decompressor +mspack_create_hlp_decompressor +mspack_create_szdd_decompressor +mspack_create_kwaj_decompressor +mspack_create_oab_decompressor + +mspack_destroy_cab_compressor +mspack_destroy_cab_decompressor +mspack_destroy_chm_compressor +mspack_destroy_chm_decompressor +mspack_destroy_lit_compressor +mspack_destroy_lit_decompressor +mspack_destroy_hlp_compressor +mspack_destroy_hlp_decompressor +mspack_destroy_szdd_compressor +mspack_destroy_szdd_decompressor +mspack_destroy_kwaj_compressor +mspack_destroy_kwaj_decompressor +mspack_destroy_oab_compressor +mspack_destroy_oab_decompressor diff --git a/ports/libmspack/portfile.cmake b/ports/libmspack/portfile.cmake new file mode 100644 index 000000000..fe75e2edd --- /dev/null +++ b/ports/libmspack/portfile.cmake @@ -0,0 +1,30 @@ +include(vcpkg_common_functions) + +set(LIB_NAME libmspack) +set(LIB_VERSION 0.6alpha) +set(LIB_FILENAME ${LIB_NAME}-${LIB_VERSION}.tar.gz) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${LIB_NAME}-${LIB_VERSION}) + +vcpkg_download_distfile(ARCHIVE + URLS "https://www.cabextract.org.uk/libmspack/${LIB_FILENAME}" + FILENAME "${LIB_FILENAME}" + SHA512 7ba4a584d335c2d703628a3c179bc0d323574632357cdfe04622f960dcc4ef970b5739799397b6802d44a312f7ed9d589b4be223facf044bbfdbfd76d9c7405d +) +vcpkg_extract_source_archive(${ARCHIVE}) + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) +file(COPY ${CMAKE_CURRENT_LIST_DIR}/config.h DESTINATION ${SOURCE_PATH}) +file(COPY ${CMAKE_CURRENT_LIST_DIR}/libmspack.def DESTINATION ${SOURCE_PATH}) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} +) + +vcpkg_install_cmake() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +# License and man +file(INSTALL ${SOURCE_PATH}/COPYING.LIB DESTINATION ${CURRENT_PACKAGES_DIR}/share/${LIB_NAME} RENAME copyright) + +vcpkg_copy_pdbs() diff --git a/ports/libmysql/CONTROL b/ports/libmysql/CONTROL index 0c772e04e..8350014e4 100644 --- a/ports/libmysql/CONTROL +++ b/ports/libmysql/CONTROL @@ -1,3 +1,3 @@ -Source: libmysql
-Version: 5.7.17-2
-Description: A MySQL client library for C development.
+Source: libmysql +Version: 5.7.17-3 +Description: A MySQL client library for C development. diff --git a/ports/libmysql/portfile.cmake b/ports/libmysql/portfile.cmake index 81ffdfb98..707d10149 100644 --- a/ports/libmysql/portfile.cmake +++ b/ports/libmysql/portfile.cmake @@ -1,87 +1,88 @@ -if (EXISTS "${CURRENT_INSTALLED_DIR}/include/mysql/mysql.h")
- message(FATAL_ERROR "FATAL ERROR: libmysql and libmariadb are incompatible.")
-endif()
-
-include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/mysql-server-mysql-5.7.17)
-
-vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/mysql/mysql-server/archive/mysql-5.7.17.tar.gz"
- FILENAME "mysql-server-mysql-5.7.17.tar.gz"
- SHA512 31488972e08a6b83f88e6e3f7923aca91e01eac702f4942fdae92e13f66d92ac86c24dfe7a65a001db836c900147d1c3871b36af8cbb281a0e6c555617cac12c
-)
-vcpkg_extract_source_archive(${ARCHIVE})
-
-vcpkg_apply_patches(
- SOURCE_PATH ${SOURCE_PATH}
- PATCHES
- ${CMAKE_CURRENT_LIST_DIR}/boost_and_build.patch
-)
-
-vcpkg_configure_cmake(
- SOURCE_PATH ${SOURCE_PATH}
- OPTIONS
- -DWITHOUT_SERVER=ON
- -DWITH_UNIT_TESTS=OFF
- -DENABLED_PROFILING=OFF
- -DWIX_DIR=OFF
-)
-
-vcpkg_install_cmake()
-
-# delete debug headers
-file(REMOVE_RECURSE
- ${CURRENT_PACKAGES_DIR}/debug/include)
-
-# switch mysql into /mysql
-file(RENAME ${CURRENT_PACKAGES_DIR}/include ${CURRENT_PACKAGES_DIR}/include2)
-file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/include)
-file(RENAME ${CURRENT_PACKAGES_DIR}/include2 ${CURRENT_PACKAGES_DIR}/include/mysql)
-
-## delete useless vcruntime/scripts/bin/msg file
-file(REMOVE_RECURSE
- ${CURRENT_PACKAGES_DIR}/share
- ${CURRENT_PACKAGES_DIR}/debug/share
- ${CURRENT_PACKAGES_DIR}/bin
- ${CURRENT_PACKAGES_DIR}/debug/bin
- ${CURRENT_PACKAGES_DIR}/docs
- ${CURRENT_PACKAGES_DIR}/debug/docs
- ${CURRENT_PACKAGES_DIR}/lib/debug)
-
-# remove misc files
-file(REMOVE
- ${CURRENT_PACKAGES_DIR}/COPYING
- ${CURRENT_PACKAGES_DIR}/README
- ${CURRENT_PACKAGES_DIR}/debug/COPYING
- ${CURRENT_PACKAGES_DIR}/debug/README)
-
-# remove not-related libs
-file (REMOVE
- ${CURRENT_PACKAGES_DIR}/lib/mysqlservices.lib
- ${CURRENT_PACKAGES_DIR}/debug/lib/mysqlservices.lib)
-
-if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
- file(REMOVE
- ${CURRENT_PACKAGES_DIR}/lib/libmysql.lib
- ${CURRENT_PACKAGES_DIR}/lib/libmysql.dll
- ${CURRENT_PACKAGES_DIR}/lib/libmysql.pdb
- ${CURRENT_PACKAGES_DIR}/debug/lib/libmysql.lib
- ${CURRENT_PACKAGES_DIR}/debug/lib/libmysql.dll
- ${CURRENT_PACKAGES_DIR}/debug/lib/libmysql.pdb)
-else()
- file(REMOVE
- ${CURRENT_PACKAGES_DIR}/lib/mysqlclient.lib
- ${CURRENT_PACKAGES_DIR}/debug/lib/mysqlclient.lib)
-
- # correct the dll directory
- file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/bin)
- file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/bin)
- file (RENAME ${CURRENT_PACKAGES_DIR}/lib/libmysql.dll ${CURRENT_PACKAGES_DIR}/bin/libmysql.dll)
- file (RENAME ${CURRENT_PACKAGES_DIR}/lib/libmysql.pdb ${CURRENT_PACKAGES_DIR}/bin/libmysql.pdb)
- file (RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/libmysql.dll ${CURRENT_PACKAGES_DIR}/debug/bin/libmysql.dll)
- file (RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/libmysql.pdb ${CURRENT_PACKAGES_DIR}/debug/bin/libmysql.pdb)
-endif()
-
-# copy license
-file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/libmysql)
+if (EXISTS "${CURRENT_INSTALLED_DIR}/include/mysql/mysql.h") + message(FATAL_ERROR "FATAL ERROR: libmysql and libmariadb are incompatible.") +endif() + +include(vcpkg_common_functions) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/mysql-server-mysql-5.7.17) + +vcpkg_download_distfile(ARCHIVE + URLS "https://github.com/mysql/mysql-server/archive/mysql-5.7.17.tar.gz" + FILENAME "mysql-server-mysql-5.7.17.tar.gz" + SHA512 31488972e08a6b83f88e6e3f7923aca91e01eac702f4942fdae92e13f66d92ac86c24dfe7a65a001db836c900147d1c3871b36af8cbb281a0e6c555617cac12c +) +vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES + ${CMAKE_CURRENT_LIST_DIR}/boost_and_build.patch +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + OPTIONS + -DWITHOUT_SERVER=ON + -DWITH_UNIT_TESTS=OFF + -DENABLED_PROFILING=OFF + -DWIX_DIR=OFF + -DWINDOWS_RUNTIME_MD=ON # Note: this disables _replacement_ of /MD with /MT. If /MT is specified, it will be preserved. +) + +vcpkg_install_cmake() + +# delete debug headers +file(REMOVE_RECURSE + ${CURRENT_PACKAGES_DIR}/debug/include) + +# switch mysql into /mysql +file(RENAME ${CURRENT_PACKAGES_DIR}/include ${CURRENT_PACKAGES_DIR}/include2) +file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/include) +file(RENAME ${CURRENT_PACKAGES_DIR}/include2 ${CURRENT_PACKAGES_DIR}/include/mysql) + +## delete useless vcruntime/scripts/bin/msg file +file(REMOVE_RECURSE + ${CURRENT_PACKAGES_DIR}/share + ${CURRENT_PACKAGES_DIR}/debug/share + ${CURRENT_PACKAGES_DIR}/bin + ${CURRENT_PACKAGES_DIR}/debug/bin + ${CURRENT_PACKAGES_DIR}/docs + ${CURRENT_PACKAGES_DIR}/debug/docs + ${CURRENT_PACKAGES_DIR}/lib/debug) + +# remove misc files +file(REMOVE + ${CURRENT_PACKAGES_DIR}/COPYING + ${CURRENT_PACKAGES_DIR}/README + ${CURRENT_PACKAGES_DIR}/debug/COPYING + ${CURRENT_PACKAGES_DIR}/debug/README) + +# remove not-related libs +file (REMOVE + ${CURRENT_PACKAGES_DIR}/lib/mysqlservices.lib + ${CURRENT_PACKAGES_DIR}/debug/lib/mysqlservices.lib) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + file(REMOVE + ${CURRENT_PACKAGES_DIR}/lib/libmysql.lib + ${CURRENT_PACKAGES_DIR}/lib/libmysql.dll + ${CURRENT_PACKAGES_DIR}/lib/libmysql.pdb + ${CURRENT_PACKAGES_DIR}/debug/lib/libmysql.lib + ${CURRENT_PACKAGES_DIR}/debug/lib/libmysql.dll + ${CURRENT_PACKAGES_DIR}/debug/lib/libmysql.pdb) +else() + file(REMOVE + ${CURRENT_PACKAGES_DIR}/lib/mysqlclient.lib + ${CURRENT_PACKAGES_DIR}/debug/lib/mysqlclient.lib) + + # correct the dll directory + file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/bin) + file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/bin) + file (RENAME ${CURRENT_PACKAGES_DIR}/lib/libmysql.dll ${CURRENT_PACKAGES_DIR}/bin/libmysql.dll) + file (RENAME ${CURRENT_PACKAGES_DIR}/lib/libmysql.pdb ${CURRENT_PACKAGES_DIR}/bin/libmysql.pdb) + file (RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/libmysql.dll ${CURRENT_PACKAGES_DIR}/debug/bin/libmysql.dll) + file (RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/libmysql.pdb ${CURRENT_PACKAGES_DIR}/debug/bin/libmysql.pdb) +endif() + +# copy license +file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/libmysql) file(RENAME ${CURRENT_PACKAGES_DIR}/share/libmysql/COPYING ${CURRENT_PACKAGES_DIR}/share/libmysql/copyright)
\ No newline at end of file diff --git a/ports/libpng/CONTROL b/ports/libpng/CONTROL index 7899cbc8e..89ea07065 100644 --- a/ports/libpng/CONTROL +++ b/ports/libpng/CONTROL @@ -1,4 +1,4 @@ Source: libpng -Version: 1.6.32-1 +Version: 1.6.34-2 Build-Depends: zlib Description: libpng is a library implementing an interface for reading and writing PNG (Portable Network Graphics) format files. diff --git a/ports/libpng/portfile.cmake b/ports/libpng/portfile.cmake index e012bb6dc..4273846e9 100644 --- a/ports/libpng/portfile.cmake +++ b/ports/libpng/portfile.cmake @@ -1,13 +1,13 @@ include(vcpkg_common_functions) -set(LIBPNG_VERSION 1.6.32) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libpng-${LIBPNG_VERSION}) -vcpkg_download_distfile(ARCHIVE - URLS "https://downloads.sourceforge.net/project/libpng/libpng16/${LIBPNG_VERSION}/libpng-${LIBPNG_VERSION}.tar.xz" - FILENAME "libpng-${LIBPNG_VERSION}.tar.xz" - SHA512 24cf4d38dc08d1db7721fc580d8bf6cee9a105afcea32f1245b7bb3727c8a8645ad733a24534782ef5dfb0d4315a5fd6b0eee9e7f0704e0c635350f80c19a708 +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO glennrp/libpng + REF v1.6.34 + SHA512 23b6112a1d16a34c8037d5c5812944d4385fc96ed819a22172776bdd5acd3a34e55f073b46087b77d1c12cecc68f9e8ba7754c86b5ab6ed3016063e1c795de7a + HEAD_REF master ) -vcpkg_extract_source_archive(${ARCHIVE}) + vcpkg_apply_patches( SOURCE_PATH ${SOURCE_PATH} PATCHES @@ -22,13 +22,6 @@ else() set(PNG_SHARED_LIBS OFF) endif() -# Libpng's cmake uses if(${CMAKE_SYSTEM_PROCESSOR} ....) which performs double-evaluation and breaks if the variable is not defined. -if(VCPKG_TARGET_ARCHITECTURE STREQUAL x64) - set(CMAKE_SYSTEM_PROCESSOR AMD64) -else() - set(CMAKE_SYSTEM_PROCESSOR ${VCPKG_TARGET_ARCHITECTURE}) -endif() - vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA @@ -39,7 +32,6 @@ vcpkg_configure_cmake( -DSKIP_INSTALL_PROGRAMS=ON -DSKIP_INSTALL_EXECUTABLES=ON -DSKIP_INSTALL_FILES=ON - -DCMAKE_SYSTEM_PROCESSOR=${CMAKE_SYSTEM_PROCESSOR} OPTIONS_DEBUG -DSKIP_INSTALL_HEADERS=ON ) @@ -57,3 +49,5 @@ file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/libpn file(RENAME ${CURRENT_PACKAGES_DIR}/share/libpng/LICENSE ${CURRENT_PACKAGES_DIR}/share/libpng/copyright) vcpkg_copy_pdbs() + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) diff --git a/ports/libpng/usage b/ports/libpng/usage new file mode 100644 index 000000000..19203399c --- /dev/null +++ b/ports/libpng/usage @@ -0,0 +1,4 @@ +The package libpng is compatible with built-in CMake targets:
+
+ find_package(PNG REQUIRED)
+ target_link_libraries(main PRIVATE PNG::PNG)
diff --git a/ports/librabbitmq/CONTROL b/ports/librabbitmq/CONTROL new file mode 100644 index 000000000..19b131f82 --- /dev/null +++ b/ports/librabbitmq/CONTROL @@ -0,0 +1,4 @@ +Source: librabbitmq +Version: 0.8.0 +Build-Depends: openssl +Description: A C-language AMQP client library for use with v2.0+ of the RabbitMQ broker. diff --git a/ports/librabbitmq/portfile.cmake b/ports/librabbitmq/portfile.cmake new file mode 100644 index 000000000..cfdcf9527 --- /dev/null +++ b/ports/librabbitmq/portfile.cmake @@ -0,0 +1,29 @@ +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO alanxz/rabbitmq-c + REF v0.8.0 + SHA512 54e1c98a6b0eb7de848c9fac13dcde6455a6f71acee9e62a96c171f0e3e1cf860a70837f07b633d1a55b1ffd3d33ed7186b52495fa4c6e755b69a7e728eb9f1a + HEAD_REF master +) + +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC) +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + OPTIONS + -DBUILD_EXAMPLES=OFF + -DBUILD_SHARED_LIBS=${BUILD_SHARED} + -DBUILD_STATIC_LIBS=${BUILD_STATIC} + -DBUILD_TESTS=OFF + -DBUILD_TOOLS=OFF +) + +vcpkg_install_cmake() + +vcpkg_copy_pdbs() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig ${CURRENT_PACKAGES_DIR}/lib/pkgconfig) +file(INSTALL ${SOURCE_PATH}/LICENSE-MIT DESTINATION ${CURRENT_PACKAGES_DIR}/share/librabbitmq RENAME copyright) diff --git a/ports/libraw/CONTROL b/ports/libraw/CONTROL index 4860b0a6b..e49e79f66 100644 --- a/ports/libraw/CONTROL +++ b/ports/libraw/CONTROL @@ -1,4 +1,4 @@ Source: libraw -Version: 0.18.2-4 +Version: 0.18.2-5 Build-Depends: lcms, jasper Description: raw image decoder library diff --git a/ports/libraw/portfile.cmake b/ports/libraw/portfile.cmake index 797ca5aa0..ee3c1ae26 100644 --- a/ports/libraw/portfile.cmake +++ b/ports/libraw/portfile.cmake @@ -26,6 +26,7 @@ vcpkg_configure_cmake( PREFER_NINJA OPTIONS -DINSTALL_CMAKE_MODULE_PATH=${CURRENT_PACKAGES_DIR}/share/libraw + -DCMAKE_DEBUG_POSTFIX=d ) vcpkg_install_cmake() @@ -40,9 +41,9 @@ file(WRITE ${CURRENT_PACKAGES_DIR}/include/libraw/libraw_types.h "${LIBRAW_H}") # Rename thread-safe version to be "raw.lib". This is unfortunately needed # because otherwise libraries that build on top of libraw have to choose. -file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/raw.lib ${CURRENT_PACKAGES_DIR}/debug/lib/raw.lib) +file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/raw.lib ${CURRENT_PACKAGES_DIR}/debug/lib/rawd.lib) file(RENAME ${CURRENT_PACKAGES_DIR}/lib/raw_r.lib ${CURRENT_PACKAGES_DIR}/lib/raw.lib) -file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/raw_r.lib ${CURRENT_PACKAGES_DIR}/debug/lib/raw.lib) +file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/raw_rd.lib ${CURRENT_PACKAGES_DIR}/debug/lib/rawd.lib) # Cleanup file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) @@ -53,7 +54,7 @@ file(REMOVE ${DEBUG_EXECUTABLES}) if(VCPKG_LIBRARY_LINKAGE STREQUAL static) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin) else() - file(REMOVE ${CURRENT_PACKAGES_DIR}/bin/raw.dll ${CURRENT_PACKAGES_DIR}/debug/bin/raw.dll) + file(REMOVE ${CURRENT_PACKAGES_DIR}/bin/raw.dll ${CURRENT_PACKAGES_DIR}/debug/bin/rawd.dll) endif() # Rename cmake module into a config in order to allow more flexible lookup rules diff --git a/ports/libsigcpp/CMakeLists.txt b/ports/libsigcpp/CMakeLists.txt index 30c3c610e..7a669a24e 100644 --- a/ports/libsigcpp/CMakeLists.txt +++ b/ports/libsigcpp/CMakeLists.txt @@ -5,14 +5,14 @@ set(SIGCPP_API_VERSION 2.0) add_definitions(-DSIGC_BUILD) -include_directories(./MSVC_Net2017) # config file for windows is there +include_directories(./MSVC_Net2013) # config file for windows is there include_directories(.) - set(SICGPP_SOURCES sigc++/connection.cc sigc++/signal_base.cc sigc++/trackable.cc + sigc++/adaptors/lambda/lambda.cc sigc++/functors/slot_base.cc) add_library(sigc ${SICGPP_SOURCES}) @@ -20,13 +20,12 @@ set_target_properties(sigc PROPERTIES OUTPUT_NAME sigc-${SIGCPP_API_VERSION}) install(TARGETS sigc RUNTIME DESTINATION bin ARCHIVE DESTINATION lib) if(NOT SIGCPP_SKIP_HEADERS) - install(FILES MSVC_Net2017/sigc++config.h DESTINATION include) + install(FILES MSVC_Net2013/sigc++config.h DESTINATION include) install(FILES sigc++/sigc++.h DESTINATION include/sigc++) install(FILES sigc++/bind.h DESTINATION include/sigc++) install(FILES sigc++/bind_return.h DESTINATION include/sigc++) install(FILES sigc++/connection.h DESTINATION include/sigc++) install(FILES sigc++/limit_reference.h DESTINATION include/sigc++) - install(FILES sigc++/member_method_trait.h DESTINATION include/sigc++) install(FILES sigc++/reference_wrapper.h DESTINATION include/sigc++) install(FILES sigc++/retype_return.h DESTINATION include/sigc++) install(FILES sigc++/signal.h DESTINATION include/sigc++) @@ -35,30 +34,24 @@ if(NOT SIGCPP_SKIP_HEADERS) install(FILES sigc++/trackable.h DESTINATION include/sigc++) install(FILES sigc++/type_traits.h DESTINATION include/sigc++) install(FILES sigc++/visit_each.h DESTINATION include/sigc++) - install(FILES sigc++/weak_raw_ptr.h DESTINATION include/sigc++) install(FILES sigc++/adaptors/adaptors.h DESTINATION include/sigc++/adaptors) - install(FILES sigc++/adaptors/adaptor_base.h DESTINATION include/sigc++/adaptors) install(FILES sigc++/adaptors/adaptor_trait.h DESTINATION include/sigc++/adaptors) - install(FILES sigc++/adaptors/adapts.h DESTINATION include/sigc++/adaptors) install(FILES sigc++/adaptors/bind.h DESTINATION include/sigc++/adaptors) install(FILES sigc++/adaptors/bind_return.h DESTINATION include/sigc++/adaptors) install(FILES sigc++/adaptors/bound_argument.h DESTINATION include/sigc++/adaptors) install(FILES sigc++/adaptors/compose.h DESTINATION include/sigc++/adaptors) + install(FILES sigc++/adaptors/deduce_result_type.h DESTINATION include/sigc++/adaptors) install(FILES sigc++/adaptors/exception_catch.h DESTINATION include/sigc++/adaptors) install(FILES sigc++/adaptors/hide.h DESTINATION include/sigc++/adaptors) install(FILES sigc++/adaptors/retype.h DESTINATION include/sigc++/adaptors) install(FILES sigc++/adaptors/retype_return.h DESTINATION include/sigc++/adaptors) install(FILES sigc++/adaptors/track_obj.h DESTINATION include/sigc++/adaptors) - install(FILES sigc++/adaptors/tuple_visitor_visit_each.h DESTINATION include/sigc++/adaptors) + install(FILES sigc++/adaptors/lambda/base.h DESTINATION include/sigc++/adaptors/lambda) + install(FILES sigc++/adaptors/lambda/select.h DESTINATION include/sigc++/adaptors/lambda) install(FILES sigc++/functors/functors.h DESTINATION include/sigc++/functors) install(FILES sigc++/functors/functor_trait.h DESTINATION include/sigc++/functors) install(FILES sigc++/functors/mem_fun.h DESTINATION include/sigc++/functors) install(FILES sigc++/functors/ptr_fun.h DESTINATION include/sigc++/functors) install(FILES sigc++/functors/slot.h DESTINATION include/sigc++/functors) install(FILES sigc++/functors/slot_base.h DESTINATION include/sigc++/functors) - install(FILES sigc++/tuple-utils/tuple_cdr.h DESTINATION include/sigc++/tuple-utils) - install(FILES sigc++/tuple-utils/tuple_end.h DESTINATION include/sigc++/tuple-utils) - install(FILES sigc++/tuple-utils/tuple_for_each.h DESTINATION include/sigc++/tuple-utils) - install(FILES sigc++/tuple-utils/tuple_start.h DESTINATION include/sigc++/tuple-utils) - install(FILES sigc++/tuple-utils/tuple_transform_each.h DESTINATION include/sigc++/tuple-utils) endif() diff --git a/ports/libsigcpp/CONTROL b/ports/libsigcpp/CONTROL index 97667dd7d..02b2e4b83 100644 --- a/ports/libsigcpp/CONTROL +++ b/ports/libsigcpp/CONTROL @@ -1,3 +1,3 @@ Source: libsigcpp
-Version: 2.99-1
+Version: 2.10
Description: Typesafe callback framework for C++
diff --git a/ports/libsigcpp/portfile.cmake b/ports/libsigcpp/portfile.cmake index 7525c1aae..c98a26717 100644 --- a/ports/libsigcpp/portfile.cmake +++ b/ports/libsigcpp/portfile.cmake @@ -1,10 +1,10 @@ include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libsigc++-2.99.9)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libsigc++-2.10.0)
vcpkg_download_distfile(ARCHIVE
- URLS "http://ftp.gnome.org/pub/GNOME/sources/libsigc++/2.99/libsigc++-2.99.9.tar.xz"
- FILENAME "libsigc++-2.99.9.tar.xz"
- SHA512 3e8f8176a4618938a16b2367466415aff8ec10d83ef84de8973373a63fc0b9708d14115ad5c039c81b570385b205944651849a68e618c37c171cd748dd5b2403)
+ URLS "http://ftp.gnome.org/pub/GNOME/sources/libsigc++/2.10/libsigc++-2.10.0.tar.xz"
+ FILENAME "libsigc++-2.10.0.tar.xz"
+ SHA512 5b96df21d6bd6ba41520c7219e77695a86aabc60b7259262c7a9f4b8475ce0e2fd8dc37bcf7c17e24e818ff28c262d682b964c83e215b51bdbe000f3f58794ae)
vcpkg_extract_source_archive(${ARCHIVE})
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
diff --git a/ports/libsndfile/CONTROL b/ports/libsndfile/CONTROL index 9d3d9b423..70be2ab6c 100644 --- a/ports/libsndfile/CONTROL +++ b/ports/libsndfile/CONTROL @@ -1,4 +1,4 @@ Source: libsndfile -Version: libsndfile-1.0.29-6830c42-1 +Version: 1.0.29-6830c42-2 Description: Library to read, write and manipulate many soundfile types. Authored by Eric de Castro Lopo Build-Depends: libogg, libflac, libvorbis diff --git a/ports/libsndfile/portfile.cmake b/ports/libsndfile/portfile.cmake index ac07f96a0..daa7de3ae 100644 --- a/ports/libsndfile/portfile.cmake +++ b/ports/libsndfile/portfile.cmake @@ -19,6 +19,13 @@ vcpkg_download_distfile(ARCHIVE ) vcpkg_extract_source_archive(${ARCHIVE}) +vcpkg_apply_patches( + SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libsndfile-6830c421899e32f8d413a903a21a9b6cf384d369 + PATCHES + "${CMAKE_CURRENT_LIST_DIR}/uwp-createfile-getfilesize.patch" + "${CMAKE_CURRENT_LIST_DIR}/uwp-createfile-getfilesize-addendum.patch" +) + if (VCPKG_CRT_LINKAGE STREQUAL "dynamic") set(CRT_LIB_STATIC 0) elseif (VCPKG_CRT_LINKAGE STREQUAL "static") diff --git a/ports/libsndfile/uwp-createfile-getfilesize-addendum.patch b/ports/libsndfile/uwp-createfile-getfilesize-addendum.patch new file mode 100644 index 000000000..62e6b1131 --- /dev/null +++ b/ports/libsndfile/uwp-createfile-getfilesize-addendum.patch @@ -0,0 +1,13 @@ +diff --git a/src/file_io.c b/src/file_io.c +index 47351bc..54741c9 100644 +--- a/src/file_io.c ++++ b/src/file_io.c +@@ -799,6 +799,8 @@ psf_open_handle (PSF_FILE * pfile) + + if (handle == INVALID_HANDLE_VALUE) + return NULL; ++ ++ return handle; + #else + if (pfile->use_wchar) + handle = CreateFileW ( diff --git a/ports/libsndfile/uwp-createfile-getfilesize.patch b/ports/libsndfile/uwp-createfile-getfilesize.patch new file mode 100644 index 000000000..0e60cde54 --- /dev/null +++ b/ports/libsndfile/uwp-createfile-getfilesize.patch @@ -0,0 +1,58 @@ +diff --git a/src/file_io.c b/src/file_io.c +index 7cf8f0c..47351bc 100644 +--- a/src/file_io.c ++++ b/src/file_io.c +@@ -787,6 +787,19 @@ psf_open_handle (PSF_FILE * pfile) + return NULL ; + } ; + ++#if defined (WINAPI_FAMILY_PARTITION) && !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) ++ if (!pfile->use_wchar) ++ return NULL; ++ ++ CREATEFILE2_EXTENDED_PARAMETERS cfParams = {0}; ++ cfParams.dwSize = sizeof(CREATEFILE2_EXTENDED_PARAMETERS); ++ cfParams.dwFileAttributes = FILE_ATTRIBUTE_NORMAL; ++ ++ handle = CreateFile2(pfile->path.wc, dwDesiredAccess, dwShareMode, dwCreationDistribution, &cfParams); ++ ++ if (handle == INVALID_HANDLE_VALUE) ++ return NULL; ++#else + if (pfile->use_wchar) + handle = CreateFileW ( + pfile->path.wc, /* pointer to name of the file */ +@@ -812,6 +825,7 @@ psf_open_handle (PSF_FILE * pfile) + return NULL ; + + return handle ; ++#endif + } /* psf_open_handle */ + + /* USE_WINDOWS_API */ static void +@@ -1104,7 +1118,16 @@ psf_is_pipe (SF_PRIVATE *psf) + + /* USE_WINDOWS_API */ sf_count_t + psf_get_filelen_handle (HANDLE handle) +-{ sf_count_t filelen ; ++{ ++#if defined (WINAPI_FAMILY_PARTITION) && !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) ++ LARGE_INTEGER size; ++ ++ if (!GetFileSizeEx(handle, &size) && GetLastError() != NO_ERROR) ++ return (sf_count_t) -1 ; ++ ++ return size.QuadPart; ++#else ++ sf_count_t filelen ; + DWORD dwFileSizeLow, dwFileSizeHigh, dwError = NO_ERROR ; + + dwFileSizeLow = GetFileSize (handle, &dwFileSizeHigh) ; +@@ -1118,6 +1141,7 @@ psf_get_filelen_handle (HANDLE handle) + filelen = dwFileSizeLow + ((__int64) dwFileSizeHigh << 32) ; + + return filelen ; ++#endif + } /* psf_get_filelen_handle */ + + /* USE_WINDOWS_API */ void diff --git a/ports/libsodium/portfile.cmake b/ports/libsodium/portfile.cmake index b2329d248..c781fb1fb 100644 --- a/ports/libsodium/portfile.cmake +++ b/ports/libsodium/portfile.cmake @@ -1,10 +1,9 @@ include(vcpkg_common_functions) set(LIBSODIUM_VERSION 1.0.15) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libsodium-${LIBSODIUM_VERSION}) vcpkg_from_github( - OUT_SOURCE_PATH ${SOURCE_PATH} + OUT_SOURCE_PATH SOURCE_PATH REPO jedisct1/libsodium REF ${LIBSODIUM_VERSION} SHA512 ec497cb0007597efaeae0aecaa7484d6dcc53367607ec3fd28a98c6209f0cdecd5a6f560c15badd3a69b8da7d63676b11fb395ef4ed4da9b80467dbdc5f65a72 @@ -38,19 +37,22 @@ file(INSTALL DESTINATION ${CURRENT_PACKAGES_DIR}/include/sodium ) -file(INSTALL - ${SOURCE_PATH}/Build/${LIBSODIUM_RELEASE_CONFIGURATION}/${BUILD_ARCH}/libsodium.dll - DESTINATION ${CURRENT_PACKAGES_DIR}/bin -) +if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + file(INSTALL + ${SOURCE_PATH}/Build/${LIBSODIUM_RELEASE_CONFIGURATION}/${BUILD_ARCH}/libsodium.dll + DESTINATION ${CURRENT_PACKAGES_DIR}/bin + ) + file(INSTALL + ${SOURCE_PATH}/Build/${LIBSODIUM_DEBUG_CONFIGURATION}/${BUILD_ARCH}/libsodium.dll + DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin + ) +endif() + file(INSTALL ${SOURCE_PATH}/Build/${LIBSODIUM_RELEASE_CONFIGURATION}/${BUILD_ARCH}/libsodium.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib ) file(INSTALL - ${SOURCE_PATH}/Build/${LIBSODIUM_DEBUG_CONFIGURATION}/${BUILD_ARCH}/libsodium.dll - DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin -) -file(INSTALL ${SOURCE_PATH}/Build/${LIBSODIUM_DEBUG_CONFIGURATION}/${BUILD_ARCH}/libsodium.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib ) diff --git a/ports/libssh2/CONTROL b/ports/libssh2/CONTROL index 5c68d2693..d050bf838 100644 --- a/ports/libssh2/CONTROL +++ b/ports/libssh2/CONTROL @@ -1,4 +1,4 @@ Source: libssh2 -Version: 1.8.0-2 +Version: 1.8.0-3 Build-Depends: zlib, openssl Description: The SSH library diff --git a/ports/libssh2/portfile.cmake b/ports/libssh2/portfile.cmake index 2e3ee5009..9e5e5c025 100644 --- a/ports/libssh2/portfile.cmake +++ b/ports/libssh2/portfile.cmake @@ -24,13 +24,13 @@ vcpkg_configure_cmake( vcpkg_install_cmake() file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/cmake) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/pkgconfig) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share) +vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/libssh2) + file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/libssh2 RENAME copyright) vcpkg_copy_pdbs()
\ No newline at end of file diff --git a/ports/libtorrent/CONTROL b/ports/libtorrent/CONTROL index f2618a4ef..e139965df 100644 --- a/ports/libtorrent/CONTROL +++ b/ports/libtorrent/CONTROL @@ -1,4 +1,4 @@ Source: libtorrent -Version: 1.1.4-1 +Version: 1.1.5 Description: An efficient feature complete C++ BitTorrent implementation Build-Depends: boost, openssl diff --git a/ports/libtorrent/portfile.cmake b/ports/libtorrent/portfile.cmake index 6eb49c0b4..97658384e 100644 --- a/ports/libtorrent/portfile.cmake +++ b/ports/libtorrent/portfile.cmake @@ -11,11 +11,11 @@ # include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libtorrent-libtorrent-1_1_4) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libtorrent-libtorrent-1_1_5) vcpkg_download_distfile(ARCHIVE - URLS "https://github.com/arvidn/libtorrent/archive/libtorrent-1_1_4.zip" - FILENAME "libtorrent-1_1_4.zip" - SHA512 fd3b875c9626721db9b3e719ce50deeb6f39a030df1e23dd421d0b142aac9c3bb7bee3a61f0c18bb30f85d4dd6131fe90d6138c09ba598f09230824f8d5a3fb1 + URLS "https://github.com/arvidn/libtorrent/archive/libtorrent-1_1_5.zip" + FILENAME "libtorrent-1_1_5.zip" + SHA512 ebb7c1b08a4b07b4db54050a099950dc61446e2e7fcceb82c5db8e0629c7718c3c8808ee59d5f361ad85c75f7034a33dfcb5ebd619ef0bb9b5ae0cfdd10d01b5 ) vcpkg_extract_source_archive(${ARCHIVE}) diff --git a/ports/libusb/libfreenect2.patch b/ports/libusb/libfreenect2.patch new file mode 100644 index 000000000..2c2b859b0 --- /dev/null +++ b/ports/libusb/libfreenect2.patch @@ -0,0 +1,268 @@ +diff --git a/libusb/os/windows_winusb.c b/libusb/os/windows_winusb.c +index 93668f3..7fdafd6 100644 +--- a/libusb/os/windows_winusb.c ++++ b/libusb/os/windows_winusb.c +@@ -66,6 +66,7 @@ static int winusbx_claim_interface(int sub_api, struct libusb_device_handle *dev + static int winusbx_release_interface(int sub_api, struct libusb_device_handle *dev_handle, int iface); + static int winusbx_submit_control_transfer(int sub_api, struct usbi_transfer *itransfer); + static int winusbx_set_interface_altsetting(int sub_api, struct libusb_device_handle *dev_handle, int iface, int altsetting); ++static int winusbx_submit_iso_transfer(int sub_api, struct usbi_transfer *itransfer); + static int winusbx_submit_bulk_transfer(int sub_api, struct usbi_transfer *itransfer); + static int winusbx_clear_halt(int sub_api, struct libusb_device_handle *dev_handle, unsigned char endpoint); + static int winusbx_abort_transfers(int sub_api, struct usbi_transfer *itransfer); +@@ -1901,6 +1902,10 @@ void windows_clear_transfer_priv(struct usbi_transfer *itransfer) + + usbi_free_fd(&transfer_priv->pollable_fd); + safe_free(transfer_priv->hid_buffer); ++ ++ //TODO this should occur during windows_free_transfer instead ++ safe_free(transfer_priv->iso_context); ++ + // When auto claim is in use, attempt to release the auto-claimed interface + auto_release(itransfer); + } +@@ -2274,7 +2279,7 @@ const struct windows_usb_api_backend usb_api_backend[USB_API_MAX] = { + winusbx_clear_halt, + winusbx_reset_device, + winusbx_submit_bulk_transfer, +- unsupported_submit_iso_transfer, ++ winusbx_submit_iso_transfer, + winusbx_submit_control_transfer, + winusbx_abort_control, + winusbx_abort_transfers, +@@ -2374,6 +2379,8 @@ static int winusbx_init(int sub_api, struct libusb_context *ctx) + WinUSBX_Set(SetPipePolicy); + WinUSBX_Set(SetPowerPolicy); + WinUSBX_Set(WritePipe); ++ WinUSBX_Set(IsoReadPipe); ++ WinUSBX_Set(IsoWritePipe); + if (!native_winusb) + WinUSBX_Set(ResetDevice); + +@@ -2803,6 +2810,100 @@ static int winusbx_set_interface_altsetting(int sub_api, struct libusb_device_ha + return LIBUSB_SUCCESS; + } + ++static int winusbx_submit_iso_transfer(int sub_api, struct usbi_transfer *itransfer) ++{ ++ struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); ++ struct libusb_context *ctx = DEVICE_CTX(transfer->dev_handle->dev); ++ struct windows_transfer_priv *transfer_priv = (struct windows_transfer_priv*)usbi_transfer_get_os_priv(itransfer); ++ struct windows_device_handle_priv *handle_priv = _device_handle_priv(transfer->dev_handle); ++ struct windows_device_priv *priv = _device_priv(transfer->dev_handle->dev); ++ HANDLE winusb_handle; ++ bool ret; ++ int current_interface; ++ struct winfd wfd; ++ int i; ++ uint16_t maxPacketSize; ++ uint32_t offset; ++ size_t ctx_size; ++ ++ CHECK_WINUSBX_AVAILABLE(sub_api); ++ ++ if (sub_api != SUB_API_LIBUSBK && sub_api != SUB_API_LIBUSB0) ++ { ++ //iso only supported on libusbk-based backends ++ return unsupported_submit_iso_transfer(sub_api, itransfer); ++ }; ++ ++ transfer_priv->pollable_fd = INVALID_WINFD; ++ ++ current_interface = interface_by_endpoint(priv, handle_priv, transfer->endpoint); ++ if (current_interface < 0) { ++ usbi_err(ctx, "unable to match endpoint to an open interface - cancelling transfer"); ++ return LIBUSB_ERROR_NOT_FOUND; ++ } ++ ++ usbi_dbg("matched endpoint %02X with interface %d", transfer->endpoint, current_interface); ++ ++ winusb_handle = handle_priv->interface_handle[current_interface].api_handle; ++ ++ wfd = usbi_create_fd(winusb_handle, IS_XFERIN(transfer) ? RW_READ : RW_WRITE, NULL, NULL); ++ // Always use the handle returned from usbi_create_fd (wfd.handle) ++ if (wfd.fd < 0) { ++ return LIBUSB_ERROR_NO_MEM; ++ } ++ ++ ctx_size = sizeof(KISO_CONTEXT)+sizeof(KISO_PACKET)* transfer->num_iso_packets; ++ //Init the libusbk iso_context ++ if (!transfer_priv->iso_context) ++ { ++ transfer_priv->iso_context = (PKISO_CONTEXT)malloc(ctx_size); ++ if (!transfer_priv->iso_context) ++ { ++ //TODO does this return leak mem, or does the transfer get cleaned up? ++ return LIBUSB_ERROR_NO_MEM; ++ } ++ } ++ memset(transfer_priv->iso_context, 0, ctx_size); ++ ++ //start ASAP ++ transfer_priv->iso_context->StartFrame = 0; ++ transfer_priv->iso_context->NumberOfPackets = transfer->num_iso_packets; ++ ++ /* convert the transfer packet lengths to iso_packet offsets */ ++ offset = 0; ++ for (i = 0; i < transfer->num_iso_packets; i++) ++ { ++ transfer_priv->iso_context->IsoPackets[i].offset = offset; ++ offset += transfer->iso_packet_desc[i].length; ++ } ++ ++ if (IS_XFERIN(transfer)) { ++ usbi_dbg("reading %d iso packets", transfer->num_iso_packets); ++ ret = WinUSBX[sub_api].IsoReadPipe(wfd.handle, transfer->endpoint, transfer->buffer, transfer->length, wfd.overlapped, transfer_priv->iso_context); ++ } ++ else { ++ usbi_dbg("writing %d iso packets", transfer->num_iso_packets); ++ ret = WinUSBX[sub_api].IsoWritePipe(wfd.handle, transfer->endpoint, transfer->buffer, transfer->length, wfd.overlapped, transfer_priv->iso_context); ++ } ++ ++ if (!ret) { ++ if (GetLastError() != ERROR_IO_PENDING) { ++ usbi_err(ctx, "IsoReadPipe/IsoWritePipe failed: %s", windows_error_str(0)); ++ usbi_free_fd(&wfd); ++ return LIBUSB_ERROR_IO; ++ } ++ } ++ else { ++ wfd.overlapped->Internal = STATUS_COMPLETED_SYNCHRONOUSLY; ++ wfd.overlapped->InternalHigh = (DWORD)transfer->length; ++ } ++ ++ transfer_priv->pollable_fd = wfd; ++ transfer_priv->interface_number = (uint8_t)current_interface; ++ ++ return LIBUSB_SUCCESS; ++} ++ + static int winusbx_submit_bulk_transfer(int sub_api, struct usbi_transfer *itransfer) + { + struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); +@@ -2989,7 +3090,36 @@ static int winusbx_reset_device(int sub_api, struct libusb_device_handle *dev_ha + + static int winusbx_copy_transfer_data(int sub_api, struct usbi_transfer *itransfer, uint32_t io_size) + { ++ struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); ++ struct windows_transfer_priv *transfer_priv = (struct windows_transfer_priv*)usbi_transfer_get_os_priv(itransfer); ++ struct windows_device_priv *priv = _device_priv(transfer->dev_handle->dev); ++ int i; ++ ++ CHECK_WINUSBX_AVAILABLE(sub_api); ++ ++ if (transfer->type == LIBUSB_TRANSFER_TYPE_ISOCHRONOUS) ++ { ++ //for isochronous, need to copy the individual iso packet actual_lengths and statuses ++ if (sub_api == SUB_API_LIBUSBK || sub_api == SUB_API_LIBUSB0) ++ { ++ //iso only supported on libusbk-based backends for now ++ ++ for (i = 0; i < transfer->num_iso_packets; i++) ++ { ++ transfer->iso_packet_desc[i].actual_length = transfer_priv->iso_context->IsoPackets[i].actual_length; ++ //TODO translate USDB_STATUS codes http://msdn.microsoft.com/en-us/library/ff539136(VS.85).aspx to libusb_transfer_status ++ //transfer->iso_packet_desc[i].status = transfer_priv->iso_context->IsoPackets[i].status; ++ } ++ } ++ else ++ { ++ //This should only occur if backend is not set correctly or other backend isoc is partially implemented ++ return unsupported_copy_transfer_data(sub_api, itransfer, io_size); ++ } ++ } ++ + itransfer->transferred += io_size; ++ + return LIBUSB_TRANSFER_COMPLETED; + } + +diff --git a/libusb/os/windows_winusb.h b/libusb/os/windows_winusb.h +index 89ebc24..28a7e4f 100644 +--- a/libusb/os/windows_winusb.h ++++ b/libusb/os/windows_winusb.h +@@ -154,6 +154,42 @@ struct libusb_hid_descriptor { + #define LIBUSB_REQ_IN(request_type) ((request_type) & LIBUSB_ENDPOINT_IN) + #define LIBUSB_REQ_OUT(request_type) (!LIBUSB_REQ_IN(request_type)) + ++ ++/* start libusbk_shared.h definitions, must match libusbk_shared.h for isochronous support */ ++ ++//KISO_PACKET is equivalent of libusb_iso_packet_descriptor except uses absolute "offset" field instead of sequential Lengths ++typedef struct _KISO_PACKET ++{ ++ UINT offset; ++ USHORT actual_length; //changed from libusbk_shared.h "Length" for clarity ++ USHORT status; ++ ++} KISO_PACKET; ++ ++typedef KISO_PACKET* PKISO_PACKET; ++ ++typedef enum _KISO_FLAG ++{ ++ KISO_FLAG_NONE = 0, ++ KISO_FLAG_SET_START_FRAME = 0x00000001, ++} KISO_FLAG; ++ ++//KISO_CONTEXT is the conceptual equivalent of libusb_transfer except is isochronous-specific and must match libusbk's version ++typedef struct _KISO_CONTEXT ++{ ++ KISO_FLAG Flags; ++ UINT StartFrame; ++ SHORT ErrorCount; ++ SHORT NumberOfPackets; ++ UINT UrbHdrStatus; ++ KISO_PACKET IsoPackets[0]; ++ ++} KISO_CONTEXT; ++ ++typedef KISO_CONTEXT* PKISO_CONTEXT; ++ ++/* end libusbk_shared.h definitions */ ++ + // The following are used for HID reports IOCTLs + #define HID_CTL_CODE(id) \ + CTL_CODE (FILE_DEVICE_KEYBOARD, (id), METHOD_NEITHER, FILE_ANY_ACCESS) +@@ -280,6 +316,8 @@ struct windows_transfer_priv { + uint8_t *hid_buffer; // 1 byte extended data buffer, required for HID + uint8_t *hid_dest; // transfer buffer destination, required for HID + size_t hid_expected_size; ++ /* Isoc */ ++ PKISO_CONTEXT iso_context; + }; + + // used to match a device driver (including filter drivers) against a supported API +@@ -623,6 +661,23 @@ typedef BOOL (WINAPI *WinUsb_ResetDevice_t)( + WINUSB_INTERFACE_HANDLE InterfaceHandle + ); + ++typedef BOOL(WINAPI *WinUsb_IsoReadPipe_t)( ++ WINUSB_INTERFACE_HANDLE InterfaceHandle, ++ UCHAR PipeID, ++ PUCHAR Buffer, ++ ULONG BufferLength, ++ LPOVERLAPPED Overlapped, ++ PKISO_CONTEXT IsoContext ++ ); ++typedef BOOL(WINAPI *WinUsb_IsoWritePipe_t)( ++ WINUSB_INTERFACE_HANDLE InterfaceHandle, ++ UCHAR PipeID, ++ PUCHAR Buffer, ++ ULONG BufferLength, ++ LPOVERLAPPED Overlapped, ++ PKISO_CONTEXT IsoContext ++ ); ++ + /* /!\ These must match the ones from the official libusbk.h */ + typedef enum _KUSB_FNID { + KUSB_FNID_Init, +@@ -703,6 +758,8 @@ struct winusb_interface { + WinUsb_SetPowerPolicy_t SetPowerPolicy; + WinUsb_WritePipe_t WritePipe; + WinUsb_ResetDevice_t ResetDevice; ++ WinUsb_IsoReadPipe_t IsoReadPipe; ++ WinUsb_IsoWritePipe_t IsoWritePipe; + }; + + /* hid.dll interface */ diff --git a/ports/libusb/portfile.cmake b/ports/libusb/portfile.cmake index 398fdcfd1..cd99405e6 100644 --- a/ports/libusb/portfile.cmake +++ b/ports/libusb/portfile.cmake @@ -16,6 +16,11 @@ vcpkg_from_github( HEAD_REF master ) +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES "${CMAKE_CURRENT_LIST_DIR}/libfreenect2.patch" +) + if (TRIPLET_SYSTEM_ARCH MATCHES "x86") set(MSBUILD_PLATFORM "Win32") else () diff --git a/ports/libuv/CMakeLists.txt b/ports/libuv/CMakeLists.txt index cd5d9f66f..87c0a6c95 100644 --- a/ports/libuv/CMakeLists.txt +++ b/ports/libuv/CMakeLists.txt @@ -5,6 +5,7 @@ file(GLOB UV_SOURCES_COMMON src/*.c) file(GLOB UV_SOURCES_WIN src/win/*.c) add_library(libuv ${UV_SOURCES_COMMON} ${UV_SOURCES_WIN}) +target_compile_definitions(libuv PRIVATE WIN32_LEAN_AND_MEAN "_WIN32_WINNT=0x0600") target_link_libraries(libuv iphlpapi psapi shell32 userenv ws2_32) target_include_directories(libuv PUBLIC ./include PRIVATE ./src) set_target_properties(libuv PROPERTIES DEFINE_SYMBOL BUILDING_UV_SHARED) diff --git a/ports/libuv/CONTROL b/ports/libuv/CONTROL index ba5d7e85e..792b0b668 100644 --- a/ports/libuv/CONTROL +++ b/ports/libuv/CONTROL @@ -1,3 +1,3 @@ Source: libuv -Version: 1.14.1-1 +Version: 1.18.0 Description: libuv is a multi-platform support library with a focus on asynchronous I/O. diff --git a/ports/libuv/portfile.cmake b/ports/libuv/portfile.cmake index 2e07ff607..638012433 100644 --- a/ports/libuv/portfile.cmake +++ b/ports/libuv/portfile.cmake @@ -2,8 +2,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libuv/libuv - REF v1.14.1 - SHA512 de78909e92757ce024a48d5a12a1aedd8015d7135cee374965dc38c07c29352ea411a31921910653728b3f73aca0275382cbf2130144da65e50a472b17849ade + REF v1.18.0 + SHA512 d1ef70b0f060f40cf57b282279d1d63d6dd019b4b811211b2252db32633a80af46290d201b4a4338f84b3efdfe9754a11b29bfa4a7636b06540b1a65e1fd4fbc HEAD_REF v1.x) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) diff --git a/ports/libwebsockets/CONTROL b/ports/libwebsockets/CONTROL index 816253a2c..64bf929bd 100644 --- a/ports/libwebsockets/CONTROL +++ b/ports/libwebsockets/CONTROL @@ -1,4 +1,4 @@ Source: libwebsockets -Version: 2.0.0-2 +Version: 2.0.0-4 Build-Depends: zlib, openssl Description: Libwebsockets is a lightweight pure C library built to use minimal CPU and memory resources, and provide fast throughput in both directions as client or server. diff --git a/ports/libwebsockets/portfile.cmake b/ports/libwebsockets/portfile.cmake index 43502a52a..ae74f5268 100644 --- a/ports/libwebsockets/portfile.cmake +++ b/ports/libwebsockets/portfile.cmake @@ -1,26 +1,27 @@ -if (VCPKG_LIBRARY_LINKAGE STREQUAL static) - message(STATUS "Warning: Static building not supported yet. Building dynamic.") - set(VCPKG_LIBRARY_LINKAGE dynamic) -endif() include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libwebsockets-2.0.0) -vcpkg_download_distfile(ARCHIVE - URLS "https://github.com/warmcat/libwebsockets/archive/v2.0.0.zip" - FILENAME "libwebsockets-v2.0.0.zip" - SHA512 bf57a46f2c60095e7e6ec6656b185ffd2cf8f553bc22255ae8f6825d3613316d794f139cdefacbdf60ef997b0cd675fe356813d406c9b7c5a5ae838ce5326042 + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO warmcat/libwebsockets + REF v2.0.0 + SHA512 26bc09877c1595b80b08e788e4ae3908af86b67e19f4b9f7ac48d90783cf5c563d4d03e5586d18f6bb8e67d15a03d000f31f67f3a327d898844f77e5d22f7c9d + HEAD_REF master ) -vcpkg_extract_source_archive(${ARCHIVE}) vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES - ${CMAKE_CURRENT_LIST_DIR}/0001-Fix-UWP.patch + SOURCE_PATH ${SOURCE_PATH} + PATCHES + ${CMAKE_CURRENT_LIST_DIR}/0001-Fix-UWP.patch ) +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" LWS_WITH_STATIC) +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" LWS_WITH_SHARED) + vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} OPTIONS - -DLWS_WITH_STATIC=OFF + -DLWS_WITH_STATIC=${LWS_WITH_STATIC} + -DLWS_WITH_SHARED=${LWS_WITH_SHARED} -DLWS_USE_BUNDLED_ZLIB=OFF -DLWS_WITHOUT_TESTAPPS=ON -DLWS_IPV6=ON @@ -31,14 +32,9 @@ vcpkg_configure_cmake( vcpkg_install_cmake() -file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share) -file(RENAME ${CURRENT_PACKAGES_DIR}/cmake ${CURRENT_PACKAGES_DIR}/share/libwebsockets) -file(RENAME - ${CURRENT_PACKAGES_DIR}/debug/cmake/LibwebsocketsTargets-debug.cmake - ${CURRENT_PACKAGES_DIR}/share/libwebsockets/LibwebsocketsTargets-debug.cmake -) +vcpkg_fixup_cmake_targets(CONFIG_PATH "cmake") + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/cmake) file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/libwebsockets) file(RENAME ${CURRENT_PACKAGES_DIR}/share/libwebsockets/LICENSE ${CURRENT_PACKAGES_DIR}/share/libwebsockets/copyright) diff --git a/ports/libzip/CONTROL b/ports/libzip/CONTROL index 045030e95..3ca61d39b 100644 --- a/ports/libzip/CONTROL +++ b/ports/libzip/CONTROL @@ -1,4 +1,4 @@ Source: libzip -Version: 1.2.0-2 +Version: 1.3.2 Build-Depends: zlib Description: A library for reading, creating, and modifying zip archives. diff --git a/ports/libzip/enable-static.patch b/ports/libzip/enable-static.patch index d95b90f3d..61c93b435 100644 --- a/ports/libzip/enable-static.patch +++ b/ports/libzip/enable-static.patch @@ -1,19 +1,25 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index d443757..303dfe2 100644 +index deceb65..1283013 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -102,14 +102,20 @@ IF(MSVC) - ADD_DEFINITIONS("-D_CRT_SECURE_NO_WARNINGS") +@@ -113,6 +113,15 @@ ADD_DEFINITIONS("-D_CRT_SECURE_NO_WARNINGS") + ADD_DEFINITIONS("-D_CRT_NONSTDC_NO_DEPRECATE") ENDIF(MSVC) +OPTION(ENABLE_STATIC "Enable static builds" OFF) +IF(ENABLE_STATIC) ++ set(BUILD_SHARED_LIBS OFF) + set(ZIP_EXTERN_OVERRIDE ON) + set(ZIP_EXTERN ON) ++ELSE(ENABLE_STATIC) ++ set(BUILD_SHARED_LIBS ON) +ENDIF(ENABLE_STATIC) + ADD_DEFINITIONS("-DHAVE_CONFIG_H") + # rpath handling: use rpath in installed binaries +@@ -121,10 +130,10 @@ SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) + # Targets ADD_SUBDIRECTORY(lib) -ADD_SUBDIRECTORY(man) @@ -25,10 +31,23 @@ index d443757..303dfe2 100644 +# ADD_SUBDIRECTORY(regress) +# ADD_SUBDIRECTORY(examples) - # TODO: pkgconfig file + # pkgconfig file + SET(prefix ${CMAKE_INSTALL_PREFIX}) +diff --git a/cmake-config.h.in b/cmake-config.h.in +index 0d1839c..dd450ff 100644 +--- a/cmake-config.h.in ++++ b/cmake-config.h.in +@@ -60,7 +60,7 @@ + #cmakedefine WORDS_BIGENDIAN + /* END DEFINES */ + #define PACKAGE "@PACKAGE@" +-#define VERSION "@VERSION@" ++#define LIBZIP_VERSION "@VERSION@" + #ifndef HAVE_SSIZE_T_LIBZIP + # if SIZE_T_LIBZIP == INT_LIBZIP diff --git a/cmake-zipconf.h.in b/cmake-zipconf.h.in -index 17edc6c..ac9c394 100644 +index 6a276f6..410c898 100644 --- a/cmake-zipconf.h.in +++ b/cmake-zipconf.h.in @@ -118,4 +118,10 @@ typedef unsigned long long zip_uint64_t; @@ -42,49 +61,8 @@ index 17edc6c..ac9c394 100644 +#endif + #endif /* zipconf.h */ -diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt -index 1596f30..eb55fc0 100644 ---- a/lib/CMakeLists.txt -+++ b/lib/CMakeLists.txt -@@ -191,19 +191,20 @@ IF(NOT HAVE_MKSTEMP) - SET(LIBZIP_EXTRA_FILES mkstemp.c) - ENDIF(NOT HAVE_MKSTEMP) - --ADD_LIBRARY(zip SHARED ${LIBZIP_SOURCES} ${LIBZIP_EXTRA_FILES} ${LIBZIP_OPSYS_FILES}) --SET_TARGET_PROPERTIES(zip PROPERTIES VERSION 3.0 SOVERSION 3 ) --TARGET_LINK_LIBRARIES(zip ${ZLIB_LIBRARY}) --INSTALL(TARGETS zip -- RUNTIME DESTINATION bin -- ARCHIVE DESTINATION lib -- LIBRARY DESTINATION lib) --#CREATE_LIBTOOL_FILE(zip lib) -- --#ADD_LIBRARY(zipstatic STATIC ${LIBZIP_SOURCES} ${LIBZIP_EXTRA_FILES} ${LIBZIP_OPSYS_FILES}) --#SET_TARGET_PROPERTIES(zipstatic PROPERTIES VERSION 3.0 SOVERSION 3 ) --#TARGET_LINK_LIBRARIES(zipstatic ${ZLIB_LIBRARY}) --#INSTALL(TARGETS zipstatic --# RUNTIME DESTINATION bin --# ARCHIVE DESTINATION lib --# LIBRARY DESTINATION lib) -+IF(ENABLE_STATIC) -+ ADD_LIBRARY(zipstatic STATIC ${LIBZIP_SOURCES} ${LIBZIP_EXTRA_FILES} ${LIBZIP_OPSYS_FILES}) -+ SET_TARGET_PROPERTIES(zipstatic PROPERTIES VERSION 3.0 SOVERSION 3 ) -+ TARGET_LINK_LIBRARIES(zipstatic ${ZLIB_LIBRARY}) -+ INSTALL(TARGETS zipstatic -+ RUNTIME DESTINATION bin -+ ARCHIVE DESTINATION lib -+ LIBRARY DESTINATION lib) -+ELSE(ENABLE_STATIC) -+ ADD_LIBRARY(zip SHARED ${LIBZIP_SOURCES} ${LIBZIP_EXTRA_FILES} ${LIBZIP_OPSYS_FILES}) -+ SET_TARGET_PROPERTIES(zip PROPERTIES VERSION 3.0 SOVERSION 3 ) -+ TARGET_LINK_LIBRARIES(zip ${ZLIB_LIBRARY}) -+ INSTALL(TARGETS zip -+ RUNTIME DESTINATION bin -+ ARCHIVE DESTINATION lib -+ LIBRARY DESTINATION lib) -+ENDIF(ENABLE_STATIC) diff --git a/lib/compat.h b/lib/compat.h -index 4c9e3a0..d667fe3 100644 +index 625c84e..8943587 100644 --- a/lib/compat.h +++ b/lib/compat.h @@ -42,7 +42,9 @@ diff --git a/ports/libzip/portfile.cmake b/ports/libzip/portfile.cmake index fccb6cdf2..bcde856e2 100644 --- a/ports/libzip/portfile.cmake +++ b/ports/libzip/portfile.cmake @@ -1,9 +1,9 @@ include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libzip-1.2.0) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libzip-1.3.2) vcpkg_download_distfile(ARCHIVE_FILE - URLS "https://nih.at/libzip/libzip-1.2.0.tar.gz" - FILENAME "libzip-1.2.0.tar.gz" - SHA512 b71642a80f8e2573c9082d513018bfd2d1d155663ac83fdf7ec969a08d5230fcbc76f2cf89c26ff1d1288e9f407ba9fa234604d813ed3bab816ca1670f7a53f3 + URLS "https://nih.at/libzip/libzip-1.3.2.tar.gz" + FILENAME "libzip-1.3.2.tar.gz" + SHA512 75b7e6f541be30e721275723f264c20f9a3be5335d954b5909acdddb0f6dd9b2420166904c9b88206692a57a4aa54e4fe8ed4d62c1f4b900aebf6ad40f767376 ) vcpkg_extract_source_archive(${ARCHIVE_FILE}) @@ -27,11 +27,6 @@ endif() vcpkg_install_cmake() -if(VCPKG_LIBRARY_LINKAGE STREQUAL static) - file(RENAME ${CURRENT_PACKAGES_DIR}/lib/zipstatic.lib ${CURRENT_PACKAGES_DIR}/lib/zip.lib) - file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/zipstatic.lib ${CURRENT_PACKAGES_DIR}/debug/lib/zip.lib) -endif() - # Move zipconf.h to include and remove include directories from lib file(RENAME ${CURRENT_PACKAGES_DIR}/lib/libzip/include/zipconf.h ${CURRENT_PACKAGES_DIR}/include/zipconf.h) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/libzip ${CURRENT_PACKAGES_DIR}/debug/lib/libzip) diff --git a/ports/live555/CONTROL b/ports/live555/CONTROL index d2ff15211..a2354fad1 100644 --- a/ports/live555/CONTROL +++ b/ports/live555/CONTROL @@ -1,3 +1,3 @@ Source: live555 -Version: 2017.06.04-1 +Version: 2017.09.12 Description: A complete RTSP server application diff --git a/ports/live555/portfile.cmake b/ports/live555/portfile.cmake index 7e2fcf14b..e8b41371a 100644 --- a/ports/live555/portfile.cmake +++ b/ports/live555/portfile.cmake @@ -1,9 +1,9 @@ include(vcpkg_common_functions) set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/live) vcpkg_download_distfile(ARCHIVE - URLS "http://www.live555.com/liveMedia/public/live.2017.06.04.tar.gz" - FILENAME "live.2017.06.04.tar.gz" - SHA512 89eb3854c2ef7d0a1f443b4ca46c66040dfcc586ffd1e3e08c1b9e831eae6ade1c16e628c0ed0e7804c4e7430993f662e3fe8df2f09903024153d188276c3088 + URLS "http://www.live555.com/liveMedia/public/live.2017.09.12.tar.gz" + FILENAME "live.2017.09.12.tar.gz" + SHA512 09b18b5f5dce28519b6c7cd8d52eb3448711939df051f84c8d6dce0b88d05c982711059f2ce13efccd326b2dbfeb93b88c4e03fe4a88bbd8fcefcb25e51d107d ) vcpkg_extract_source_archive(${ARCHIVE}) diff --git a/ports/llvm/CONTROL b/ports/llvm/CONTROL index 2f6b1ec93..2ea653a12 100644 --- a/ports/llvm/CONTROL +++ b/ports/llvm/CONTROL @@ -1,3 +1,3 @@ Source: llvm -Version: 5.0.0-1 +Version: 5.0.0-2 Description: The LLVM Compiler Infrastructure diff --git a/ports/llvm/portfile.cmake b/ports/llvm/portfile.cmake index b1f546f4f..d2a82cf0b 100644 --- a/ports/llvm/portfile.cmake +++ b/ports/llvm/portfile.cmake @@ -2,6 +2,10 @@ # building with Microsoft toolchain; it's also the default on other platforms set(VCPKG_LIBRARY_LINKAGE static) +if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + message(FATAL_ERROR "llvm cannot currently be built for UWP") +endif() + include(vcpkg_common_functions) set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/llvm-5.0.0.src) vcpkg_download_distfile(ARCHIVE @@ -16,6 +20,10 @@ vcpkg_apply_patches( PATCHES ${CMAKE_CURRENT_LIST_DIR}/install-cmake-modules-to-share.patch ) +vcpkg_find_acquire_program(PYTHON3) +get_filename_component(PYTHON3_DIR "${PYTHON3}" DIRECTORY) +set(ENV{PATH} "$ENV{PATH};${PYTHON3_DIR}") + vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA @@ -26,14 +34,19 @@ vcpkg_configure_cmake( -DLLVM_INCLUDE_EXAMPLES=OFF -DLLVM_INCLUDE_TESTS=OFF -DLLVM_ABI_BREAKING_CHECKS=FORCE_OFF - -DLLVM_TOOLS_INSTALL_DIR=tools + -DLLVM_TOOLS_INSTALL_DIR=tools/llvm ) vcpkg_install_cmake() -# Remove extra copy of cmake modules and include files -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +vcpkg_fixup_cmake_targets(CONFIG_PATH share/llvm) +vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/llvm) + +file(REMOVE_RECURSE + ${CURRENT_PACKAGES_DIR}/debug/include + ${CURRENT_PACKAGES_DIR}/debug/tools + ${CURRENT_PACKAGES_DIR}/debug/share +) # Remove one empty include subdirectory if it is indeed empty file(GLOB MCANALYSISFILES ${CURRENT_PACKAGES_DIR}/include/llvm/MC/MCAnalysis/*) diff --git a/ports/log4cplus/CONTROL b/ports/log4cplus/CONTROL index 882ee88b8..6dbcb515c 100644 --- a/ports/log4cplus/CONTROL +++ b/ports/log4cplus/CONTROL @@ -1,3 +1,4 @@ Source: log4cplus -Version: REL_1_2_1-RC2-1 +Version: REL_2_0_0-RC2 Description: A simple to use C++ logging API providing thread--safe, flexible, and arbitrarily granular control over log management and configuration +Build-Depends: catch diff --git a/ports/log4cplus/portfile.cmake b/ports/log4cplus/portfile.cmake index c1c5de3e2..db694315b 100644 --- a/ports/log4cplus/portfile.cmake +++ b/ports/log4cplus/portfile.cmake @@ -2,11 +2,27 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO log4cplus/log4cplus - REF REL_1_2_1-RC2 - SHA512 480a2a61b01e988253c1bf2bb26088030541a63811c8ffbb9e90581d556b717df5220e3ff72eedd27ea704af35218f71f20ceadf4d6d94984b4f56d273b4d3a3 + REF REL_2_0_0-RC2 + SHA512 34392d85088534e0661e6fa9726c5970647a5acaa559bafb5d3746a70f5baca01012f457d50c15e73d9aca1d3ed9ec99028cc65fab07f73cdadbbc0b4329bcb5 HEAD_REF master ) +vcpkg_download_distfile(ARCHIVE + URLS "https://github.com/log4cplus/ThreadPool/archive/dda9e3d40502e85ce082c05d2c05c1bc94348b6a.tar.gz" + FILENAME "log4cplus-threadpool-97b5877b9c49d02abf.tar.gz" + SHA512 97b5877b9c49d02abfcba4ca1312b833b58e4f0e9884fdcf57c20b7ec58801ed24742c8316512b4de8ab29bae42cc1e34058c0d2443c3a5950a2fb3434f86662 +) +vcpkg_extract_source_archive(${ARCHIVE}) + +file( + COPY + ${CURRENT_BUILDTREES_DIR}/src/ThreadPool-master/COPYING + ${CURRENT_BUILDTREES_DIR}/src/ThreadPool-master/example.cpp + ${CURRENT_BUILDTREES_DIR}/src/ThreadPool-master/README.md + ${CURRENT_BUILDTREES_DIR}/src/ThreadPool-master/ThreadPool.h + DESTINATION ${SOURCE_PATH}/threadpool +) + vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA diff --git a/ports/luasocket/CMakeLists.txt b/ports/luasocket/CMakeLists.txt new file mode 100644 index 000000000..3ab763deb --- /dev/null +++ b/ports/luasocket/CMakeLists.txt @@ -0,0 +1,65 @@ +cmake_minimum_required(VERSION 3.0.2) +project(luasocket) + +if(NOT WIN32) + message(FATAL_ERROR "Written for windows only") +endif() + +find_path(LUA_INCLUDE_DIR lua.h PATH_SUFFIXES lua) +find_library(LUA_LIBRARY lua) +set(LUASOCKET_INCLUDES ${LUA_INCLUDE_DIR} src) +set(LUASOCKET_LIBRARIES ${LUA_LIBRARY} ws2_32) + +add_library(socket.core + src/luasocket.c + src/timeout.c + src/buffer.c + src/io.c + src/auxiliar.c + src/options.c + src/inet.c + src/except.c + src/select.c + src/tcp.c + src/udp.c + src/compat.c + src/wsocket.c) + +add_library(mime.core + src/mime.c + src/compat.c) + +target_include_directories(socket.core PRIVATE ${LUASOCKET_INCLUDES}) +target_link_libraries(socket.core PRIVATE ${LUASOCKET_LIBRARIES}) + +target_include_directories(mime.core PRIVATE ${LUASOCKET_INCLUDES}) +target_link_libraries(mime.core PRIVATE ${LUASOCKET_LIBRARIES}) + +add_definitions( + "-DLUASOCKET_API=__declspec(dllexport)" + "-DMIME_API=__declspec(dllexport)") + +install(TARGETS socket.core + RUNTIME DESTINATION bin/socket + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib) + +install(TARGETS mime.core + RUNTIME DESTINATION bin/mime + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib) + +install(FILES + src/ltn12.lua + src/socket.lua + src/mime.lua + DESTINATION share/lua) + +install(FILES + src/http.lua + src/url.lua + src/tp.lua + src/ftp.lua + src/headers.lua + src/smtp.lua + DESTINATION share/lua/socket) diff --git a/ports/luasocket/CONTROL b/ports/luasocket/CONTROL new file mode 100644 index 000000000..09d6fabeb --- /dev/null +++ b/ports/luasocket/CONTROL @@ -0,0 +1,4 @@ +Source: luasocket +Version: 2017.05.25.5a17f79b0301f0a1b4c7f1c73388757a7e2ed309 +Description: LuaSocket is a Lua extension library that is composed by two parts: a C core that provides support for the TCP and UDP transport layers, and a set of Lua modules that add support for functionality commonly needed by applications that deal with the Internet. +Build-Depends: lua diff --git a/ports/luasocket/portfile.cmake b/ports/luasocket/portfile.cmake new file mode 100644 index 000000000..48ac43168 --- /dev/null +++ b/ports/luasocket/portfile.cmake @@ -0,0 +1,48 @@ +include(vcpkg_common_functions) + +set(LUASOCKET_VERSION 2017.05.25.5a17f79b0301f0a1b4c7f1c73388757a7e2ed309) +set(LUASOCKET_REVISION 5a17f79b0301f0a1b4c7f1c73388757a7e2ed309) +set(LUASOCKET_HASH 82a827956d992c7d67a3e9aed18db0cdce34f32e5b49c44976c1d19cb96ff1c10121abb2130d306cf51125fdc5eb3be0cc491a3862e5a8fde3d944ba3b4a94b7) + +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/luasocket-${LUASOCKET_VERSION}) +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO diegonehab/luasocket + REF ${LUASOCKET_REVISION} + SHA512 ${LUASOCKET_HASH} + HEAD_REF master) + +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH}) + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS) + +vcpkg_install_cmake() +vcpkg_copy_pdbs() + +# Remove debug share +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) + +# Handle copyright +file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/luasocket) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/luasocket/LICENSE ${CURRENT_PACKAGES_DIR}/share/luasocket/copyright) + +# Handle socket dll name +file(RENAME ${CURRENT_PACKAGES_DIR}/bin/socket/socket.core.dll ${CURRENT_PACKAGES_DIR}/bin/socket/core.dll) +file(RENAME ${CURRENT_PACKAGES_DIR}/bin/socket/socket.core.pdb ${CURRENT_PACKAGES_DIR}/bin/socket/core.pdb) +file(RENAME ${CURRENT_PACKAGES_DIR}/debug/bin/socket/socket.core.dll ${CURRENT_PACKAGES_DIR}/debug/bin/socket/core.dll) +file(RENAME ${CURRENT_PACKAGES_DIR}/debug/bin/socket/socket.core.pdb ${CURRENT_PACKAGES_DIR}/debug/bin/socket/core.pdb) + +# Handle mime dll name +file(RENAME ${CURRENT_PACKAGES_DIR}/bin/mime/mime.core.dll ${CURRENT_PACKAGES_DIR}/bin/mime/core.dll) +file(RENAME ${CURRENT_PACKAGES_DIR}/bin/mime/mime.core.pdb ${CURRENT_PACKAGES_DIR}/bin/mime/core.pdb) +file(RENAME ${CURRENT_PACKAGES_DIR}/debug/bin/mime/mime.core.dll ${CURRENT_PACKAGES_DIR}/debug/bin/mime/core.dll) +file(RENAME ${CURRENT_PACKAGES_DIR}/debug/bin/mime/mime.core.pdb ${CURRENT_PACKAGES_DIR}/debug/bin/mime/core.pdb) + +# Allow empty include directory +set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) diff --git a/ports/mpfr/CMakeLists.txt b/ports/mpfr/CMakeLists.txt index 8a989ff28..ed48eaf59 100644 --- a/ports/mpfr/CMakeLists.txt +++ b/ports/mpfr/CMakeLists.txt @@ -11,6 +11,7 @@ set(GMP_INCLUDE_DIRS ${GMP_INCLUDE_DIR}) # Sources set(SRCS + src/gmp_printf.c src/mpfr.h src/mpf2mpfr.h src/mpfr-gmp.h @@ -249,6 +250,7 @@ add_library(mpfr ${SRCS}) # target_compile_definitions(mpfr PRIVATE HAVE_CONFIG_H) target_compile_definitions(mpfr PRIVATE __MPFR_WITHIN_MPFR) +target_compile_definitions(mpfr PRIVATE HAVE_STDINT_H) if(BUILD_SHARED_LIBS) target_compile_definitions(mpfr PRIVATE __GMP_LIBGMP_DLL) endif() @@ -272,4 +274,4 @@ install( install( FILES src/mpfr.h DESTINATION "include" -)
\ No newline at end of file +) diff --git a/ports/mpfr/CONTROL b/ports/mpfr/CONTROL index bec54417d..fdfe6deb0 100644 --- a/ports/mpfr/CONTROL +++ b/ports/mpfr/CONTROL @@ -1,4 +1,4 @@ Source: mpfr -Version: 3.1.6 +Version: 3.1.6-2 Description: The MPFR library is a C library for multiple-precision floating-point computations with correct rounding Build-Depends: mpir diff --git a/ports/mpfr/gmp_printf.c b/ports/mpfr/gmp_printf.c new file mode 100644 index 000000000..1ccb94c0c --- /dev/null +++ b/ports/mpfr/gmp_printf.c @@ -0,0 +1,6 @@ +#include <stdio.h> +#include <stdarg.h> + +extern int __gmpfr_fprintf(const char *fmt, va_list argp) { + return fprintf(stderr, fmt, argp); +} diff --git a/ports/mpfr/portfile.cmake b/ports/mpfr/portfile.cmake index b71aa0505..0a192f168 100644 --- a/ports/mpfr/portfile.cmake +++ b/ports/mpfr/portfile.cmake @@ -8,9 +8,11 @@ vcpkg_download_distfile(ARCHIVE vcpkg_extract_source_archive(${ARCHIVE}) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) +file(COPY ${CMAKE_CURRENT_LIST_DIR}/gmp_printf.c DESTINATION ${SOURCE_PATH}/src) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA ) vcpkg_install_cmake() diff --git a/ports/mpir/CONTROL b/ports/mpir/CONTROL index fc15d9b41..b9d1b2d74 100644 --- a/ports/mpir/CONTROL +++ b/ports/mpir/CONTROL @@ -1,3 +1,3 @@ -Source: mpir
-Version: 3.0.0-2
-Description: Multiple Precision Integers and Rationals.
\ No newline at end of file +Source: mpir +Version: 3.0.0-3 +Description: Multiple Precision Integers and Rationals. diff --git a/ports/mpir/enable-runtimelibrary-toggle.patch b/ports/mpir/enable-runtimelibrary-toggle.patch new file mode 100644 index 000000000..d0260e869 --- /dev/null +++ b/ports/mpir/enable-runtimelibrary-toggle.patch @@ -0,0 +1,26 @@ +diff --git a/build.vc/mpir_debug_lib.props b/build.vc/mpir_debug_lib.props +index b2fd57b..3937570 100644 +--- a/build.vc/mpir_debug_lib.props ++++ b/build.vc/mpir_debug_lib.props +@@ -9,7 +9,7 @@ + <ItemDefinitionGroup> + <ClCompile> + <ObjectFileName>$(IntDir)dum\my\%(RelativeDir)</ObjectFileName> +- <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> ++ <RuntimeLibrary>$(RuntimeLibrary)</RuntimeLibrary> + <ProgramDataBaseFileName>$(TargetDir)$(TargetName).pdb</ProgramDataBaseFileName> + </ClCompile> + <Link> +diff --git a/build.vc/mpir_release_lib.props b/build.vc/mpir_release_lib.props +index 6cdff3e..3937570 100644 +--- a/build.vc/mpir_release_lib.props ++++ b/build.vc/mpir_release_lib.props +@@ -9,7 +9,7 @@ + <ItemDefinitionGroup> + <ClCompile> + <ObjectFileName>$(IntDir)dum\my\%(RelativeDir)</ObjectFileName> +- <RuntimeLibrary>MultiThreaded</RuntimeLibrary> ++ <RuntimeLibrary>$(RuntimeLibrary)</RuntimeLibrary> + <ProgramDataBaseFileName>$(TargetDir)$(TargetName).pdb</ProgramDataBaseFileName> + </ClCompile> + <Link> diff --git a/ports/mpir/portfile.cmake b/ports/mpir/portfile.cmake index 1595a6533..c56cfa545 100644 --- a/ports/mpir/portfile.cmake +++ b/ports/mpir/portfile.cmake @@ -1,81 +1,101 @@ -include(vcpkg_common_functions)
-
-set(MPIR_VERSION 3.0.0)
-set(MPIR_HASH "c735105db8b86db739fd915bf16064e6bc82d0565ad8858059e4e93f62c9d72d9a1c02a5ca9859b184346a8dc64fa714d4d61404cff1e405dc548cbd54d0a88e")
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/mpir-${MPIR_VERSION})
-
-vcpkg_download_distfile(ARCHIVE_FILE
- URLS "http://mpir.org/mpir-${MPIR_VERSION}.tar.bz2"
- FILENAME "mpir-${MPIR_VERSION}.tar.bz2"
- SHA512 ${MPIR_HASH}
-)
-vcpkg_extract_source_archive(${ARCHIVE_FILE})
-
-if(VCPKG_PLATFORM_TOOLSET MATCHES "v141")
- set(MSVC_VERSION 15)
-else()
- set(MSVC_VERSION 14)
-endif()
-
-if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
- vcpkg_build_msbuild(
- PROJECT_PATH ${SOURCE_PATH}/build.vc${MSVC_VERSION}/dll_mpir_gc/dll_mpir_gc.vcxproj
- )
-else()
- vcpkg_build_msbuild(
- PROJECT_PATH ${SOURCE_PATH}/build.vc${MSVC_VERSION}/lib_mpir_gc/lib_mpir_gc.vcxproj
- )
-endif()
-
-IF (VCPKG_TARGET_ARCHITECTURE MATCHES "x86")
- SET(BUILD_ARCH "Win32")
-ELSE()
- SET(BUILD_ARCH ${VCPKG_TARGET_ARCHITECTURE})
-ENDIF()
-
-if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
- file(INSTALL
- ${SOURCE_PATH}/dll/${BUILD_ARCH}/Debug/gmp.h
- ${SOURCE_PATH}/dll/${BUILD_ARCH}/Debug/gmpxx.h
- ${SOURCE_PATH}/dll/${BUILD_ARCH}/Debug/mpir.h
- ${SOURCE_PATH}/dll/${BUILD_ARCH}/Debug/mpirxx.h
- DESTINATION ${CURRENT_PACKAGES_DIR}/include
- )
- file(INSTALL
- ${SOURCE_PATH}/dll/${BUILD_ARCH}/Debug/mpir.dll
- DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin
- )
- file(INSTALL
- ${SOURCE_PATH}/dll/${BUILD_ARCH}/Release/mpir.dll
- DESTINATION ${CURRENT_PACKAGES_DIR}/bin
- )
- file(INSTALL
- ${SOURCE_PATH}/dll/${BUILD_ARCH}/Debug/mpir.lib
- DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib
- )
- file(INSTALL
- ${SOURCE_PATH}/dll/${BUILD_ARCH}/Release/mpir.lib
- DESTINATION ${CURRENT_PACKAGES_DIR}/lib
- )
- file(INSTALL ${SOURCE_PATH}/COPYING.lib DESTINATION ${CURRENT_PACKAGES_DIR}/share/mpir RENAME copyright)
- vcpkg_copy_pdbs()
-else()
- file(INSTALL
- ${SOURCE_PATH}/lib/${BUILD_ARCH}/Debug/gmp.h
- ${SOURCE_PATH}/lib/${BUILD_ARCH}/Debug/gmpxx.h
- ${SOURCE_PATH}/lib/${BUILD_ARCH}/Debug/mpir.h
- ${SOURCE_PATH}/lib/${BUILD_ARCH}/Debug/mpirxx.h
- DESTINATION ${CURRENT_PACKAGES_DIR}/include
- )
- file(INSTALL
- ${SOURCE_PATH}/lib/${BUILD_ARCH}/Debug/mpir.lib
- DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib
- )
- file(INSTALL
- ${SOURCE_PATH}/lib/${BUILD_ARCH}/Release/mpir.lib
- DESTINATION ${CURRENT_PACKAGES_DIR}/lib
- )
- file(INSTALL ${SOURCE_PATH}/COPYING.lib DESTINATION ${CURRENT_PACKAGES_DIR}/share/mpir RENAME copyright)
-endif()
-
-message(STATUS "Installing done")
+include(vcpkg_common_functions) + +if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + message(FATAL_ERROR "MPIR currently can only be built for desktop") +endif() + +if(VCPKG_CRT_LINKAGE STREQUAL "static" AND VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + message(FATAL_ERROR "MPIR currently can only be built using the dynamic CRT when building DLLs") +endif() + +set(MPIR_VERSION 3.0.0) +set(MPIR_HASH "c735105db8b86db739fd915bf16064e6bc82d0565ad8858059e4e93f62c9d72d9a1c02a5ca9859b184346a8dc64fa714d4d61404cff1e405dc548cbd54d0a88e") +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/mpir-${MPIR_VERSION}) + +vcpkg_download_distfile(ARCHIVE_FILE + URLS "http://mpir.org/mpir-${MPIR_VERSION}.tar.bz2" + FILENAME "mpir-${MPIR_VERSION}.tar.bz2" + SHA512 ${MPIR_HASH} +) +vcpkg_extract_source_archive(${ARCHIVE_FILE}) + +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES "${CMAKE_CURRENT_LIST_DIR}/enable-runtimelibrary-toggle.patch" +) + +if(VCPKG_PLATFORM_TOOLSET MATCHES "v141") + set(MSVC_VERSION 15) +else() + set(MSVC_VERSION 14) +endif() + +if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + vcpkg_build_msbuild( + PROJECT_PATH ${SOURCE_PATH}/build.vc${MSVC_VERSION}/dll_mpir_gc/dll_mpir_gc.vcxproj + ) +else() + if(VCPKG_CRT_LINKAGE STREQUAL "static") + set(RuntimeLibraryExt "") + else() + set(RuntimeLibraryExt "DLL") + endif() + vcpkg_build_msbuild( + PROJECT_PATH ${SOURCE_PATH}/build.vc${MSVC_VERSION}/lib_mpir_gc/lib_mpir_gc.vcxproj + OPTIONS_DEBUG "/p:RuntimeLibrary=MultiThreadedDebug${RuntimeLibraryExt}" + OPTIONS_RELEASE "/p:RuntimeLibrary=MultiThreaded${RuntimeLibraryExt}" + ) +endif() + +IF (VCPKG_TARGET_ARCHITECTURE MATCHES "x86") + SET(BUILD_ARCH "Win32") +ELSE() + SET(BUILD_ARCH ${VCPKG_TARGET_ARCHITECTURE}) +ENDIF() + +if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + file(INSTALL + ${SOURCE_PATH}/dll/${BUILD_ARCH}/Debug/gmp.h + ${SOURCE_PATH}/dll/${BUILD_ARCH}/Debug/gmpxx.h + ${SOURCE_PATH}/dll/${BUILD_ARCH}/Debug/mpir.h + ${SOURCE_PATH}/dll/${BUILD_ARCH}/Debug/mpirxx.h + DESTINATION ${CURRENT_PACKAGES_DIR}/include + ) + file(INSTALL + ${SOURCE_PATH}/dll/${BUILD_ARCH}/Debug/mpir.dll + DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin + ) + file(INSTALL + ${SOURCE_PATH}/dll/${BUILD_ARCH}/Release/mpir.dll + DESTINATION ${CURRENT_PACKAGES_DIR}/bin + ) + file(INSTALL + ${SOURCE_PATH}/dll/${BUILD_ARCH}/Debug/mpir.lib + DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib + ) + file(INSTALL + ${SOURCE_PATH}/dll/${BUILD_ARCH}/Release/mpir.lib + DESTINATION ${CURRENT_PACKAGES_DIR}/lib + ) +else() + file(INSTALL + ${SOURCE_PATH}/lib/${BUILD_ARCH}/Debug/gmp.h + ${SOURCE_PATH}/lib/${BUILD_ARCH}/Debug/gmpxx.h + ${SOURCE_PATH}/lib/${BUILD_ARCH}/Debug/mpir.h + ${SOURCE_PATH}/lib/${BUILD_ARCH}/Debug/mpirxx.h + DESTINATION ${CURRENT_PACKAGES_DIR}/include + ) + file(INSTALL + ${SOURCE_PATH}/lib/${BUILD_ARCH}/Debug/mpir.lib + DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib + ) + file(INSTALL + ${SOURCE_PATH}/lib/${BUILD_ARCH}/Release/mpir.lib + DESTINATION ${CURRENT_PACKAGES_DIR}/lib + ) +endif() + +file(INSTALL ${SOURCE_PATH}/COPYING.lib DESTINATION ${CURRENT_PACKAGES_DIR}/share/mpir RENAME copyright) +vcpkg_copy_pdbs() + +message(STATUS "Installing done") diff --git a/ports/ms-gsl/CONTROL b/ports/ms-gsl/CONTROL index c485497e3..b19e7c583 100644 --- a/ports/ms-gsl/CONTROL +++ b/ports/ms-gsl/CONTROL @@ -1,3 +1,3 @@ Source: ms-gsl -Version: 20170425-8b320e3f5d016f953e55dfc7ec8694c1349d3fe4 +Version: 20171104-d10ebc6555b627c9d1196076a78467e7be505987 Description: Microsoft implementation of the Guidelines Support Library
\ No newline at end of file diff --git a/ports/ms-gsl/portfile.cmake b/ports/ms-gsl/portfile.cmake index a5353e666..285b49676 100644 --- a/ports/ms-gsl/portfile.cmake +++ b/ports/ms-gsl/portfile.cmake @@ -4,8 +4,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Microsoft/GSL - REF 8b320e3f5d016f953e55dfc7ec8694c1349d3fe4 - SHA512 79d4ecc937cdce2acf79620f12c6d4592159f17aa23c0fd1e978cc571e84ee11d91bd9a45f975546447e1ba20878244312609396a52a76f18872b97ea024aa00 + REF d10ebc6555b627c9d1196076a78467e7be505987 + SHA512 982f1d059f3128e79db7742e4bc9a641f8f6b91e02b00f7a98e4447bff9602501e905bc42173520036a0d3b6ad95ca7908fed15fa200ea01a2bd103b8e9cff88 HEAD_REF master ) diff --git a/ports/nana/CONTROL b/ports/nana/CONTROL index ae4168544..41d7188b9 100644 --- a/ports/nana/CONTROL +++ b/ports/nana/CONTROL @@ -1,4 +1,4 @@ Source: nana
-Version: 1.5.4-1
+Version: 1.5.5
Description: Cross-platform library for GUI programming in modern C++ style.
Build-Depends: libpng, libjpeg-turbo
diff --git a/ports/nana/portfile.cmake b/ports/nana/portfile.cmake index 6f61d79f7..fc492ee44 100644 --- a/ports/nana/portfile.cmake +++ b/ports/nana/portfile.cmake @@ -7,8 +7,8 @@ include(vcpkg_common_functions) vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO cnjinhao/nana
- REF v1.5.4
- SHA512 54d8d06a7792c7c626793f0c5f769884d7af78950a1df7d543f13bbb6de5ae35b51130a150438faa1c3c53dfea29fad6d12b94c535c264aac893325b244c6e0a
+ REF v1.5.5
+ SHA512 d28348b807e131f5868a162cf5b914523246ab5c4d4395186377f54dff9ad91199b13f640e05b5d959347ebfb570df79d5de39abfd690d8831034063422e3587
HEAD_REF develop
)
diff --git a/ports/netcdf-c/portfile.cmake b/ports/netcdf-c/portfile.cmake index 75a361106..f2630711e 100644 --- a/ports/netcdf-c/portfile.cmake +++ b/ports/netcdf-c/portfile.cmake @@ -41,10 +41,11 @@ vcpkg_configure_cmake( ) vcpkg_install_cmake() +vcpkg_fixup_cmake_targets(CONFIG_PATH share/netcdf) -file(READ ${CURRENT_PACKAGES_DIR}/debug/share/netcdf/netCDFTargets-debug.cmake NETCDF_TARGETS_DEBUG_MODULE) -string(REPLACE "\${_IMPORT_PREFIX}" "\${_IMPORT_PREFIX}/debug" NETCDF_TARGETS_DEBUG_MODULE "${NETCDF_TARGETS_DEBUG_MODULE}") -file(WRITE ${CURRENT_PACKAGES_DIR}/share/netcdf/netCDFTargets-debug.cmake "${NETCDF_TARGETS_DEBUG_MODULE}") +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin ${CURRENT_PACKAGES_DIR}/bin) +endif() file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) diff --git a/ports/ogre/0001-use-vcpkg-freeimage.patch b/ports/ogre/0001-use-vcpkg-freeimage.patch deleted file mode 100644 index 0266e5e89..000000000 --- a/ports/ogre/0001-use-vcpkg-freeimage.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff --git a/OgreMain/CMakeLists.txt b/OgreMain/CMakeLists.txt -index 6a43378..22f950e 100644 ---- a/OgreMain/CMakeLists.txt -+++ b/OgreMain/CMakeLists.txt -@@ -220,7 +220,11 @@ endif () - list(APPEND HEADER_FILES ${THREAD_HEADER_FILES}) - - # Add needed definitions and nedmalloc include dir --add_definitions(-DOGRE_NONCLIENT_BUILD -DFREEIMAGE_LIB -D_MT -D_USRDLL) -+# vcpkg specific patch: we removed -DFREEIMAGE_LIB -+# from the defines, because vcpkg's freeimage can -+# be both static or dynamic, and FREEIMAGE_LIB -+# remove all the symbol exporting declaration from FreeImage.h -+add_definitions(-DOGRE_NONCLIENT_BUILD -D_MT -D_USRDLL) - include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src/nedmalloc) - - set(LIBRARIES ${PLATFORM_LIBS}) diff --git a/ports/ogre/0002-ogre-cmake-dir-as-option.patch b/ports/ogre/0002-ogre-cmake-dir-as-option.patch deleted file mode 100644 index c5d75e20c..000000000 --- a/ports/ogre/0002-ogre-cmake-dir-as-option.patch +++ /dev/null @@ -1,19 +0,0 @@ -diff --git a/CMake/CMakeLists.txt b/CMake/CMakeLists.txt -index 4c496b7..feb4017 100644 ---- a/CMake/CMakeLists.txt -+++ b/CMake/CMakeLists.txt -@@ -14,10 +14,12 @@ - ############################################################# - - if(WIN32 OR APPLE) -- set(OGRE_CMAKE_DIR "CMake") -+ set(OGRE_DEFAULT_CMAKE_DIR "CMake") - else() -- set(OGRE_CMAKE_DIR "${OGRE_LIB_DIRECTORY}/OGRE/cmake") -+ set(OGRE_DEFAULT_CMAKE_DIR "${OGRE_LIB_DIRECTORY}/OGRE/cmake") - endif() -+set(OGRE_CMAKE_DIR ${OGRE_DEFAULT_CMAKE_DIR} CACHE STRING "Install directory for CMake files.") -+mark_as_advanced(OGRE_DEFAULT_CMAKE_DIR) - - set(INST_FILES - Packages/FindOIS.cmake diff --git a/ports/ogre/0003-use-flat-installation.patch b/ports/ogre/0003-use-flat-installation.patch deleted file mode 100644 index c5a382c1f..000000000 --- a/ports/ogre/0003-use-flat-installation.patch +++ /dev/null @@ -1,41 +0,0 @@ -diff --git a/CMake/Utils/OgreConfigTargets.cmake b/CMake/Utils/OgreConfigTargets.cmake -index c6b3b40..2da7ebf 100644 ---- a/CMake/Utils/OgreConfigTargets.cmake -+++ b/CMake/Utils/OgreConfigTargets.cmake -@@ -41,15 +41,28 @@ if (NOT OGRE_RUNTIME_OUTPUT) - set(OGRE_RUNTIME_OUTPUT ${OGRE_BINARY_DIR}/bin) - endif () - -+option(OGRE_NO_INSTALLATION_SUFFIXES_ON_WIN32 "Do not install in configuration-specific directories in Windows" FALSE) -+ - if (WIN32) -- set(OGRE_RELEASE_PATH "/Release") -- set(OGRE_RELWDBG_PATH "/RelWithDebInfo") -- set(OGRE_MINSIZE_PATH "/MinSizeRel") -- set(OGRE_DEBUG_PATH "/Debug") -- set(OGRE_LIB_RELEASE_PATH "/Release") -- set(OGRE_LIB_RELWDBG_PATH "/RelWithDebInfo") -- set(OGRE_LIB_MINSIZE_PATH "/MinSizeRel") -- set(OGRE_LIB_DEBUG_PATH "/Debug") -+ if (OGRE_NO_INSTALLATION_SUFFIXES_ON_WIN32) -+ set(OGRE_RELEASE_PATH "") -+ set(OGRE_RELWDBG_PATH "") -+ set(OGRE_MINSIZE_PATH "") -+ set(OGRE_DEBUG_PATH "") -+ set(OGRE_LIB_RELEASE_PATH "") -+ set(OGRE_LIB_RELWDBG_PATH "") -+ set(OGRE_LIB_MINSIZE_PATH "") -+ set(OGRE_LIB_DEBUG_PATH "/") -+ else () -+ set(OGRE_RELEASE_PATH "/Release") -+ set(OGRE_RELWDBG_PATH "/RelWithDebInfo") -+ set(OGRE_MINSIZE_PATH "/MinSizeRel") -+ set(OGRE_DEBUG_PATH "/Debug") -+ set(OGRE_LIB_RELEASE_PATH "/Release") -+ set(OGRE_LIB_RELWDBG_PATH "/RelWithDebInfo") -+ set(OGRE_LIB_MINSIZE_PATH "/MinSizeRel") -+ set(OGRE_LIB_DEBUG_PATH "/Debug") -+ endif () - set(OGRE_PLUGIN_PATH "/opt") - set(OGRE_SAMPLE_PATH "/opt/samples") - elseif (UNIX) diff --git a/ports/ogre/001-cmake-install-dir.patch b/ports/ogre/001-cmake-install-dir.patch new file mode 100644 index 000000000..cf73bc977 --- /dev/null +++ b/ports/ogre/001-cmake-install-dir.patch @@ -0,0 +1,46 @@ +diff --git a/CMake/CMakeLists.txt b/CMake/CMakeLists.txt +index 3382de139..404c56e5e 100644 +--- a/CMake/CMakeLists.txt ++++ b/CMake/CMakeLists.txt +@@ -13,10 +13,12 @@ + # directory, but can also be used for custom projects. + ############################################################# + +-if(WIN32 OR APPLE) +- set(OGRE_CMAKE_DIR "CMake") +-else() +- set(OGRE_CMAKE_DIR "${OGRE_LIB_DIRECTORY}/OGRE/cmake") ++if (NOT DEFINED OGRE_CMAKE_DIR) ++ if(WIN32 OR APPLE) ++ set(OGRE_CMAKE_DIR "CMake") ++ else() ++ set(OGRE_CMAKE_DIR "${OGRE_LIB_DIRECTORY}/OGRE/cmake") ++ endif() + endif() + + set(INST_FILES +diff --git a/CMake/InstallResources.cmake b/CMake/InstallResources.cmake +index 0181259e2..346188c73 100644 +--- a/CMake/InstallResources.cmake ++++ b/CMake/InstallResources.cmake +@@ -245,12 +245,14 @@ endif () + # Create the CMake package files + include(CMakePackageConfigHelpers) + +-if (WIN32) +- set(OGRE_CMAKE_DIR CMake) +-elseif (UNIX) +- set(OGRE_CMAKE_DIR lib/OGRE/cmake) +-elseif (APPLE) +-endif () ++if (NOT DEFINED OGRE_CMAKE_DIR) ++ if (WIN32) ++ set(OGRE_CMAKE_DIR CMake) ++ elseif (UNIX) ++ set(OGRE_CMAKE_DIR lib/OGRE/cmake) ++ elseif (APPLE) ++ endif () ++endif() + configure_package_config_file(${OGRE_TEMPLATES_DIR}/OGREConfig.cmake.in ${OGRE_BINARY_DIR}/cmake/OGREConfig.cmake + INSTALL_DESTINATION ${OGRE_CMAKE_DIR} + PATH_VARS CMAKE_INSTALL_PREFIX) diff --git a/ports/ogre/CONTROL b/ports/ogre/CONTROL index 588c6413b..1533b8e8d 100644 --- a/ports/ogre/CONTROL +++ b/ports/ogre/CONTROL @@ -1,4 +1,14 @@ Source: ogre -Version: 1.9.0-1 +Version: 1.10.9-2 Build-Depends: freeimage, freetype, zlib, zziplib Description: 3D Object-Oriented Graphics Rendering Engine + +Feature: d3d9 +Description: Build Direct3D9 RenderSystem + +Feature: java +Description: Build Java (JNI) bindings + +Feature: python +Description: Build Python bindings +Build-Depends: python3 diff --git a/ports/ogre/OGREConfig.cmake b/ports/ogre/OGREConfig.cmake deleted file mode 100644 index a20544431..000000000 --- a/ports/ogre/OGREConfig.cmake +++ /dev/null @@ -1,37 +0,0 @@ -#.rst: -# OGREConfig -# ------------ -# -# Dummy OGREConfig to simplify use of OGRE-provided FindOGRE module. -# -# This file is provided as part of the vcpkg port of OGRE . -# It is meant to be found automatically by find_package(OGRE), -# but then offloads all the real work to the FindOGRE module by temporarly -# adding its directory to CMAKE_MODULE_PATH -# -# See the FindOGRE module to see the defined variables:: -# - -# Temporarly add the directory in which OGREConfig.cmake is contained to -# get access to the FindOGRE module -get_filename_component(SELF_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) -set(ORIGINAL_CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}) -list(APPEND CMAKE_MODULE_PATH ${SELF_DIR}) -find_package(OGRE MODULE) - -# Leave CMAKE_MODULE_PATH as we found it -set(CMAKE_MODULE_PATH ${ORIGINAL_CMAKE_MODULE_PATH}) - -# Handle components -# imported from https://github.com/Kitware/CMake/blob/v3.7.1/Modules/CMakePackageConfigHelpers.cmake#L300 -macro(check_required_components _NAME) - foreach(comp ${${_NAME}_FIND_COMPONENTS}) - if(NOT ${_NAME}_${comp}_FOUND) - if(${_NAME}_FIND_REQUIRED_${comp}) - set(${_NAME}_FOUND FALSE) - endif() - endif() - endforeach() -endmacro() - -check_required_components(OGRE)
\ No newline at end of file diff --git a/ports/ogre/portfile.cmake b/ports/ogre/portfile.cmake index a0989a4a2..f42b4c220 100644 --- a/ports/ogre/portfile.cmake +++ b/ports/ogre/portfile.cmake @@ -1,17 +1,19 @@ include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/sinbad-ogre-dd30349ea667) + +set(OGRE_VERSION 1.10.9) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/ogre-${OGRE_VERSION}) + vcpkg_download_distfile(ARCHIVE - URLS "https://bitbucket.org/sinbad/ogre/get/v1-9-0.zip" - FILENAME "ogre-v1-9-0.zip" - SHA512 de7315a2450ecf0d9073e6a8f0c54737e041016f7ad820556d10701c7d23eefab9d3473476a8e95447c30ab21518b8e4cfb0271db72494ea67a3dea284c9a3d3 + URLS "https://github.com/OGRECave/ogre/archive/v${OGRE_VERSION}.zip" + FILENAME "ogre-${OGRE_VERSION}.zip" + SHA512 2e68b30da6dc2e1df6575970623a14057675b069536ed0ac87faeefc8e295965ff7427c99385f29ab803b02bd5294f6886293aabdd17ec8c92f80baf53587457 ) vcpkg_extract_source_archive(${ARCHIVE}) vcpkg_apply_patches( SOURCE_PATH ${SOURCE_PATH} - PATCHES "${CMAKE_CURRENT_LIST_DIR}/0001-use-vcpkg-freeimage.patch" - "${CMAKE_CURRENT_LIST_DIR}/0002-ogre-cmake-dir-as-option.patch" - "${CMAKE_CURRENT_LIST_DIR}/0003-use-flat-installation.patch" + PATCHES + "${CMAKE_CURRENT_LIST_DIR}/001-cmake-install-dir.patch" ) if (VCPKG_LIBRARY_LINKAGE STREQUAL static) @@ -20,41 +22,110 @@ else() set(OGRE_STATIC OFF) endif() +# Configure features + +if("d3d9" IN_LIST FEATURES) + set(WITH_D3D9 ON) +else() + set(WITH_D3D9 OFF) +endif() + +if("java" IN_LIST FEATURES) + set(WITH_JAVA ON) +else() + set(WITH_JAVA OFF) +endif() + +if("python" IN_LIST FEATURES) + set(WITH_PYTHON ON) +else() + set(WITH_PYTHON OFF) +endif() + vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} - OPTIONS -DOGRE_USE_BOOST:BOOL=OFF - -DOGRE_BUILD_RENDERSYSTEM_D3D9:BOOL=OFF - -DOGRE_INSTALL_DEPENDENCIES:BOOL=OFF - -DOGRE_COPY_DEPENDENCIES:BOOL=OFF - -DOGRE_BUILD_TOOLS:BOOL=OFF - -DOGRE_CMAKE_DIR:STRING=share/ogre - -DOGRE_STATIC:BOOL=${OGRE_STATIC} - -DOGRE_INSTALL_SAMPLES:BOOL=OFF - -DOGRE_INSTALL_TOOLS:BOOL=OFF - # We disable this option because it is broken and we rely on vcpkg_copy_pdbs - -DOGRE_INSTALL_PDB:BOOL=OFF - -DOGRE_BUILD_DOCS:BOOL=OFF - -DOGRE_INSTALL_DOCS:BOOL=OFF - -DOGRE_INSTALL_SAMPLES_SOURCE:BOOL=OFF - -DOGRE_NO_INSTALLATION_SUFFIXES_ON_WIN32:BOOL=ON + PREFER_NINJA + OPTIONS + -DOGRE_BUILD_DEPENDENCIES=OFF + -DOGRE_BUILD_SAMPLES=OFF + -DOGRE_BUILD_TESTS=OFF + -DOGRE_BUILD_TOOLS=OFF + -DOGRE_BUILD_MSVC_MP=ON + -DOGRE_BUILD_MSVC_ZM=ON + -DOGRE_INSTALL_DEPENDENCIES=OFF + -DOGRE_INSTALL_DOCS=OFF + -DOGRE_INSTALL_PDB=OFF + -DOGRE_INSTALL_SAMPLES=OFF + -DOGRE_INSTALL_TOOLS=OFF + -DOGRE_INSTALL_CMAKE=ON + -DOGRE_INSTALL_VSPROPS=OFF + -DOGRE_STATIC=${OGRE_STATIC} + -DOGRE_UNITY_BUILD=OFF + -DOGRE_USE_STD11=ON + -DOGRE_CONFIG_THREAD_PROVIDER=std + -DOGRE_NODE_STORAGE_LEGACY=OFF + -DOGRE_BUILD_RENDERSYSTEM_D3D11=ON + -DOGRE_BUILD_RENDERSYSTEM_GL=ON + -DOGRE_BUILD_RENDERSYSTEM_GL3PLUS=ON + -DOGRE_BUILD_RENDERSYSTEM_GLES=OFF + -DOGRE_BUILD_RENDERSYSTEM_GLES2=OFF +# Optional stuff + -DOGRE_BUILD_COMPONENT_JAVA=${WITH_JAVA} + -DOGRE_BUILD_COMPONENT_PYTHON=${WITH_PYTHON} + -DOGRE_BUILD_RENDERSYSTEM_D3D9=${WITH_D3D9} +# vcpkg specific stuff + -DOGRE_CMAKE_DIR=share/ogre ) vcpkg_install_cmake() -# Add a OGREConfig.cmake to simplify the process of finding vcpkg OGRE -file(COPY ${CMAKE_CURRENT_LIST_DIR}/OGREConfig.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/ogre) - -# Remove debug includes +# Remove unwanted files file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) -# Remove debug CMake files -# Note that at the moment OGRE do not export imported targets, -# so we do not need to copy the debug imported targets in the -# release CMake path +vcpkg_fixup_cmake_targets(CONFIG_PATH share/ogre) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) +file(GLOB REL_CFGS ${CURRENT_PACKAGES_DIR}/bin/*.cfg) +file(COPY ${REL_CFGS} DESTINATION ${CURRENT_PACKAGES_DIR}/lib) + +file(GLOB DBG_CFGS ${CURRENT_PACKAGES_DIR}/debug/bin/*.cfg) +file(COPY ${DBG_CFGS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) + +file(REMOVE ${REL_CFGS} ${DBG_CFGS}) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin) +endif() + +file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link ${CURRENT_PACKAGES_DIR}/lib/manual-link) + +file(GLOB MAIN_REL ${CURRENT_PACKAGES_DIR}/lib/OgreMain.lib ${CURRENT_PACKAGES_DIR}/lib/OgreMainStatic.lib) +file(COPY ${MAIN_REL} DESTINATION ${CURRENT_PACKAGES_DIR}/lib/manual-link) +file(GLOB MAIN_DBG ${CURRENT_PACKAGES_DIR}/debug/lib/OgreMain_d.lib ${CURRENT_PACKAGES_DIR}/debug/lib/OgreMainStatic_d.lib) +file(COPY ${MAIN_DBG} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link) +file(REMOVE ${MAIN_REL} ${MAIN_DBG}) + +# Ogre installs custom cmake config files which don't follow the normal pattern. +# This normally makes them completely incompatible with multi-config generators, but with some effort it can be done. +file(READ "${CURRENT_PACKAGES_DIR}/share/ogre/OGREConfig.cmake" _contents) +string(REPLACE "${CURRENT_INSTALLED_DIR}" "\${PACKAGE_PREFIX_DIR}" _contents "${_contents}") +string(REPLACE "SDL2main.lib" "SDL2main$<$<CONFIG:Debug>:d>.lib" _contents "${_contents}") +string(REPLACE "SDL2.lib" "SDL2$<$<CONFIG:Debug>:d>.lib" _contents "${_contents}") +string(REPLACE "\${PACKAGE_PREFIX_DIR}/lib" "\${PACKAGE_PREFIX_DIR}$<$<CONFIG:Debug>:/debug>/lib" _contents "${_contents}") +string(REPLACE "{OGRE_PREFIX_DIR}/lib" "{OGRE_PREFIX_DIR}$<$<CONFIG:Debug>:/debug>/lib" _contents "${_contents}") + +string(REPLACE "\"Ogre\${COMPONENT}\"" "\"Ogre\${COMPONENT}$<$<CONFIG:Debug>:_d>\"" _contents "${_contents}") +string(REPLACE "\"Ogre\${COMPONENT}Static\"" "\"Ogre\${COMPONENT}Static$<$<CONFIG:Debug>:_d>\"" _contents "${_contents}") + +string(REPLACE "\"\${TYPE}_\${COMPONENT}\"" "\"\${TYPE}_\${COMPONENT}$<$<CONFIG:Debug>:_d>\"" _contents "${_contents}") +string(REPLACE "\"\${TYPE}_\${COMPONENT}Static\"" "\"\${TYPE}_\${COMPONENT}Static$<$<CONFIG:Debug>:_d>\"" _contents "${_contents}") + +string(REPLACE "\"OgreMain\"" "\"\${PACKAGE_PREFIX_DIR}/lib/manual-link/OgreMain$<$<CONFIG:Debug>:_d>.lib\"" _contents "${_contents}") +string(REPLACE "\"OgreMainStatic\"" "\"\${PACKAGE_PREFIX_DIR}/lib/manual-link/OgreMainStatic$<$<CONFIG:Debug>:_d>.lib\"" _contents "${_contents}") + +file(WRITE "${CURRENT_PACKAGES_DIR}/share/ogre/OGREConfig.cmake" "${_contents}") + # Handle copyright -file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/ogre) -file(RENAME ${CURRENT_PACKAGES_DIR}/share/ogre/COPYING ${CURRENT_PACKAGES_DIR}/share/ogre/copyright) +file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/ogre RENAME copyright) -vcpkg_copy_pdbs()
\ No newline at end of file +vcpkg_copy_pdbs() diff --git a/ports/openal-soft/CONTROL b/ports/openal-soft/CONTROL index 094f5c188..f7af2c687 100644 --- a/ports/openal-soft/CONTROL +++ b/ports/openal-soft/CONTROL @@ -1,3 +1,3 @@ Source: openal-soft -Version: 1.18.1-1 +Version: 1.18.2-1 Description: OpenAL Soft is an LGPL-licensed, cross-platform, software implementation of the OpenAL 3D audio API. diff --git a/ports/openal-soft/portfile.cmake b/ports/openal-soft/portfile.cmake index de9538b5e..b1421f1f5 100644 --- a/ports/openal-soft/portfile.cmake +++ b/ports/openal-soft/portfile.cmake @@ -6,8 +6,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO kcat/openal-soft - REF openal-soft-1.18.1 - SHA512 6e9d65dafbd77ca5d7badb1999b08a104e9c7e6c6637fb9ccca946de5bdfc6266de9d316ce06a979c94309ac9e0e5c1fac27b2673297f9062ef67f0e8a54e39c + REF openal-soft-1.18.2 + SHA512 85c62d3d16d2a371c1930310eed7219031203824289d9a30d60000f8e124ffa67e1bbfb15f1ba6841ef7346e88c000b9cca51c79d32c02e5dc9870392c536723 HEAD_REF master ) diff --git a/ports/opencv/CONTROL b/ports/opencv/CONTROL index c2814c9c2..2c80e5767 100644 --- a/ports/opencv/CONTROL +++ b/ports/opencv/CONTROL @@ -1,5 +1,27 @@ Source: opencv -Version: 3.3.0-4 -# Optional: Add in vtk to build with VTK and cuda to build with CUDA -Build-Depends: zlib, libpng, libjpeg-turbo, tiff, protobuf (windows), ffmpeg +Version: 3.3.1-9 +Build-Depends: zlib, libpng, libjpeg-turbo, tiff, protobuf (windows) Description: computer vision library + +Feature: sfm +Build-Depends: eigen3, glog, gflags +Description: opencv_sfm module + +Feature: cuda +Build-Depends: cuda +Description: CUDA support for opencv + +Feature: ffmpeg +Description: prebuilt ffmpeg support for opencv + +Feature: qt +Build-Depends: qt5 +Description: Qt GUI support for opencv + +Feature: vtk +Build-Depends: vtk +Description: vtk support for opencv + +Feature: gdcm +Build-Depends: gdcm2 +Description: GDCM support for opencv diff --git a/ports/opencv/msvs-fix-2017-u5.patch b/ports/opencv/msvs-fix-2017-u5.patch new file mode 100644 index 000000000..ab0d0d0ff --- /dev/null +++ b/ports/opencv/msvs-fix-2017-u5.patch @@ -0,0 +1,39 @@ +From 62737c777c9314ee2e4b4e595daa830ba12765e2 Mon Sep 17 00:00:00 2001 +From: Mikhail Paulyshka <me@mixaill.tk> +Date: Sat, 4 Nov 2017 23:52:37 +0300 +Subject: [PATCH] cmake: add support for MSVS 2017 update 5 + +--- + cmake/OpenCVDetectCXXCompiler.cmake | 2 +- + cmake/templates/OpenCVConfig.root-WIN32.cmake.in | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/cmake/OpenCVDetectCXXCompiler.cmake b/cmake/OpenCVDetectCXXCompiler.cmake +index cfb613b..3874467 100644 +--- a/cmake/OpenCVDetectCXXCompiler.cmake ++++ b/cmake/OpenCVDetectCXXCompiler.cmake +@@ -114,7 +114,7 @@ if(MSVC) + set(OpenCV_RUNTIME vc12) + elseif(MSVC_VERSION EQUAL 1900) + set(OpenCV_RUNTIME vc14) +- elseif(MSVC_VERSION EQUAL 1910 OR MSVC_VERSION EQUAL 1911) ++ elseif(MSVC_VERSION EQUAL 1910 OR MSVC_VERSION EQUAL 1911 OR MSVC_VERSION EQUAL 1912) + set(OpenCV_RUNTIME vc15) + else() + message(WARNING "OpenCV does not recognize MSVC_VERSION \"${MSVC_VERSION}\". Cannot set OpenCV_RUNTIME") +diff --git a/cmake/templates/OpenCVConfig.root-WIN32.cmake.in b/cmake/templates/OpenCVConfig.root-WIN32.cmake.in +index 7dc6666..846c400 100644 +--- a/cmake/templates/OpenCVConfig.root-WIN32.cmake.in ++++ b/cmake/templates/OpenCVConfig.root-WIN32.cmake.in +@@ -78,7 +78,7 @@ if(MSVC) + set(OpenCV_RUNTIME vc12) + elseif(MSVC_VERSION EQUAL 1900) + set(OpenCV_RUNTIME vc14) +- elseif(MSVC_VERSION EQUAL 1910 OR MSVC_VERSION EQUAL 1911) ++ elseif(MSVC_VERSION EQUAL 1910 OR MSVC_VERSION EQUAL 1911 OR MSVC_VERSION EQUAL 1912) + set(OpenCV_RUNTIME vc15) + endif() + elseif(MINGW) +-- +2.14.1.windows.1 + diff --git a/ports/opencv/no-double-expand-enable-pylint.patch b/ports/opencv/no-double-expand-enable-pylint.patch new file mode 100644 index 000000000..9eb5563d8 --- /dev/null +++ b/ports/opencv/no-double-expand-enable-pylint.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index c46fc17..07507b6 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -314,7 +314,7 @@ OCV_OPTION(CV_ENABLE_INTRINSICS "Use intrinsic-based optimized code" ON ) + OCV_OPTION(CV_DISABLE_OPTIMIZATION "Disable explicit optimized code (dispatched code/intrinsics/loop unrolling/etc)" OFF ) + OCV_OPTION(CV_TRACE "Enable OpenCV code trace" ON) + +-OCV_OPTION(ENABLE_PYLINT "Add target with Pylint checks" (${BUILD_DOCS} OR ${BUILD_EXAMPLES}) ) ++OCV_OPTION(ENABLE_PYLINT "Add target with Pylint checks" (BUILD_DOCS OR BUILD_EXAMPLES) ) + + if(ENABLE_IMPL_COLLECTION) + add_definitions(-DCV_COLLECT_IMPL_DATA) diff --git a/ports/opencv/portfile.cmake b/ports/opencv/portfile.cmake index d21956108..b309edb89 100644 --- a/ports/opencv/portfile.cmake +++ b/ports/opencv/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO opencv/opencv - REF 3.3.0 - SHA512 13dee5c1c5fec1dccdbb05879d299b93ef8ddeb87f561a6c4178e33a4cf5ae919765119068d0387a3efea0e09a625ca993cffac60a772159690fcbee4e8d70fb + REF 3.3.1 + SHA512 ee228953b621be022c203e3d60b06be524bd134ba6188c447216ee89e14dfddeac7d6aaf85c5a0b0008b010254e2aa711813bfdb691a77b0bdba33682c6ca68c HEAD_REF master ) @@ -13,14 +13,16 @@ vcpkg_apply_patches( PATCHES "${CMAKE_CURRENT_LIST_DIR}/opencv-installation-options.patch" "${CMAKE_CURRENT_LIST_DIR}/001-fix-uwp.patch" "${CMAKE_CURRENT_LIST_DIR}/002-fix-uwp.patch" + "${CMAKE_CURRENT_LIST_DIR}/no-double-expand-enable-pylint.patch" + "${CMAKE_CURRENT_LIST_DIR}/msvs-fix-2017-u5.patch" ) file(REMOVE_RECURSE ${SOURCE_PATH}/3rdparty/libjpeg ${SOURCE_PATH}/3rdparty/libpng ${SOURCE_PATH}/3rdparty/zlib ${SOURCE_PATH}/3rdparty/libtiff) vcpkg_from_github( OUT_SOURCE_PATH CONTRIB_SOURCE_PATH REPO opencv/opencv_contrib - REF 3.3.0 - SHA512 ebe3dbe6c754c6fbaabbf6b0d2a4209964e625fd68e593f30ce043792740c8c1d4440d7870949b5b33f488fd7e2e05f3752287b7f50dd24c29202e268776520e + REF 3.3.1 + SHA512 b5f35f68faab811a440b6af6b33c766dcdf4cc8547c0a4ed3a6a3da80ca8ae77618039d94bee6d249e96899765bdbb34c997bd7ee53d864c43427eff92f7ea34 HEAD_REF master ) @@ -31,43 +33,91 @@ vcpkg_apply_patches( string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" BUILD_WITH_STATIC_CRT) +set(BUILD_opencv_sfm OFF) +if("sfm" IN_LIST FEATURES) + set(BUILD_opencv_sfm ON) +endif() + +set(WITH_CUDA OFF) +if("cuda" IN_LIST FEATURES) + set(WITH_CUDA ON) +endif() + +set(WITH_FFMPEG OFF) +if("ffmpeg" IN_LIST FEATURES) + set(WITH_FFMPEG ON) +endif() + +set(WITH_QT OFF) +if("qt" IN_LIST FEATURES) + set(WITH_QT ON) +endif() + +set(WITH_VTK OFF) +if("vtk" IN_LIST FEATURES) + set(WITH_VTK ON) +endif() + +set(WITH_GDCM OFF) +if("gdcm" IN_LIST FEATURES) + set(WITH_GDCM ON) +endif() + +set(WITH_MSMF ON) +if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + set(WITH_MSMF OFF) +endif() + vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} OPTIONS - "-DOPENCV_DOWNLOAD_PATH=${DOWNLOADS}/opencv-cache" - -DBUILD_WITH_STATIC_CRT=${BUILD_WITH_STATIC_CRT} - -DBUILD_ZLIB=OFF - -DBUILD_TIFF=OFF - -DBUILD_JPEG=OFF - -DBUILD_PNG=OFF - -DBUILD_opencv_python2=OFF - -DBUILD_opencv_python3=OFF - -DBUILD_opencv_flann=ON - -DBUILD_opencv_apps=OFF + # Ungrouped Entries + -DOpenCV_DISABLE_ARCH_PATH=ON + -DPROTOBUF_UPDATE_FILES=ON + -DUPDATE_PROTO_FILES=ON + # BUILD -DBUILD_DOCS=OFF -DBUILD_EXAMPLES=OFF + -DBUILD_JPEG=OFF -DBUILD_PACKAGE=OFF -DBUILD_PERF_TESTS=OFF + -DBUILD_PNG=OFF + -DBUILD_PROTOBUF=OFF -DBUILD_TESTS=OFF + -DBUILD_TIFF=OFF -DBUILD_WITH_DEBUG_INFO=ON - -DOpenCV_DISABLE_ARCH_PATH=ON - -DWITH_FFMPEG=ON + -DBUILD_WITH_STATIC_CRT=${BUILD_WITH_STATIC_CRT} + -DBUILD_ZLIB=OFF + -DBUILD_opencv_apps=OFF + -DBUILD_opencv_dnn=ON + -DBUILD_opencv_flann=ON + -DBUILD_opencv_python2=OFF + -DBUILD_opencv_python3=OFF + -DBUILD_opencv_sfm=${BUILD_opencv_sfm} + # CMAKE + -DCMAKE_DISABLE_FIND_PACKAGE_JNI=ON + # ENABLE + -DENABLE_CXX11=ON + -DENABLE_PYLINT=OFF + # INSTALL -DINSTALL_FORCE_UNIX_PATHS=ON + -DINSTALL_LICENSE=OFF + # OPENCV -DOPENCV_CONFIG_INSTALL_PATH=share/opencv + "-DOPENCV_DOWNLOAD_PATH=${DOWNLOADS}/opencv-cache" + -DOPENCV_EXTRA_MODULES_PATH=${CONTRIB_SOURCE_PATH}/modules -DOPENCV_OTHER_INSTALL_PATH=share/opencv - -DINSTALL_LICENSE=OFF - # Optional: change to ON to build with CUDA - -DWITH_CUDA=OFF + # WITH -DWITH_CUBLAS=OFF - -DWITH_OPENCLAMDBLAS=OFF + -DWITH_CUDA=${WITH_CUDA} + -DWITH_FFMPEG=${WITH_FFMPEG} -DWITH_LAPACK=OFF - -DBUILD_opencv_dnn=ON - -DOPENCV_EXTRA_MODULES_PATH=${CONTRIB_SOURCE_PATH}/modules - -DBUILD_PROTOBUF=OFF - -DUPDATE_PROTO_FILES=ON - -DPROTOBUF_UPDATE_FILES=ON - # Optional: change to ON to build with VTK - -DWITH_VTK=OFF + -DWITH_MSMF=${WITH_MSMF} + -DWITH_OPENCLAMDBLAS=OFF + -DWITH_OPENGL=ON + -DWITH_QT=${WITH_QT} + -DWITH_VTK=${WITH_VTK} + -DWITH_GDCM=${WITH_GDCM} OPTIONS_DEBUG -DINSTALL_HEADERS=OFF -DINSTALL_OTHER=OFF @@ -151,4 +201,6 @@ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) vcpkg_copy_pdbs() -set(VCPKG_LIBRARY_LINKAGE "dynamic")
\ No newline at end of file +set(VCPKG_LIBRARY_LINKAGE "dynamic") + +set(VCPKG_POLICY_ALLOW_OBSOLETE_MSVCRT enabled) diff --git a/ports/opengl/CONTROL b/ports/opengl/CONTROL index e2db823cf..15acb1f0f 100644 --- a/ports/opengl/CONTROL +++ b/ports/opengl/CONTROL @@ -1,3 +1,3 @@ Source: opengl -Version: 0.0-3 +Version: 0.0-4 Description: Open Graphics Library (OpenGL)[3][4][5] is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics.
\ No newline at end of file diff --git a/ports/opengl/portfile.cmake b/ports/opengl/portfile.cmake index 36622393b..154cb039e 100644 --- a/ports/opengl/portfile.cmake +++ b/ports/opengl/portfile.cmake @@ -4,20 +4,26 @@ vcpkg_get_program_files_32_bit(PROGRAM_FILES_32_BIT) vcpkg_get_windows_sdk(WINDOWS_SDK) if (WINDOWS_SDK MATCHES "10.") - set(LIBFILEPATH "${PROGRAM_FILES_32_BIT}\\Windows Kits\\10\\Lib\\${WINDOWS_SDK}\\um\\${TRIPLET_SYSTEM_ARCH}\\OpenGL32.Lib") - set(LICENSEPATH "${PROGRAM_FILES_32_BIT}\\Windows Kits\\10\\Licenses\\${WINDOWS_SDK}\\sdk_license.rtf") - set(HEADERSPATH "${PROGRAM_FILES_32_BIT}\\Windows Kits\\10\\Include\\${WINDOWS_SDK}\\um") + set(LIBGLFILEPATH "${PROGRAM_FILES_32_BIT}\\Windows Kits\\10\\Lib\\${WINDOWS_SDK}\\um\\${TRIPLET_SYSTEM_ARCH}\\OpenGL32.Lib") + set(LIBGLUFILEPATH "${PROGRAM_FILES_32_BIT}\\Windows Kits\\10\\Lib\\${WINDOWS_SDK}\\um\\${TRIPLET_SYSTEM_ARCH}\\GlU32.Lib") + set(LICENSEPATH "${PROGRAM_FILES_32_BIT}\\Windows Kits\\10\\Licenses\\${WINDOWS_SDK}\\sdk_license.rtf") + set(HEADERSPATH "${PROGRAM_FILES_32_BIT}\\Windows Kits\\10\\Include\\${WINDOWS_SDK}\\um") elseif(WINDOWS_SDK MATCHES "8.") - set(LIBFILEPATH "${PROGRAM_FILES_32_BIT}\\Windows Kits\\8.1\\Lib\\winv6.3\\um\\${TRIPLET_SYSTEM_ARCH}\\OpenGL32.Lib") - set(HEADERSPATH "${PROGRAM_FILES_32_BIT}\\Windows Kits\\8.1\\Include\\um") + set(LIBGLFILEPATH "${PROGRAM_FILES_32_BIT}\\Windows Kits\\8.1\\Lib\\winv6.3\\um\\${TRIPLET_SYSTEM_ARCH}\\OpenGL32.Lib") + set(LIBGLUFILEPATH "${PROGRAM_FILES_32_BIT}\\Windows Kits\\8.1\\Lib\\winv6.3\\um\\${TRIPLET_SYSTEM_ARCH}\\GlU32.Lib") + set(HEADERSPATH "${PROGRAM_FILES_32_BIT}\\Windows Kits\\8.1\\Include\\um") else() message(FATAL_ERROR "Portfile not yet configured for Windows SDK with version: ${WINDOWS_SDK}") endif() -if (NOT EXISTS "${LIBFILEPATH}") +if (NOT EXISTS "${LIBGLFILEPATH}") message(FATAL_ERROR "Cannot find Windows ${WINDOWS_SDK} SDK. File does not exist: ${LIBFILEPATH}") endif() +if (NOT EXISTS "${LIBGLUFILEPATH}") + message(FATAL_ERROR "Cannot find Windows ${WINDOWS_SDK} SDK. File does not exist: ${LIBGLUFILEPATH}") +endif() + file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/include/gl ${CURRENT_PACKAGES_DIR}/lib @@ -30,8 +36,10 @@ file(COPY "${HEADERSPATH}\\gl\\GLU.h" DESTINATION ${CURRENT_PACKAGES_DIR}/include/gl ) -file(COPY ${LIBFILEPATH} DESTINATION ${CURRENT_PACKAGES_DIR}/lib) -file(COPY ${LIBFILEPATH} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) +file(COPY ${LIBGLFILEPATH} DESTINATION ${CURRENT_PACKAGES_DIR}/lib) +file(COPY ${LIBGLUFILEPATH} DESTINATION ${CURRENT_PACKAGES_DIR}/lib) +file(COPY ${LIBGLFILEPATH} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) +file(COPY ${LIBGLUFILEPATH} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) if (DEFINED LICENSEPATH) file(COPY ${LICENSEPATH} DESTINATION ${CURRENT_PACKAGES_DIR}/share/opengl) diff --git a/ports/openssl/CONTROL b/ports/openssl/CONTROL index f3f065c13..e5d1bf8bc 100644 --- a/ports/openssl/CONTROL +++ b/ports/openssl/CONTROL @@ -1,3 +1,3 @@ Source: openssl -Version: 1.0.2l-3 +Version: 1.0.2m Description: OpenSSL is an open source project that provides a robust, commercial-grade, and full-featured toolkit for the Transport Layer Security (TLS) and Secure Sockets Layer (SSL) protocols. It is also a general-purpose cryptography library. diff --git a/ports/openssl/portfile-uwp.cmake b/ports/openssl/portfile-uwp.cmake index 4f83f2eed..0331e0f77 100644 --- a/ports/openssl/portfile-uwp.cmake +++ b/ports/openssl/portfile-uwp.cmake @@ -90,3 +90,5 @@ file(INSTALL DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/openssl RENAME copyright) + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) diff --git a/ports/openssl/portfile.cmake b/ports/openssl/portfile.cmake index 9763f740e..1a856e17d 100644 --- a/ports/openssl/portfile.cmake +++ b/ports/openssl/portfile.cmake @@ -4,7 +4,7 @@ if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") endif() include(vcpkg_common_functions) -set(OPENSSL_VERSION 1.0.2l) +set(OPENSSL_VERSION 1.0.2m) set(MASTER_COPY_SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/openssl-${OPENSSL_VERSION}) vcpkg_find_acquire_program(PERL) @@ -19,7 +19,7 @@ set(ENV{PATH} "${NASM_EXE_PATH};$ENV{PATH};${PERL_EXE_PATH}") vcpkg_download_distfile(OPENSSL_SOURCE_ARCHIVE URLS "https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz" "https://www.openssl.org/source/old/1.0.2/openssl-${OPENSSL_VERSION}.tar.gz" FILENAME "openssl-${OPENSSL_VERSION}.tar.gz" - SHA512 047d964508ad6025c79caabd8965efd2416dc026a56183d0ef4de7a0a6769ce8e0b4608a3f8393d326f6d03b26a2b067e6e0c750f35b20be190e595e8290c0e3 + SHA512 7619aa223ee50d0f5e270ac9090e95b2b1ba5dfc656c98f625a9a277dda472fb960a4e89a7ba300044cb401b2072b2ca6a6fcce8206d927bf373d1c981806a93 ) vcpkg_extract_source_archive(${OPENSSL_SOURCE_ARCHIVE}) @@ -145,3 +145,5 @@ if(VCPKG_LIBRARY_LINKAGE STREQUAL static) endif() vcpkg_copy_pdbs() + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) diff --git a/ports/openssl/usage b/ports/openssl/usage new file mode 100644 index 000000000..f535cb6a4 --- /dev/null +++ b/ports/openssl/usage @@ -0,0 +1,4 @@ +The package openssl is compatible with built-in CMake targets:
+
+ find_package(OpenSSL REQUIRED)
+ target_link_libraries(main PRIVATE OpenSSL::SSL OpenSSL::Crypto)
diff --git a/ports/openvdb/AddLinkageAndToolsChoice.patch b/ports/openvdb/AddLinkageAndToolsChoice.patch new file mode 100644 index 000000000..3d155cbe4 --- /dev/null +++ b/ports/openvdb/AddLinkageAndToolsChoice.patch @@ -0,0 +1,225 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 712fb1d..440a63a 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -32,6 +32,9 @@ PROJECT ( OpenVDB ) + + ENABLE_TESTING() + ++OPTION ( OPENVDB_BUILD_TOOLS "Build OpenVDB utilities" ON ) ++OPTION ( OPENVDB_STATIC "Build statically linked library" ON ) ++OPTION ( OPENVDB_SHARED "Build dynamically linked library" ON ) + OPTION ( OPENVDB_BUILD_UNITTESTS "Build the OpenVDB unit tests" ON ) + OPTION ( OPENVDB_BUILD_DOCS "Build the OpenVDB documentation" OFF ) + OPTION ( OPENVDB_BUILD_PYTHON_MODULE "Build the pyopenvdb Python module" ON ) +diff --git a/openvdb/CMakeLists.txt b/openvdb/CMakeLists.txt +index 5703eb9..6ff3c6a 100644 +--- a/openvdb/CMakeLists.txt ++++ b/openvdb/CMakeLists.txt +@@ -26,6 +26,7 @@ + # + PROJECT ( OpenVDBCore ) + ++IF ( OPENVDB_BUILD_TOOLS ) + IF ( USE_GLFW3 ) + FIND_PACKAGE ( GLFW3 REQUIRED ) + SET ( OPENVDB_USE_GLFW_FLAG "-DOPENVDB_USE_GLFW_3" ) +@@ -42,9 +43,12 @@ ELSE () + SET ( GLFW_LINK_LIBRARY ${GLFW_glfw_LIBRARY} ) + SET ( GLFW_INCLUDE_DIRECTORY ${GLFW_INCLUDE_DIR} CACHE STRING "GLFW include directory") + ENDIF () ++ENDIF ( OPENVDB_BUILD_TOOLS ) + + IF (WIN32) ++ IF ( OPENVDB_BUILD_TOOLS ) + FIND_PACKAGE ( GLEW REQUIRED ) ++ ENDIF ( OPENVDB_BUILD_TOOLS ) + ELSE () + FIND_PACKAGE ( Threads REQUIRED ) + ENDIF() +@@ -75,7 +79,7 @@ SET ( OPENVDB_PATCH_VERSION_NUMBER ${_openvdb_patch_version_number} CACHE STRING + # MESSAGE ( "OPENVDB_MINOR_VERSION_NUMBER = ${OPENVDB_MINOR_VERSION_NUMBER}" ) + # MESSAGE ( "OPENVDB_PATCH_VERSION_NUMBER = ${OPENVDB_PATCH_VERSION_NUMBER}" ) + +-FIND_PACKAGE ( Boost ${MINIMUM_BOOST_VERSION} REQUIRED COMPONENTS iostreams system thread ${OPENVDB_BOOST_PYTHON_LIBRARY_COMPONENT_NAME} ) ++FIND_PACKAGE ( Boost ${MINIMUM_BOOST_VERSION} REQUIRED COMPONENTS iostreams system thread date_time ${OPENVDB_BOOST_PYTHON_LIBRARY_COMPONENT_NAME} ) + IF (WIN32 AND OPENVDB_DISABLE_BOOST_IMPLICIT_LINKING) + ADD_DEFINITIONS ( -DBOOST_ALL_NO_LIB ) + ENDIF () +@@ -85,7 +89,9 @@ FIND_PACKAGE ( TBB REQUIRED ) + FIND_PACKAGE ( ZLIB REQUIRED ) + FIND_PACKAGE ( ILMBase REQUIRED ) + FIND_PACKAGE ( OpenEXR REQUIRED ) ++IF ( OPENVDB_BUILD_TOOLS ) + FIND_PACKAGE ( OpenGL REQUIRED ) ++ENDIF () + IF (OPENVDB_BUILD_DOCS) + FIND_PACKAGE ( Doxygen REQUIRED ) + ENDIF () +@@ -127,7 +133,10 @@ INCLUDE_DIRECTORIES ( SYSTEM ${BLOSC_INCLUDE_DIR} ) + INCLUDE_DIRECTORIES ( SYSTEM ${CPPUNIT_INCLUDE_DIR} ) + + IF (WIN32) +- ADD_DEFINITIONS ( -D_WIN32 -DNOMINMAX -DHALF_EXPORTS -DOPENVDB_DLL ) ++ ADD_DEFINITIONS ( -D_WIN32 -DNOMINMAX ) ++ IF ( OPENVDB_SHARED ) ++ ADD_DEFINITIONS ( -DOPENVDB_DLL ) ++ ENDIF () + ELSE () + ADD_DEFINITIONS ( -pthread -fPIC ) + ENDIF () +@@ -167,16 +176,20 @@ SET ( OPENVDB_LIBRARY_SOURCE_FILES + + SET_SOURCE_FILES_PROPERTIES ( ${OPENVDB_LIBRARY_SOURCE_FILES} + PROPERTIES +- COMPILE_FLAGS "-DOPENVDB_PRIVATE -DOPENVDB_USE_BLOSC ${OPENVDB_USE_GLFW_FLAG}" ++ COMPILE_FLAGS "-DOPENVDB_PRIVATE -DOPENVDB_USE_BLOSC ${OPENVDB_USE_GLFW_FLAG} /bigobj" + ) +- ++IF ( OPENVDB_STATIC ) + ADD_LIBRARY ( openvdb_static STATIC + ${OPENVDB_LIBRARY_SOURCE_FILES} + ) ++ENDIF () ++IF ( OPENVDB_SHARED ) + ADD_LIBRARY ( openvdb_shared SHARED + ${OPENVDB_LIBRARY_SOURCE_FILES} + ) ++ENDIF () + ++IF ( OPENVDB_STATIC ) + TARGET_LINK_LIBRARIES ( openvdb_static + ${Boost_IOSTREAMS_LIBRARY} + ${Boost_SYSTEM_LIBRARY} +@@ -185,6 +198,8 @@ TARGET_LINK_LIBRARIES ( openvdb_static + ${ZLIB_LIBRARY} + ${BLOSC_blosc_LIBRARY} + ) ++ENDIF () ++IF ( OPENVDB_SHARED ) + TARGET_LINK_LIBRARIES ( openvdb_shared + ${Boost_IOSTREAMS_LIBRARY} + ${Boost_SYSTEM_LIBRARY} +@@ -193,7 +208,9 @@ TARGET_LINK_LIBRARIES ( openvdb_shared + ${ZLIB_LIBRARY} + ${BLOSC_blosc_LIBRARY} + ) ++ENDIF () + ++IF ( OPENVDB_STATIC ) + IF (WIN32) + SET_TARGET_PROPERTIES ( openvdb_static + PROPERTIES OUTPUT_NAME libopenvdb +@@ -203,7 +220,9 @@ ELSE() + PROPERTIES OUTPUT_NAME openvdb + ) + ENDIF() ++ENDIF () + ++IF ( OPENVDB_SHARED ) + SET_TARGET_PROPERTIES( + openvdb_shared + PROPERTIES +@@ -211,13 +230,15 @@ SET_TARGET_PROPERTIES( + SOVERSION ${OPENVDB_MAJOR_VERSION_NUMBER}.${OPENVDB_MINOR_VERSION_NUMBER} + VERSION ${OPENVDB_MAJOR_VERSION_NUMBER}.${OPENVDB_MINOR_VERSION_NUMBER}.${OPENVDB_PATCH_VERSION_NUMBER} + ) ++ENDIF () + + SET ( VDB_PRINT_SOURCE_FILES cmd/openvdb_print/main.cc ) + SET_SOURCE_FILES_PROPERTIES ( ${VDB_PRINT_SOURCE_FILES} + PROPERTIES +- COMPILE_FLAGS "-DOPENVDB_USE_BLOSC ${OPENVDB_USE_GLFW_FLAG}" ++ COMPILE_FLAGS "-DOPENVDB_USE_BLOSC ${OPENVDB_USE_GLFW_FLAG} /bigobj" + ) + ++IF ( OPENVDB_BUILD_TOOLS ) + ADD_EXECUTABLE ( vdb_print + ${VDB_PRINT_SOURCE_FILES} + ) +@@ -231,7 +252,7 @@ TARGET_LINK_LIBRARIES ( vdb_print + SET ( VDB_RENDER_SOURCE_FILES cmd/openvdb_render/main.cc ) + SET_SOURCE_FILES_PROPERTIES ( ${VDB_RENDER_SOURCE_FILES} + PROPERTIES +- COMPILE_FLAGS "-DOPENVDB_USE_BLOSC ${OPENVDB_USE_GLFW_FLAG}" ++ COMPILE_FLAGS "-DOPENVDB_USE_BLOSC ${OPENVDB_USE_GLFW_FLAG} /bigobj" + ) + ADD_EXECUTABLE ( vdb_render + ${VDB_RENDER_SOURCE_FILES} +@@ -256,26 +277,26 @@ SET ( VDB_VIEW_SOURCE_FILES + ) + SET_SOURCE_FILES_PROPERTIES ( ${VDB_VIEW_SOURCE_FILES} + PROPERTIES +- COMPILE_FLAGS "-DOPENVDB_USE_BLOSC ${OPENVDB_USE_GLFW_FLAG} -DGL_GLEXT_PROTOTYPES=1" ++ COMPILE_FLAGS "-DOPENVDB_USE_BLOSC ${OPENVDB_USE_GLFW_FLAG} -DGL_GLEXT_PROTOTYPES=1 /bigobj" + ) +-IF (NOT WIN32) + ADD_EXECUTABLE ( vdb_view + ${VDB_VIEW_SOURCE_FILES} + ) + + TARGET_LINK_LIBRARIES ( vdb_view + openvdb_shared +- ${Boost_THREAD_LIBRARY} ++ ${Boost_LIBRARIES} + ${OPENGL_gl_LIBRARY} + ${OPENGL_glu_LIBRARY} +- ${COCOA_LIBRARY} +- ${IOKIT_LIBRARY} +- ${COREVIDEO_LIBRARY} ++ #${COCOA_LIBRARY} ++ #${IOKIT_LIBRARY} ++ #${COREVIDEO_LIBRARY} + ${GLFW_LINK_LIBRARY} + ${GLFW_DEPENDENT_LIBRARIES} + ${GLEW_GLEW_LIBRARY} + ) +-ENDIF () ++ ++ENDIF ( OPENVDB_BUILD_TOOLS ) + + SET ( UNITTEST_SOURCE_FILES + unittest/main.cc +@@ -405,27 +426,32 @@ IF (OPENVDB_BUILD_DOCS) + + ENDIF () + ++IF ( OPENVDB_BUILD_TOOLS ) + # Installation +-IF ( NOT WIN32 ) ++#IF ( NOT WIN32 ) + INSTALL ( TARGETS + vdb_view + DESTINATION + bin + ) +-ENDIF () ++#ENDIF () + INSTALL ( TARGETS + vdb_print + vdb_render + DESTINATION + bin + ) ++ENDIF ( OPENVDB_BUILD_TOOLS ) + ++IF ( OPENVDB_STATIC) + INSTALL ( TARGETS + openvdb_static + DESTINATION + lib + ) ++ENDIF () + ++IF ( OPENVDB_SHARED ) + IF (WIN32) + INSTALL ( TARGETS + openvdb_shared +@@ -439,6 +465,7 @@ ELSE() + lib + ) + ENDIF () ++ENDIF ( OPENVDB_SHARED ) + + INSTALL ( DIRECTORY ${PROJECT_SOURCE_DIR} DESTINATION include + FILES_MATCHING PATTERN "*.h" diff --git a/ports/openvdb/CONTROL b/ports/openvdb/CONTROL new file mode 100644 index 000000000..cfcbfac6f --- /dev/null +++ b/ports/openvdb/CONTROL @@ -0,0 +1,8 @@ +Source: openvdb +Version: 5.0.0 +Build-Depends: boost, ilmbase, openexr, tbb, blosc +Description: Sparse volume data structure and tools + +Feature: tools +Description: OpenVDB utilities: view, print and render +Build-Depends: glew, glfw3
\ No newline at end of file diff --git a/ports/openvdb/UseGLEWOnWindowsForViewer.patch b/ports/openvdb/UseGLEWOnWindowsForViewer.patch new file mode 100644 index 000000000..bfa29c46c --- /dev/null +++ b/ports/openvdb/UseGLEWOnWindowsForViewer.patch @@ -0,0 +1,60 @@ +diff --git a/openvdb/viewer/ClipBox.h b/openvdb/viewer/ClipBox.h +index b792491..d2f50cc 100644 +--- a/openvdb/viewer/ClipBox.h ++++ b/openvdb/viewer/ClipBox.h +@@ -36,6 +36,8 @@ + #if defined(__APPLE__) || defined(MACOSX) + #include <OpenGL/gl.h> + #include <OpenGL/glu.h> ++#elif defined(WIN32) ++#include <GL/glew.h> + #else + #include <GL/gl.h> + #include <GL/glu.h> +diff --git a/openvdb/viewer/Font.h b/openvdb/viewer/Font.h +index 6e79704..566cfbd 100644 +--- a/openvdb/viewer/Font.h ++++ b/openvdb/viewer/Font.h +@@ -36,6 +36,8 @@ + #if defined(__APPLE__) || defined(MACOSX) + #include <OpenGL/gl.h> + #include <OpenGL/glu.h> ++#elif defined(WIN32) ++#include <GL/glew.h> + #else + #include <GL/gl.h> + #include <GL/glu.h> +diff --git a/openvdb/viewer/RenderModules.h b/openvdb/viewer/RenderModules.h +index f4745d9..339dfc3 100644 +--- a/openvdb/viewer/RenderModules.h ++++ b/openvdb/viewer/RenderModules.h +@@ -43,6 +43,8 @@ + #if defined(__APPLE__) || defined(MACOSX) + #include <OpenGL/gl.h> + #include <OpenGL/glu.h> ++#elif defined(WIN32) ++#include <GL/glew.h> + #else + #include <GL/gl.h> + #include <GL/glu.h> +diff --git a/openvdb/viewer/Viewer.cc b/openvdb/viewer/Viewer.cc +index 307aa2b..8b79358 100644 +--- a/openvdb/viewer/Viewer.cc ++++ b/openvdb/viewer/Viewer.cc +@@ -540,7 +540,15 @@ ViewerImpl::open(int width, int height) + std::shared_ptr<GLFWwindow> curWindow( + glfwGetCurrentContext(), glfwMakeContextCurrent); + glfwMakeContextCurrent(mWindow); +- BitmapFont13::initialize(); ++ BitmapFont13::initialize(); ++#ifdef WIN32 ++ if (glewInit() == GLEW_OK) { ++ OPENVDB_LOG_DEBUG_RUNTIME("initialized GLEW from thread " ++ << boost::this_thread::get_id()); ++ } else { ++ OPENVDB_LOG_ERROR("GLEW initialization failed"); ++ } ++#endif + } + } + mCamera->setWindow(mWindow); diff --git a/ports/openvdb/portfile.cmake b/ports/openvdb/portfile.cmake new file mode 100644 index 000000000..a21e82240 --- /dev/null +++ b/ports/openvdb/portfile.cmake @@ -0,0 +1,118 @@ +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO dreamworksanimation/openvdb + REF v5.0.0 + SHA512 8916d54683d81144114e57f8332be43b7547e6da5d194f6147bcefd4ee9e8e7ec817f27b65adb129dfd149e6b308f4bab30591ee953ee2c319636491bf051a2b + HEAD_REF master +) + +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES + ${CMAKE_CURRENT_LIST_DIR}/UseGLEWOnWindowsForViewer.patch + ${CMAKE_CURRENT_LIST_DIR}/AddLinkageAndToolsChoice.patch +) + +if (VCPKG_LIBRARY_LINKAGE STREQUAL static) + set(OPENVDB_STATIC ON) + set(OPENVDB_SHARED OFF) +else() + set(OPENVDB_STATIC OFF) + set(OPENVDB_SHARED ON) +endif() + +if ("tools" IN_LIST FEATURES) + set(OPENVDB_BUILD_TOOLS ON) + set(OPENVDB_SHARED ON) # tools require shared version of the library +else() + set(OPENVDB_BUILD_TOOLS OFF) +endif() + +file(TO_NATIVE_PATH "${VCPKG_ROOT_DIR}/installed/${TARGET_TRIPLET}" INSTALL_LOCATION) + +file(TO_NATIVE_PATH "${INSTALL_LOCATION}/include" INCLUDE_LOCATION) +file(TO_NATIVE_PATH "${INSTALL_LOCATION}/lib/" LIB_LOCATION) +file(TO_NATIVE_PATH "${INSTALL_LOCATION}/debug/lib/" LIB_LOCATION_DEBUG) + +file(TO_NATIVE_PATH "${LIB_LOCATION}/zlib.lib" ZLIB_LIBRARY) +file(TO_NATIVE_PATH "${LIB_LOCATION}/tbb.lib" Tbb_TBB_LIBRARY) +file(TO_NATIVE_PATH "${LIB_LOCATION}/tbbmalloc.lib" Tbb_TBBMALLOC_LIBRARY) +file(TO_NATIVE_PATH "${LIB_LOCATION_DEBUG}/tbb_debug.lib" Tbb_TBB_LIBRARY_DEBUG) +file(TO_NATIVE_PATH "${LIB_LOCATION_DEBUG}/tbbmalloc_debug.lib" Tbb_TBBMALLOC_LIBRARY_DEBUG) + +file(TO_NATIVE_PATH "${LIB_LOCATION}/Half.lib" Ilmbase_HALF_LIBRARY) +file(TO_NATIVE_PATH "${LIB_LOCATION}/Iex-2_2.lib" Ilmbase_IEX_LIBRARY) +file(TO_NATIVE_PATH "${LIB_LOCATION}/IlmThread-2_2.lib" Ilmbase_ILMTHREAD_LIBRARY) + +if (OPENVDB_STATIC) + file(TO_NATIVE_PATH "${LIB_LOCATION}/glfw3.lib" GLFW3_LIBRARY) +else() + file(TO_NATIVE_PATH "${LIB_LOCATION}/glfw3dll.lib" GLFW3_LIBRARY) +endif() + + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS -DOPENVDB_BUILD_UNITTESTS=OFF + -DOPENVDB_BUILD_PYTHON_MODULE=OFF + -DOPENVDB_ENABLE_3_ABI_COMPATIBLE=OFF + -DUSE_GLFW3=ON + -DGLFW3_USE_STATIC_LIBS=${OPENVDB_STATIC} + -DBlosc_USE_STATIC_LIBS=${OPENVDB_STATIC} + -DOpenexr_USE_STATIC_LIBS=${OPENVDB_STATIC} + -DIlmbase_USE_STATIC_LIBS=${OPENVDB_STATIC} + -DGLFW3_glfw_LIBRARY=${GLFW3_LIBRARY} + + -DIlmbase_HALF_LIBRARY=${Ilmbase_HALF_LIBRARY} + -DIlmbase_IEX_LIBRARY=${Ilmbase_IEX_LIBRARY} + -DIlmbase_ILMTHREAD_LIBRARY=${Ilmbase_ILMTHREAD_LIBRARY} + + -DOPENVDB_STATIC=${OPENVDB_STATIC} + -DOPENVDB_SHARED=${OPENVDB_SHARED} + -DOPENVDB_BUILD_TOOLS=${OPENVDB_BUILD_TOOLS} + + -DZLIB_INCLUDE_DIR=${INCLUDE_LOCATION} + -DTBB_INCLUDE_DIR=${INCLUDE_LOCATION} + -DZLIB_LIBRARY=${ZLIB_LIBRARY} + + -DGLFW3_LOCATION=${INSTALL_LOCATION} + -DGLEW_LOCATION=${INSTALL_LOCATION} + -DILMBASE_LOCATION=${INSTALL_LOCATION} + -DOPENEXR_LOCATION=${INSTALL_LOCATION} + -DTBB_LOCATION=${INSTALL_LOCATION} + -DBLOSC_LOCATION=${INSTALL_LOCATION} + OPTIONS_RELEASE + -DTBB_LIBRARY_PATH=${LIB_LOCATION} + -DTbb_TBB_LIBRARY=${Tbb_TBB_LIBRARY} + -DTbb_TBBMALLOC_LIBRARY=${Tbb_TBBMALLOC_LIBRARY} + OPTIONS_DEBUG + -DTBB_LIBRARY_PATH=${LIB_LOCATION_DEBUG} + -DTbb_TBB_LIBRARY=${Tbb_TBB_LIBRARY_DEBUG} + -DTbb_TBBMALLOC_LIBRARY=${Tbb_TBBMALLOC_LIBRARY_DEBUG} +) + +vcpkg_install_cmake() + +vcpkg_copy_pdbs() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +if (OPENVDB_BUILD_TOOLS) + # copy tools to tools/openvdb directory + file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/${PORT}/) + file(RENAME ${CURRENT_PACKAGES_DIR}/bin/vdb_print.exe ${CURRENT_PACKAGES_DIR}/tools/${PORT}/vdb_print.exe) + file(RENAME ${CURRENT_PACKAGES_DIR}/bin/vdb_render.exe ${CURRENT_PACKAGES_DIR}/tools/${PORT}/vdb_render.exe) + file(RENAME ${CURRENT_PACKAGES_DIR}/bin/vdb_view.exe ${CURRENT_PACKAGES_DIR}/tools/${PORT}/vdb_view.exe) + vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/${PORT}) + + # remove debug versions of tools + file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/vdb_render.exe) + file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/vdb_print.exe) + file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/vdb_view.exe) +endif() + +# Handle copyright +file(INSTALL ${SOURCE_PATH}/openvdb/COPYRIGHT DESTINATION ${CURRENT_PACKAGES_DIR}/share/openvdb RENAME copyright) diff --git a/ports/pangolin/CONTROL b/ports/pangolin/CONTROL index a4d670b74..a515ba50e 100644 --- a/ports/pangolin/CONTROL +++ b/ports/pangolin/CONTROL @@ -1,4 +1,4 @@ Source: pangolin -Version: 0.5-2 +Version: 0.5-3 Build-Depends: eigen3, glew, libpng, libjpeg-turbo, ffmpeg Description: Lightweight GUI Library diff --git a/ports/pangolin/portfile.cmake b/ports/pangolin/portfile.cmake index 3fe7ef8b6..19763f0d6 100644 --- a/ports/pangolin/portfile.cmake +++ b/ports/pangolin/portfile.cmake @@ -8,6 +8,10 @@ vcpkg_from_github( HEAD_REF master ) +file(REMOVE ${SOURCE_PATH}/CMakeModules/FindGLEW.cmake) + +string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" MSVC_USE_STATIC_CRT) + vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA @@ -16,6 +20,7 @@ vcpkg_configure_cmake( -DBUILD_EXTERN_GLEW=OFF -DBUILD_EXTERN_LIBPNG=OFF -DBUILD_EXTERN_LIBJPEG=OFF + -DMSVC_USE_STATIC_CRT=${MSVC_USE_STATIC_CRT} ) vcpkg_install_cmake() diff --git a/ports/pangomm/CONTROL b/ports/pangomm/CONTROL new file mode 100644 index 000000000..68860b305 --- /dev/null +++ b/ports/pangomm/CONTROL @@ -0,0 +1,4 @@ +Source: pangomm +Version: 2.40.1 +Description: pangomm is the official C++ interface for the Pango font layout library. See, for instance, the Pango::Layout class. +Build-Depends: glib, gettext, cairo, fontconfig, freetype, harfbuzz, pango, cairomm, glibmm diff --git a/ports/pangomm/COPYING b/ports/pangomm/COPYING new file mode 100644 index 000000000..c4792dd27 --- /dev/null +++ b/ports/pangomm/COPYING @@ -0,0 +1,515 @@ + + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations +below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. +^L + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it +becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. +^L + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control +compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. +^L + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. +^L + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. +^L + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. +^L + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply, and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License +may add an explicit geographical distribution limitation excluding those +countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. +^L + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS +^L + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms +of the ordinary General Public License). + + To apply these terms, attach the following notices to the library. +It is safest to attach them to the start of each source file to most +effectively convey the exclusion of warranty; and each file should +have at least the "copyright" line and a pointer to where the full +notice is found. + + + <one line to give the library's name and a brief idea of what it +does.> + Copyright (C) <year> <name of author> + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +Also add information on how to contact you by electronic and paper +mail. + +You should also get your employer (if you work as a programmer) or +your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James +Random Hacker. + + <signature of Ty Coon>, 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + diff --git a/ports/pangomm/README b/ports/pangomm/README new file mode 100644 index 000000000..37c05b4ee --- /dev/null +++ b/ports/pangomm/README @@ -0,0 +1,3 @@ +This is pangomm, a C++ API for Pango. +See http://www.gtkmm.org/ + diff --git a/ports/pangomm/fix_charset.patch b/ports/pangomm/fix_charset.patch new file mode 100644 index 000000000..d57063c86 --- /dev/null +++ b/ports/pangomm/fix_charset.patch @@ -0,0 +1,110 @@ +diff --git a/MSVC_Net2013/gendef.vcxproj b/MSVC_Net2013/gendef.vcxproj +index ceca956..c29a2a1 100644 +--- a/MSVC_Net2013/gendef.vcxproj ++++ b/MSVC_Net2013/gendef.vcxproj +@@ -21,26 +21,27 @@ + <PropertyGroup Label="Globals"> + <ProjectGuid>{07324745-C9BE-4D65-B08A-9C88188C0C28}</ProjectGuid> + <Keyword>Win32Proj</Keyword> ++ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> +diff --git a/MSVC_Net2013/install.vcxproj b/MSVC_Net2013/install.vcxproj +index fecde32..8f97675 100644 +--- a/MSVC_Net2013/install.vcxproj ++++ b/MSVC_Net2013/install.vcxproj +@@ -22,28 +22,29 @@ + <ProjectGuid>{2093D218-190E-4194-9421-3BA7CBF33B10}</ProjectGuid> + <RootNamespace>install</RootNamespace> + <Keyword>Win32Proj</Keyword> ++ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Utility</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <WholeProgramOptimization>true</WholeProgramOptimization> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>Utility</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>Utility</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <WholeProgramOptimization>true</WholeProgramOptimization> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>Utility</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> +diff --git a/MSVC_Net2013/pangomm.vcxproj b/MSVC_Net2013/pangomm.vcxproj +index aa03fad..d63becf 100644 +--- a/MSVC_Net2013/pangomm.vcxproj ++++ b/MSVC_Net2013/pangomm.vcxproj +@@ -23,26 +23,27 @@ + <ProjectGuid>{A93D607A-5C37-4AEC-BA08-6A655F6DC834}</ProjectGuid> + <RootNamespace>pangomm</RootNamespace> + <Keyword>Win32Proj</Keyword> ++ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> +- <CharacterSet>MultiByte</CharacterSet> ++ <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> diff --git a/ports/pangomm/fix_properties.patch b/ports/pangomm/fix_properties.patch new file mode 100644 index 000000000..22ee67bf1 --- /dev/null +++ b/ports/pangomm/fix_properties.patch @@ -0,0 +1,75 @@ +diff --git a/MSVC_Net2013/pangomm-build-defines.props b/MSVC_Net2013/pangomm-build-defines.props +index 3c3108d..f30890b 100644 +--- a/MSVC_Net2013/pangomm-build-defines.props ++++ b/MSVC_Net2013/pangomm-build-defines.props +@@ -5,8 +5,6 @@ + </ImportGroup> + <PropertyGroup Label="UserMacros"> + <PangoMMBuildDefs>PANGOMM_BUILD</PangoMMBuildDefs> +- <CPPDepLibsRelease>glibmm-vc$(VSVer)0-2_4.lib;cairomm-vc$(VSVer)0-1_0.lib;sigc-vc$(VSVer)0-2_0.lib</CPPDepLibsRelease> +- <CPPDepLibsDebug>glibmm-vc$(VSVer)0-d-2_4.lib;cairomm-vc$(VSVer)0-d-1_0.lib;sigc-vc$(VSVer)0-d-2_0.lib</CPPDepLibsDebug> + </PropertyGroup> + <PropertyGroup> + <_PropertySheetDisplayName>panogmmbuilddefinesprops</_PropertySheetDisplayName> +@@ -15,14 +13,14 @@ + </PropertyGroup> + <ItemDefinitionGroup> + <ClCompile> +- <AdditionalIncludeDirectories>.\pangomm;..\pango;$(GlibEtcInstallRoot)\include\glibmm-2.4;$(GlibEtcInstallRoot)\lib\glibmm-2.4\include;$(GlibEtcInstallRoot)\include\cairomm-1.0;$(GlibEtcInstallRoot)\lib\cairomm-1.0\include;$(GlibEtcInstallRoot)\include\sigc++-2.0;$(GlibEtcInstallRoot)\lib\sigc++-2.0\include;$(GlibEtcInstallRoot)\include\pango-1.0;$(GlibEtcInstallRoot)\include\glib-2.0;$(GlibEtcInstallRoot)\lib\glib-2.0\include;$(GlibEtcInstallRoot)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> ++ <AdditionalIncludeDirectories>.\pangomm;..\pango;.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <ForcedIncludeFiles>msvc_recommended_pragmas.h;%(ForcedIncludeFiles)</ForcedIncludeFiles> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + <AdditionalOptions>/d2Zi+ %(AdditionalOptions)</AdditionalOptions> + </ClCompile> + <Link> +- <AdditionalDependencies>pangocairo-1.0.lib;pango-1.0.lib;gobject-2.0.lib;gmodule-2.0.lib;glib-2.0.lib;%(AdditionalDependencies)</AdditionalDependencies> +- <AdditionalLibraryDirectories>$(GlibEtcInstallRoot)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> ++ <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> ++ <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + </Link> + </ItemDefinitionGroup> + <ItemGroup> +diff --git a/MSVC_Net2013/pangomm-version-paths.props b/MSVC_Net2013/pangomm-version-paths.props +index b287629..01a267e 100644 +--- a/MSVC_Net2013/pangomm-version-paths.props ++++ b/MSVC_Net2013/pangomm-version-paths.props +@@ -2,13 +2,9 @@ + <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup Label="UserMacros"> + <VSVer>12</VSVer> +- <GlibEtcInstallRoot>$(SolutionDir)\..\..\vs$(VSVer)\$(Platform)</GlibEtcInstallRoot> +- <CopyDir>$(GlibEtcInstallRoot)</CopyDir> + <DefDir>$(SolutionDir)$(Configuration)\$(Platform)\obj\$(ProjectName)\</DefDir> + <ApiMajorVersion>1</ApiMajorVersion> + <ApiMinorVersion>4</ApiMinorVersion> +- <ReleaseDllSuffix>-vc$(VSVer)0-$(ApiMajorVersion)_$(ApiMinorVersion)</ReleaseDllSuffix> +- <DebugDllSuffix>-vc$(VSVer)0-d-$(ApiMajorVersion)_$(ApiMinorVersion)</DebugDllSuffix> + </PropertyGroup> + <PropertyGroup> + <_PropertySheetDisplayName>pangommversionpathsprops</_PropertySheetDisplayName> +@@ -17,12 +13,6 @@ + <BuildMacro Include="VSVer"> + <Value>$(VSVer)</Value> + </BuildMacro> +- <BuildMacro Include="GlibEtcInstallRoot"> +- <Value>$(GlibEtcInstallRoot)</Value> +- </BuildMacro> +- <BuildMacro Include="CopyDir"> +- <Value>$(CopyDir)</Value> +- </BuildMacro> + <BuildMacro Include="DefDir"> + <Value>$(DefDir)</Value> + </BuildMacro> +@@ -32,11 +22,5 @@ + <BuildMacro Include="ApiMinorVersion"> + <Value>$(ApiMinorVersion)</Value> + </BuildMacro> +- <BuildMacro Include="ReleaseDllSuffix"> +- <Value>$(ReleaseDllSuffix)</Value> +- </BuildMacro> +- <BuildMacro Include="DebugDllSuffix"> +- <Value>$(DebugDllSuffix)</Value> +- </BuildMacro> + </ItemGroup> + </Project> +\ No newline at end of file diff --git a/ports/pangomm/msvc_recommended_pragmas.h b/ports/pangomm/msvc_recommended_pragmas.h new file mode 100644 index 000000000..c0eb1d5ed --- /dev/null +++ b/ports/pangomm/msvc_recommended_pragmas.h @@ -0,0 +1,34 @@ +#ifndef _MSC_VER +#pragma error "This header is for Microsoft VC only." +#endif /* _MSC_VER */ + +/* Make MSVC more pedantic, this is a recommended pragma list + * from _Win32_Programming_ by Rector and Newcomer. + */ +#pragma warning(error:4002) /* too many actual parameters for macro */ +#pragma warning(error:4003) /* not enough actual parameters for macro */ +#pragma warning(1:4010) /* single-line comment contains line-continuation character */ +#pragma warning(error:4013) /* 'function' undefined; assuming extern returning int */ +#pragma warning(1:4016) /* no function return type; using int as default */ +#pragma warning(error:4020) /* too many actual parameters */ +#pragma warning(error:4021) /* too few actual parameters */ +#pragma warning(error:4027) /* function declared without formal parameter list */ +#pragma warning(error:4029) /* declared formal parameter list different from definition */ +#pragma warning(error:4033) /* 'function' must return a value */ +#pragma warning(error:4035) /* 'function' : no return value */ +#pragma warning(error:4045) /* array bounds overflow */ +#pragma warning(error:4047) /* different levels of indirection */ +#pragma warning(error:4049) /* terminating line number emission */ +#pragma warning(error:4053) /* An expression of type void was used as an operand */ +#pragma warning(error:4071) /* no function prototype given */ +#pragma warning(disable:4101) /* unreferenced local variable */ +#pragma warning(error:4150) + +#pragma warning(disable:4244) /* No possible loss of data warnings */ +#pragma warning(disable:4305) /* No truncation from int to char warnings */ + +#pragma warning(error:4819) /* The file contains a character that cannot be represented in the current code page */ + +/* work around Microsoft's premature attempt to deprecate the C-Library */ +#define _CRT_SECURE_NO_WARNINGS +#define _CRT_NONSTDC_NO_WARNINGS diff --git a/ports/pangomm/portfile.cmake b/ports/pangomm/portfile.cmake new file mode 100644 index 000000000..ad350f638 --- /dev/null +++ b/ports/pangomm/portfile.cmake @@ -0,0 +1,77 @@ +# Common Ambient Variables: +# CURRENT_BUILDTREES_DIR = ${VCPKG_ROOT_DIR}\buildtrees\${PORT} +# CURRENT_PACKAGES_DIR = ${VCPKG_ROOT_DIR}\packages\${PORT}_${TARGET_TRIPLET} +# CURRENT_PORT_DIR = ${VCPKG_ROOT_DIR}\ports\${PORT} +# PORT = current port name (zlib, etc) +# TARGET_TRIPLET = current triplet (x86-windows, x64-windows-static, etc) +# VCPKG_CRT_LINKAGE = C runtime linkage type (static, dynamic) +# VCPKG_LIBRARY_LINKAGE = target library linkage type (static, dynamic) +# VCPKG_ROOT_DIR = <C:\path\to\current\vcpkg> +# VCPKG_TARGET_ARCHITECTURE = target architecture (x64, x86, arm) +# + +include(vcpkg_common_functions) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/pangomm-2.40.1) +vcpkg_download_distfile(ARCHIVE + URLS "http://ftp.gnome.org/pub/GNOME/sources/pangomm/2.40/pangomm-2.40.1.tar.xz" + FILENAME "pangomm-2.40.1.tar.xz" + SHA512 bed19800b76e69cc51abeb5997bdc2f687f261ebcbe36aeee51f1fbf5010a46f4b9469033c34a912502001d9985135fd5c7f7574d3de8ba33cc5832520c6aa6f +) +vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES ${CMAKE_CURRENT_LIST_DIR}/fix_properties.patch ${CMAKE_CURRENT_LIST_DIR}/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/pangomm.sln + TARGET pangomm + PLATFORM ${VS_PLATFORM} + # Need this for it to pick up xerces-c port: https://github.com/Microsoft/vcpkg/issues/891 + OPTIONS /p:ForceImportBeforeCppTargets=${VCPKG_ROOT_DIR}/scripts/buildsystems/msbuild/vcpkg.targets +) + +# Handle headers +file(COPY ${SOURCE_PATH}/MSVC_Net2013/pangomm/pangommconfig.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) +file(COPY ${SOURCE_PATH}/pango/pangomm.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) +file( + COPY + ${SOURCE_PATH}/pango/pangomm + DESTINATION ${CURRENT_PACKAGES_DIR}/include + FILES_MATCHING PATTERN *.h +) + +# Handle libraries +file( + COPY + ${SOURCE_PATH}/MSVC_Net2013/Release/${VS_PLATFORM}/bin/pangomm.dll + DESTINATION ${CURRENT_PACKAGES_DIR}/bin +) +file( + COPY + ${SOURCE_PATH}/MSVC_Net2013/Release/${VS_PLATFORM}/bin/pangomm.lib + DESTINATION ${CURRENT_PACKAGES_DIR}/lib +) +file( + COPY + ${SOURCE_PATH}/MSVC_Net2013/Debug/${VS_PLATFORM}/bin/pangomm.dll + DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin +) +file( + COPY + ${SOURCE_PATH}/MSVC_Net2013/Debug/${VS_PLATFORM}/bin/pangomm.lib + DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib +) + +vcpkg_copy_pdbs() + +# Handle copyright and readme +file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/pangomm RENAME copyright) +file(INSTALL ${SOURCE_PATH}/README DESTINATION ${CURRENT_PACKAGES_DIR}/share/pangomm RENAME readme.txt) diff --git a/ports/pcl/CONTROL b/ports/pcl/CONTROL index d8c38a363..86839aedd 100644 --- a/ports/pcl/CONTROL +++ b/ports/pcl/CONTROL @@ -1,4 +1,16 @@ Source: pcl -Version: 1.8.1-2 -Build-Depends: boost, eigen3, flann, qhull, vtk, openni2, qt5, winpcap +Version: 1.8.1-7 Description: Point Cloud Library (PCL) is open source library for 2D/3D image and point cloud processing. +Build-Depends: boost, eigen3, flann, qhull, vtk + +Feature: openni2 +Description: OpenNI2 support for PCL +Build-Depends: openni2 + +Feature: qt +Description: Qt support for PCL +Build-Depends: vtk[qt] + +Feature: pcap +Description: PCAP support for PCL +Build-Depends: winpcap
\ No newline at end of file diff --git a/ports/pcl/cmakelists.patch b/ports/pcl/cmakelists.patch new file mode 100644 index 000000000..2d8bd1bd3 --- /dev/null +++ b/ports/pcl/cmakelists.patch @@ -0,0 +1,16 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index d36a581fb..9b0195324 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -327,9 +327,9 @@ endif(WITH_PNG) + # Qhull + option(WITH_QHULL "Include convex-hull operations" TRUE) + if(WITH_QHULL) +- if(NOT PCL_SHARED_LIBS OR WIN32) ++ if(NOT PCL_SHARED_LIBS) + set(QHULL_USE_STATIC ON) +- endif(NOT PCL_SHARED_LIBS OR WIN32) ++ endif(NOT PCL_SHARED_LIBS) + find_package(Qhull) + if(QHULL_FOUND) + include_directories(${QHULL_INCLUDE_DIRS}) diff --git a/ports/pcl/config.patch b/ports/pcl/config.patch index c949f128f..1b46ab7ce 100644 --- a/ports/pcl/config.patch +++ b/ports/pcl/config.patch @@ -7,7 +7,7 @@ index f4ef6a0ff..3a2c259dc 100644 HINTS "${QHULL_ROOT}" "$ENV{QHULL_ROOT}" PATHS "$ENV{PROGRAMFILES}/qhull" "$ENV{PROGRAMW6432}/qhull" - PATH_SUFFIXES project build bin lib) -+ PATH_SUFFIXES project build bin debug/lib) ++ PATH_SUFFIXES project build bin lib debug/lib) find_package_handle_standard_args(qhull DEFAULT_MSG QHULL_LIBRARY QHULL_INCLUDE_DIRS) @@ -16,7 +16,7 @@ index f4ef6a0ff..3a2c259dc 100644 PATHS "$ENV{PROGRAMFILES}/flann 1.6.9" "$ENV{PROGRAMW6432}/flann 1.6.9" "$ENV{PROGRAMFILES}/flann" "$ENV{PROGRAMW6432}/flann" - PATH_SUFFIXES lib) -+ PATH_SUFFIXES debug/lib) ++ PATH_SUFFIXES lib debug/lib) find_package_handle_standard_args(Flann DEFAULT_MSG FLANN_LIBRARY FLANN_INCLUDE_DIRS) if(FLANN_FOUND) diff --git a/ports/pcl/find_flann.patch b/ports/pcl/find_flann.patch index 6cbfb011f..e9760e502 100644 --- a/ports/pcl/find_flann.patch +++ b/ports/pcl/find_flann.patch @@ -1,5 +1,5 @@ diff --git a/cmake/Modules/FindFLANN.cmake b/cmake/Modules/FindFLANN.cmake -index b5739dc95..4041a2539 100644 +index b5739dc95..d2c3fd07e 100644 --- a/cmake/Modules/FindFLANN.cmake +++ b/cmake/Modules/FindFLANN.cmake @@ -10,8 +10,8 @@ @@ -13,3 +13,12 @@ index b5739dc95..4041a2539 100644 else(FLANN_USE_STATIC) set(FLANN_RELEASE_NAME flann_cpp) set(FLANN_DEBUG_NAME flann_cpp-gd) +@@ -41,7 +41,7 @@ find_library(FLANN_LIBRARY_DEBUG + NAMES ${FLANN_DEBUG_NAME} ${FLANN_RELEASE_NAME} + HINTS ${PC_FLANN_LIBDIR} ${PC_FLANN_LIBRARY_DIRS} "${FLANN_ROOT}" "$ENV{FLANN_ROOT}" + PATHS "$ENV{PROGRAMFILES}/Flann" "$ENV{PROGRAMW6432}/Flann" +- PATH_SUFFIXES lib) ++ PATH_SUFFIXES lib debug/lib) + + if(NOT FLANN_LIBRARY_DEBUG) + set(FLANN_LIBRARY_DEBUG ${FLANN_LIBRARY}) diff --git a/ports/pcl/find_qhull.patch b/ports/pcl/find_qhull.patch index 0f5036e1e..e845293be 100644 --- a/ports/pcl/find_qhull.patch +++ b/ports/pcl/find_qhull.patch @@ -7,7 +7,7 @@ index 698bd151b..44c1d5d8d 100644 HINTS "${QHULL_ROOT}" "$ENV{QHULL_ROOT}" PATHS "$ENV{PROGRAMFILES}/QHull" "$ENV{PROGRAMW6432}/QHull" - PATH_SUFFIXES project build bin lib) -+ PATH_SUFFIXES project build bin debug/lib) ++ PATH_SUFFIXES project build bin lib debug/lib) if(NOT QHULL_LIBRARY_DEBUG) set(QHULL_LIBRARY_DEBUG ${QHULL_LIBRARY}) diff --git a/ports/pcl/portfile.cmake b/ports/pcl/portfile.cmake index cd5c5bedc..eeb7b0e6c 100644 --- a/ports/pcl/portfile.cmake +++ b/ports/pcl/portfile.cmake @@ -1,15 +1,3 @@ -# Common Ambient Variables: -# CURRENT_BUILDTREES_DIR = ${VCPKG_ROOT_DIR}\buildtrees\${PORT} -# CURRENT_PACKAGES_DIR = ${VCPKG_ROOT_DIR}\packages\${PORT}_${TARGET_TRIPLET} -# CURRENT_PORT_DIR = ${VCPKG_ROOT_DIR}\ports\${PORT} -# PORT = current port name (zlib, etc) -# TARGET_TRIPLET = current triplet (x86-windows, x64-windows-static, etc) -# VCPKG_CRT_LINKAGE = C runtime linkage type (static, dynamic) -# VCPKG_LIBRARY_LINKAGE = target library linkage type (static, dynamic) -# VCPKG_ROOT_DIR = <C:\path\to\current\vcpkg> -# VCPKG_TARGET_ARCHITECTURE = target architecture (x64, x86, arm) -# - include(vcpkg_common_functions) vcpkg_from_github( @@ -22,17 +10,30 @@ vcpkg_from_github( vcpkg_apply_patches( SOURCE_PATH ${SOURCE_PATH} - PATCHES "${CMAKE_CURRENT_LIST_DIR}/config.patch" + PATCHES "${CMAKE_CURRENT_LIST_DIR}/cmakelists.patch" + "${CMAKE_CURRENT_LIST_DIR}/config.patch" "${CMAKE_CURRENT_LIST_DIR}/config_install.patch" "${CMAKE_CURRENT_LIST_DIR}/find_flann.patch" "${CMAKE_CURRENT_LIST_DIR}/find_qhull.patch" "${CMAKE_CURRENT_LIST_DIR}/find_openni2.patch" + "${CMAKE_CURRENT_LIST_DIR}/vs2017-15.4-workaround.patch" ) -if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") - set(LIBRARY_LINKAGE ON) -elseif(VCPKG_LIBRARY_LINKAGE STREQUAL "static") - set(LIBRARY_LINKAGE OFF) +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" PCL_SHARED_LIBS) + +set(WITH_OPENNI2 OFF) +if("openni2" IN_LIST FEATURES) + set(WITH_OPENNI2 ON) +endif() + +set(WITH_QT OFF) +if("qt" IN_LIST FEATURES) + set(WITH_QT ON) +endif() + +set(WITH_PCAP OFF) +if("pcap" IN_LIST FEATURES) + set(WITH_PCAP ON) endif() vcpkg_configure_cmake( @@ -43,23 +44,25 @@ vcpkg_configure_cmake( -DBUILD_surface_on_nurbs=ON -DBUILD_tools=OFF # PCL - -DPCL_BUILD_WITH_BOOST_DYNAMIC_LINKING_WIN32=${LIBRARY_LINKAGE} - -DPCL_BUILD_WITH_FLANN_DYNAMIC_LINKING_WIN32=${LIBRARY_LINKAGE} - -DPCL_SHARED_LIBS=${LIBRARY_LINKAGE} + -DPCL_BUILD_WITH_BOOST_DYNAMIC_LINKING_WIN32=${PCL_SHARED_LIBS} + -DPCL_BUILD_WITH_FLANN_DYNAMIC_LINKING_WIN32=${PCL_SHARED_LIBS} + -DPCL_SHARED_LIBS=${PCL_SHARED_LIBS} # WITH -DWITH_CUDA=OFF -DWITH_LIBUSB=OFF - -DWITH_OPENNI2=ON - -DWITH_PCAP=ON + -DWITH_OPENNI2=${WITH_OPENNI2} + -DWITH_PCAP=${WITH_PCAP} -DWITH_PNG=OFF -DWITH_QHULL=ON - -DWITH_QT=ON + -DWITH_QT=${WITH_QT} -DWITH_VTK=ON ) vcpkg_install_cmake() +vcpkg_fixup_cmake_targets(CONFIG_PATH share/pcl) +vcpkg_copy_pdbs() file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) + file(COPY ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/pcl) file(RENAME ${CURRENT_PACKAGES_DIR}/share/pcl/LICENSE.txt ${CURRENT_PACKAGES_DIR}/share/pcl/copyright) diff --git a/ports/pcl/vs2017-15.4-workaround.patch b/ports/pcl/vs2017-15.4-workaround.patch new file mode 100644 index 000000000..5600c9dc8 --- /dev/null +++ b/ports/pcl/vs2017-15.4-workaround.patch @@ -0,0 +1,41 @@ +diff --git a/io/include/pcl/io/ply/ply_parser.h b/io/include/pcl/io/ply/ply_parser.h +index 649d19a..45709a8 100644 +--- a/io/include/pcl/io/ply/ply_parser.h ++++ b/io/include/pcl/io/ply/ply_parser.h +@@ -115,7 +115,7 @@ namespace pcl + + class scalar_property_definition_callbacks_type + { +- private: ++ public: + template <typename T> + struct callbacks_element + { +@@ -123,7 +123,8 @@ namespace pcl + typedef T scalar_type; + typename scalar_property_definition_callback_type<scalar_type>::type callback; + }; +- ++ ++ private: + typedef boost::mpl::inherit_linearly< + scalar_types, + boost::mpl::inherit< +@@ -218,6 +219,7 @@ namespace pcl + boost::mpl::_1,boost::mpl::transform<Sequence2, pair_with<boost::mpl::_2> > > > + {}; + ++ public: + template <typename T> + struct callbacks_element + { +@@ -225,7 +227,8 @@ namespace pcl + typedef typename T::second scalar_type; + typename list_property_definition_callback_type<size_type, scalar_type>::type callback; + }; +- ++ ++ private: + typedef boost::mpl::inherit_linearly<sequence_product<size_types, scalar_types>::type, boost::mpl::inherit<boost::mpl::_1, callbacks_element<boost::mpl::_2> > >::type callbacks; + callbacks callbacks_; + diff --git a/ports/physfs/portfile.cmake b/ports/physfs/portfile.cmake index 4e00a43fc..c6233eed3 100644 --- a/ports/physfs/portfile.cmake +++ b/ports/physfs/portfile.cmake @@ -1,3 +1,7 @@ +if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + message(FATAL_ERROR "${PORT} does not currently support UWP") +endif() + include(vcpkg_common_functions) set(PHYSFS_VERSION 2.0.3) set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/physfs-${PHYSFS_VERSION}) diff --git a/ports/poco/CONTROL b/ports/poco/CONTROL index 2c78b6c6e..69166867f 100644 --- a/ports/poco/CONTROL +++ b/ports/poco/CONTROL @@ -1,4 +1,8 @@ Source: poco -Version: 1.7.8-1 +Version: 1.8.0.1 Build-Depends: zlib, pcre, sqlite3, expat Description: Modern, powerful open source C++ class libraries for building network and internet-based applications that run on desktop, server, mobile and embedded systems. + +Feature: mysql +Build-Depends: libmysql +Description: Mysql support for POCO diff --git a/ports/poco/portfile.cmake b/ports/poco/portfile.cmake index 3ef0af921..6a187fac8 100644 --- a/ports/poco/portfile.cmake +++ b/ports/poco/portfile.cmake @@ -1,12 +1,12 @@ include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/poco-poco-1.7.8-release) -vcpkg_download_distfile(ARCHIVE - URLS "https://github.com/pocoproject/poco/archive/poco-1.7.8-release.tar.gz" - FILENAME "poco-poco-1.7.8-release.tar.gz" - SHA512 50a47e6f69491859f48b72e3695c380ec871f7d5249d938216e3be41579d752675e5d746a150720d93122f87f585ebeea24dc9660c81642a12e70f761b9d2502 +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO pocoproject/poco + REF poco-1.8.0.1-release + SHA512 b4a58053235582038186bdddbfa4842833bb3529af9522662e935efaf852f5155addd510729ea5c148b3bcc57ed3b8287cd98cbeb6d04e1a13bd31fadbdf7ad8 + HEAD_REF master ) -vcpkg_extract_source_archive(${ARCHIVE}) vcpkg_apply_patches( SOURCE_PATH ${SOURCE_PATH} @@ -16,10 +16,13 @@ vcpkg_apply_patches( ${CMAKE_CURRENT_LIST_DIR}/foundation-public-include-pcre.patch ) -if(VCPKG_LIBRARY_LINKAGE STREQUAL static) - set(POCO_STATIC ON) -else() - set(POCO_STATIC OFF) +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" POCO_STATIC) + +if("mysql" IN_LIST FEATURES) + # enabling MySQL support + set(MYSQL_INCLUDE_DIR "${CURRENT_INSTALLED_DIR}/include/mysql") + set(MYSQL_LIB "${CURRENT_INSTALLED_DIR}/lib/libmysql.lib") + set(MYSQL_LIB_DEBUG "${CURRENT_INSTALLED_DIR}/debug/lib/libmysql.lib") endif() vcpkg_configure_cmake( @@ -30,6 +33,11 @@ vcpkg_configure_cmake( -DENABLE_SEVENZIP=ON -DENABLE_TESTS=OFF -DPOCO_UNBUNDLED=ON # OFF means: using internal copy of sqlite, libz, pcre, expat, ... + -DMYSQL_INCLUDE_DIR=${MYSQL_INCLUDE_DIR} + OPTIONS_RELEASE + -DMYSQL_LIB=${MYSQL_LIB} + OPTIONS_DEBUG + -DMYSQL_LIB=${MYSQL_LIB_DEBUG} ) vcpkg_install_cmake() @@ -53,8 +61,7 @@ else() endif() file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/cmake) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake) +vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/poco) # copy license file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/poco) diff --git a/ports/protobuf/CONTROL b/ports/protobuf/CONTROL index b9d8b5b9e..c52a3ce55 100644 --- a/ports/protobuf/CONTROL +++ b/ports/protobuf/CONTROL @@ -1,4 +1,7 @@ Source: protobuf -Version: 3.4.1-1 -Build-Depends: zlib +Version: 3.5.0-1 Description: Protocol Buffers - Google's data interchange format + +Feature: zlib +Description: ZLib based features like Gzip streams +Build-Depends: zlib diff --git a/ports/protobuf/export-ParseGeneratorParameter.patch b/ports/protobuf/export-ParseGeneratorParameter.patch new file mode 100644 index 000000000..38b45a4c4 --- /dev/null +++ b/ports/protobuf/export-ParseGeneratorParameter.patch @@ -0,0 +1,13 @@ +diff --git a/src/google/protobuf/compiler/code_generator.h b/src/google/protobuf/compiler/code_generator.h +index 4b1d90b..4c2b3ee 100644 +--- a/src/google/protobuf/compiler/code_generator.h ++++ b/src/google/protobuf/compiler/code_generator.h +@@ -166,7 +166,7 @@ typedef GeneratorContext OutputDirectory; + // "foo=bar,baz,qux=corge" + // parses to the pairs: + // ("foo", "bar"), ("baz", ""), ("qux", "corge") +-void ParseGeneratorParameter( ++LIBPROTOC_EXPORT void ParseGeneratorParameter( + const string&, std::vector<std::pair<string, string> >*); + + } // namespace compiler diff --git a/ports/protobuf/portfile.cmake b/ports/protobuf/portfile.cmake index e7f45c36c..7e0c5c4f8 100644 --- a/ports/protobuf/portfile.cmake +++ b/ports/protobuf/portfile.cmake @@ -1,17 +1,17 @@ include(vcpkg_common_functions) -set(PROTOBUF_VERSION 3.4.1) -set(PROTOC_VERSION 3.4.0) +set(PROTOBUF_VERSION 3.5.0) +set(PROTOC_VERSION 3.5.0) vcpkg_download_distfile(ARCHIVE_FILE URLS "https://github.com/google/protobuf/releases/download/v${PROTOBUF_VERSION}/protobuf-cpp-${PROTOBUF_VERSION}.tar.gz" FILENAME "protobuf-cpp-${PROTOBUF_VERSION}.tar.gz" - SHA512 6189e23c7e381f62e971bd0e35ad9c3ed8effe584755357013887c6a582cb5a9a654c39affa2a073b658854138f31bfb70f89fa1df494e9386f1d64fd73d07d2 + SHA512 b1d3f3617898e3f73630ea7a43416a60b970291b4f93952b8d4f68ee5cd401f752d76cd1f6a65a87186b415208142401e01ffebb2ec52534e1db31abcc0d052e ) vcpkg_download_distfile(TOOL_ARCHIVE_FILE URLS "https://github.com/google/protobuf/releases/download/v${PROTOC_VERSION}/protoc-${PROTOC_VERSION}-win32.zip" FILENAME "protoc-${PROTOC_VERSION}-win32.zip" - SHA512 b874c3f47b39ac78f5675e05220318683004a365c248bf47ba50d8c66c8ed7763432451bab30524e131e1185a2bdaa6e6071b389eb61ad58b1b95974cf39d41b + SHA512 d332045346883ac1ca76a77cc9d6303b1c83147f49e7525c531d390b1ac57be1c765e01dc53eeb38a0d9fa3e30cab420f6a6f52dbb0c4d0a84a421de955007a4 ) set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/protobuf-${PROTOBUF_VERSION}) @@ -22,7 +22,9 @@ vcpkg_extract_source_archive(${ARCHIVE_FILE}) # Add a flag that can be set to disable the protobuf compiler vcpkg_apply_patches( SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/protobuf-${PROTOBUF_VERSION} - PATCHES "${CMAKE_CURRENT_LIST_DIR}/001-add-compiler-flag.patch" + PATCHES + "${CMAKE_CURRENT_LIST_DIR}/001-add-compiler-flag.patch" + "${CMAKE_CURRENT_LIST_DIR}/export-ParseGeneratorParameter.patch" ) @@ -47,12 +49,18 @@ else() set(protobuf_MSVC_STATIC_RUNTIME OFF) endif() +if("zlib" IN_LIST FEATURES) + set(protobuf_WITH_ZLIB ON) +else() + set(protobuf_WITH_ZLIB OFF) +endif() + vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH}/cmake OPTIONS -Dprotobuf_BUILD_SHARED_LIBS=${protobuf_BUILD_SHARED_LIBS} -Dprotobuf_MSVC_STATIC_RUNTIME=${protobuf_MSVC_STATIC_RUNTIME} - -Dprotobuf_WITH_ZLIB=ON + -Dprotobuf_WITH_ZLIB=${protobuf_WITH_ZLIB} -Dprotobuf_BUILD_TESTS=OFF -Dprotobuf_BUILD_COMPILER=${protobuf_BUILD_COMPILER} -DCMAKE_INSTALL_CMAKEDIR=share/protobuf diff --git a/ports/pthreads/portfile.cmake b/ports/pthreads/portfile.cmake index cddb3f411..2f540316e 100644 --- a/ports/pthreads/portfile.cmake +++ b/ports/pthreads/portfile.cmake @@ -1,3 +1,7 @@ +if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + message(FATAL_ERROR "${PORT} does not currently support UWP") +endif() + include(vcpkg_common_functions) set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/pthreads-w32-2-9-1-release) vcpkg_download_distfile(ARCHIVE diff --git a/ports/pugixml/CONTROL b/ports/pugixml/CONTROL index 01679ea6e..eb1f4e634 100644 --- a/ports/pugixml/CONTROL +++ b/ports/pugixml/CONTROL @@ -1,3 +1,3 @@ Source: pugixml -Version: 1.8.1-2 +Version: 1.8.1-3 Description: C++ XML processing library diff --git a/ports/pugixml/portfile.cmake b/ports/pugixml/portfile.cmake index 0d5123974..889063223 100644 --- a/ports/pugixml/portfile.cmake +++ b/ports/pugixml/portfile.cmake @@ -26,8 +26,7 @@ endif() vcpkg_install_cmake() vcpkg_copy_pdbs() +vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/pugixml") -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/cmake) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) -file(INSTALL ${SOURCE_PATH}/readme.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/pugixml RENAME copyright)
\ No newline at end of file +file(INSTALL ${SOURCE_PATH}/readme.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/pugixml RENAME copyright) diff --git a/ports/qhull/CONTROL b/ports/qhull/CONTROL index ff0847781..8eb3f8772 100644 --- a/ports/qhull/CONTROL +++ b/ports/qhull/CONTROL @@ -1,3 +1,3 @@ Source: qhull -Version: 2015.2-1 +Version: 2015.2-2 Description: computes the convex hull, Delaunay triangulation, Voronoi diagram diff --git a/ports/qhull/portfile.cmake b/ports/qhull/portfile.cmake index 493a14e38..25ee8f0d1 100644 --- a/ports/qhull/portfile.cmake +++ b/ports/qhull/portfile.cmake @@ -1,15 +1,3 @@ -# Common Ambient Variables: -# CURRENT_BUILDTREES_DIR = ${VCPKG_ROOT_DIR}\buildtrees\${PORT} -# CURRENT_PACKAGES_DIR = ${VCPKG_ROOT_DIR}\packages\${PORT}_${TARGET_TRIPLET} -# CURRENT_PORT_DIR = ${VCPKG_ROOT_DIR}\ports\${PORT} -# PORT = current port name (zlib, etc) -# TARGET_TRIPLET = current triplet (x86-windows, x64-windows-static, etc) -# VCPKG_CRT_LINKAGE = C runtime linkage type (static, dynamic) -# VCPKG_LIBRARY_LINKAGE = target library linkage type (static, dynamic) -# VCPKG_ROOT_DIR = <C:\path\to\current\vcpkg> -# VCPKG_TARGET_ARCHITECTURE = target architecture (x64, x86, arm) -# - include(vcpkg_common_functions) vcpkg_from_github( @@ -22,7 +10,7 @@ vcpkg_from_github( vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} - #PREFER_NINJA # Disable this option if project cannot be built with Ninja + PREFER_NINJA OPTIONS -DINCLUDE_INSTALL_DIR=${CURRENT_PACKAGES_DIR}/include -DMAN_INSTALL_DIR=${CURRENT_PACKAGES_DIR}/doc/qhull @@ -51,8 +39,11 @@ if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/qhull.lib ${CURRENT_PACKAGES_DIR}/debug/lib/qhull_d.lib) file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/qhull_p.lib ${CURRENT_PACKAGES_DIR}/debug/lib/qhull_pd.lib) file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/qhull_r.lib ${CURRENT_PACKAGES_DIR}/debug/lib/qhull_rd.lib) +else() + file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/qhullcpp.lib ${CURRENT_PACKAGES_DIR}/debug/lib/qhullcpp_d.lib) + file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/qhullstatic.lib ${CURRENT_PACKAGES_DIR}/debug/lib/qhullstatic_d.lib) + file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/qhullstatic_r.lib ${CURRENT_PACKAGES_DIR}/debug/lib/qhullstatic_rd.lib) endif() -# Handle copyright file(COPY ${SOURCE_PATH}/README.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/qhull) file(RENAME ${CURRENT_PACKAGES_DIR}/share/qhull/README.txt ${CURRENT_PACKAGES_DIR}/share/qhull/copyright) diff --git a/ports/qpid-proton/CONTROL b/ports/qpid-proton/CONTROL new file mode 100644 index 000000000..6f64c3fcf --- /dev/null +++ b/ports/qpid-proton/CONTROL @@ -0,0 +1,4 @@ +Source: qpid-proton +Version: 0.18.1 +Build-Depends: openssl +Description: Qpid Proton is a high-performance, lightweight messaging library.
\ No newline at end of file diff --git a/ports/qpid-proton/portfile.cmake b/ports/qpid-proton/portfile.cmake new file mode 100644 index 000000000..91be9aae3 --- /dev/null +++ b/ports/qpid-proton/portfile.cmake @@ -0,0 +1,39 @@ +include(vcpkg_common_functions) + +# Use this throughout rather than literal string +set(QPID_PROTON_VERSION 0.18.1) +vcpkg_find_acquire_program(PYTHON2) + +# Go grab the code. Set SHA512 to 1 to get correct sha from download +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO apache/qpid-proton + REF ${QPID_PROTON_VERSION} + SHA512 92cbd7f534e8b180fb72888999af2735541663c70dde1e4e1382f39c5057920df0fb72527db23008823d69a7ddac335217f16270c0bbdb4dfe26733feddf94cc + HEAD_REF next +) + +# Run cmake configure step +vcpkg_configure_cmake(SOURCE_PATH ${SOURCE_PATH} + OPTIONS + -DPYTHON_EXECUTABLE=${PYTHON2}) + +# Run cmake install step +vcpkg_install_cmake() + +# Copy across any pdbs generated +vcpkg_copy_pdbs() + +# Rename share subdirectory +file(RENAME ${CURRENT_PACKAGES_DIR}/share/proton-${QPID_PROTON_VERSION} + ${CURRENT_PACKAGES_DIR}/share/${PORT}) + +# Vcpkg expects file with name "copyright" +file(RENAME ${CURRENT_PACKAGES_DIR}/share/${PORT}/LICENSE + ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright) + +# Remove extraneous unrequired-for-vcpkg files +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/cmake) diff --git a/ports/realsense2/CONTROL b/ports/realsense2/CONTROL new file mode 100644 index 000000000..9153402c7 --- /dev/null +++ b/ports/realsense2/CONTROL @@ -0,0 +1,3 @@ +Source: realsense2 +Version: 2.8.2 +Description: Intel® RealSense™ SDK 2.0 is a cross-platform library for Intel® RealSense™ depth cameras (D400 series and the SR300). diff --git a/ports/realsense2/crt-linkage-restriction.patch b/ports/realsense2/crt-linkage-restriction.patch new file mode 100644 index 000000000..ae4acc834 --- /dev/null +++ b/ports/realsense2/crt-linkage-restriction.patch @@ -0,0 +1,19 @@ +--- a/CMakeLists.txt 2017-11-07 14:30:02.270145100 +0800 ++++ b/CMakeLists.txt 2017-11-07 14:26:42.306208800 +0800 +@@ -402,16 +402,6 @@ + source_group("Header Files\\Processing Blocks" FILES + src/colorizer.h + ) +- +- foreach(flag_var +- CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE +- CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO +- CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE +- CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO) +- if(${flag_var} MATCHES "/MD") +- string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}") +- endif(${flag_var} MATCHES "/MD") +- endforeach(flag_var) + else() + + endif() diff --git a/ports/realsense2/portfile.cmake b/ports/realsense2/portfile.cmake new file mode 100644 index 000000000..609b1c660 --- /dev/null +++ b/ports/realsense2/portfile.cmake @@ -0,0 +1,43 @@ +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO IntelRealSense/librealsense + REF v2.8.2 + SHA512 a2622ff241e939fad74f6d0224b5f9b505e971935bb8f27dc10159a5853bc5d55870c312c0f43014c8c7ec5a1c824e659ee9ee9a574b2d7c9b8e484c1a4918a1 + HEAD_REF master +) + +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES + ${CMAKE_CURRENT_LIST_DIR}/crt-linkage-restriction.patch +) + +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + OPTIONS + -DENFORCE_METADATA=on + -DBUILD_EXAMPLES=off + -DBUILD_GRAPHICAL_EXAMPLES=off + -DBUILD_PYTHON_BINDINGS=off + -DBUILD_UNIT_TESTS=off + -DBUILD_WITH_OPENMP=off # keep OpenMP off until librealsense issue #744 is patched + -DBUILD_SHARED_LIBS=${BUILD_SHARED} + OPTIONS_DEBUG + "-DCMAKE_PDB_OUTPUT_DIRECTORY=${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg" +) + +vcpkg_install_cmake() + +vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/realsense2) + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +# Handle copyright +file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/realsense2) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/realsense2/COPYING ${CURRENT_PACKAGES_DIR}/share/realsense2/copyright) + +vcpkg_copy_pdbs() + diff --git a/ports/redshell/CONTROL b/ports/redshell/CONTROL index 54d211498..adb34e490 100644 --- a/ports/redshell/CONTROL +++ b/ports/redshell/CONTROL @@ -1,4 +1,4 @@ Source: redshell -Version: 1.0.0 +Version: 1.1.2 Description: RedShell C++ SDK. Steam attribution tracking, www.redshell.io -# Built-Using: openssl (= 1.0.2k-2), cpprestsdk (= 2.9.0-2), boost (= 1.64-4), websocketpp (= 0.7.0), zlib (= 1.2.11), bzip2 (= 1.0.6-1) +# Built-Using: openssl (= 1.0.2m), cpprestsdk (= 2.10.0), boost (= 1.65.1-3), websocketpp (= 0.7.0-1), zlib (= 1.2.11-3), bzip2 (= 1.0.6-2) diff --git a/ports/redshell/portfile.cmake b/ports/redshell/portfile.cmake index d7fbec955..52d5c105e 100644 --- a/ports/redshell/portfile.cmake +++ b/ports/redshell/portfile.cmake @@ -22,8 +22,8 @@ set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/redshell) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Innervate/red-shell-cpp - REF 1.0.0 - SHA512 00c79a09e92131e4ee0f46b14a2280bdb4e8c5970876dba99e8edd2294813f1b602eb0c9c8e24c9fd363a5c276dfa3daaf71f6ba2774842a8b565c803b3ff08c + REF 1.1.2 + SHA512 9e0705508928efed5ae5c216316cb0429090cd7131ca7993f585eaf26bccd1e18b93dfeaff0406c64921b06c8312c0d147024af1c29e6003ff35556cda36e57c HEAD_REF master ) diff --git a/ports/refprop-headers/CONTROL b/ports/refprop-headers/CONTROL new file mode 100644 index 000000000..00b78cc55 --- /dev/null +++ b/ports/refprop-headers/CONTROL @@ -0,0 +1,3 @@ +Source: refprop-headers +Version: 2017-11-7-882aec454b2bc3d5323b8691736ff09c288f4ed6 +Description: The REFPROP Headers diff --git a/ports/refprop-headers/portfile.cmake b/ports/refprop-headers/portfile.cmake new file mode 100644 index 000000000..4b6274e12 --- /dev/null +++ b/ports/refprop-headers/portfile.cmake @@ -0,0 +1,19 @@ +include(vcpkg_common_functions) +set(PORT_COMMIT 882aec454b2bc3d5323b8691736ff09c288f4ed6) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO CoolProp/REFPROP-headers + REF ${PORT_COMMIT} + SHA512 23ee3df4ffe21b2d790efa27a1b8ea5fa4fce0a274d78e493a2d71043670420e19216f925d23d04f6139ca084a21b97028bd2547f3dbd00ffbb33d0c0bbfece5 + HEAD_REF master +) + +file(INSTALL ${SOURCE_PATH}/REFPROP_lib.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) + +# Handle copyright +file( + INSTALL ${SOURCE_PATH}/LICENSE + DESTINATION ${CURRENT_PACKAGES_DIR}/share/refprop-headers + RENAME copyright +) diff --git a/ports/rpclib/CONTROL b/ports/rpclib/CONTROL new file mode 100644 index 000000000..160f4651c --- /dev/null +++ b/ports/rpclib/CONTROL @@ -0,0 +1,3 @@ +Source: rpclib +Version: 2.2.0 +Description: a RPC library for C++, providing both a client and server implementation. It is built using modern C++14. diff --git a/ports/rpclib/portfile.cmake b/ports/rpclib/portfile.cmake new file mode 100644 index 000000000..5f4ac6a57 --- /dev/null +++ b/ports/rpclib/portfile.cmake @@ -0,0 +1,30 @@ +include(vcpkg_common_functions) + +if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) + message(STATUS "Warning: Dynamic building not supported yet. Building static.") + set(VCPKG_LIBRARY_LINKAGE static) +endif() + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO rpclib/rpclib + REF v2.2.0 + SHA512 73d2344debb3a6ced6a045ba3bf8839a6f91d8f43dfac8760c65d19d1fc7960e778457a20fddbd771d7dd4b12e32d8a925f1fc008d11ccc5654dbeb08ba0f50a + HEAD_REF master +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA +) + +vcpkg_install_cmake() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/rpclib) + +vcpkg_copy_pdbs() + +file(COPY ${SOURCE_PATH}/LICENSE.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/rpclib) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/rpclib/LICENSE.md ${CURRENT_PACKAGES_DIR}/share/rpclib/copyright) diff --git a/ports/rttr/disable-unit-tests.patch b/ports/rttr/disable-unit-tests.patch new file mode 100644 index 000000000..b27f01661 --- /dev/null +++ b/ports/rttr/disable-unit-tests.patch @@ -0,0 +1,14 @@ +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index b9fd698..bcaebfe 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -31,7 +31,9 @@ + ############################################# + + add_subdirectory (rttr) ++if(UNIT_TESTS) + add_subdirectory (unit_tests) ++endif() + + if (${BUILD_BENCHMARKS}) + add_subdirectory (benchmarks) diff --git a/ports/rttr/portfile.cmake b/ports/rttr/portfile.cmake index b590b7873..f3b3eafb9 100644 --- a/ports/rttr/portfile.cmake +++ b/ports/rttr/portfile.cmake @@ -14,7 +14,9 @@ vcpkg_extract_source_archive(${ARCHIVE}) vcpkg_apply_patches( SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/rttr-0.9.5-src - PATCHES "${CMAKE_CURRENT_LIST_DIR}/fix-directory-output.patch" + PATCHES + "${CMAKE_CURRENT_LIST_DIR}/fix-directory-output.patch" + "${CMAKE_CURRENT_LIST_DIR}/disable-unit-tests.patch" ) vcpkg_configure_cmake( diff --git a/ports/scintilla/CONTROL b/ports/scintilla/CONTROL new file mode 100644 index 000000000..f382cb552 --- /dev/null +++ b/ports/scintilla/CONTROL @@ -0,0 +1,3 @@ +Source: scintilla +Version: 3.7.6 +Description: A free source code editing component for Win32, GTK+, and OS X diff --git a/ports/scintilla/portfile.cmake b/ports/scintilla/portfile.cmake new file mode 100644 index 000000000..4bdfc8ec8 --- /dev/null +++ b/ports/scintilla/portfile.cmake @@ -0,0 +1,61 @@ +# Common Ambient Variables: +# CURRENT_BUILDTREES_DIR = ${VCPKG_ROOT_DIR}\buildtrees\${PORT} +# CURRENT_PACKAGES_DIR = ${VCPKG_ROOT_DIR}\packages\${PORT}_${TARGET_TRIPLET} +# CURRENT_PORT_DIR = ${VCPKG_ROOT_DIR}\ports\${PORT} +# PORT = current port name (zlib, etc) +# TARGET_TRIPLET = current triplet (x86-windows, x64-windows-static, etc) +# VCPKG_CRT_LINKAGE = C runtime linkage type (static, dynamic) +# VCPKG_LIBRARY_LINKAGE = target library linkage type (static, dynamic) +# VCPKG_ROOT_DIR = <C:\path\to\current\vcpkg> +# VCPKG_TARGET_ARCHITECTURE = target architecture (x64, x86, arm) +# + +include(vcpkg_common_functions) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/scintilla) +vcpkg_download_distfile(ARCHIVE + URLS "http://www.scintilla.org/scintilla376.zip" + FILENAME "scintilla376.zip" + SHA512 618a50405eede3277d7696ac58122aeeb490d10ae392c60c7f78baaa96c965a8e1a599948e0ebd61bed7f75894b01bdf4574a0e5d0e20996bfdfb2e1bdb33203 +) +vcpkg_extract_source_archive(${ARCHIVE}) + +if(TRIPLET_SYSTEM_ARCH MATCHES "x86") + set(BUILD_ARCH "Win32") +else() + set(BUILD_ARCH ${TRIPLET_SYSTEM_ARCH}) +endif() + +vcpkg_build_msbuild( + PROJECT_PATH ${SOURCE_PATH}/Win32/SciLexer.vcxproj + PLATFORM ${MSBUILD_PLATFORM} +) + +# Handle headers +file(INSTALL ${SOURCE_PATH}/include/ILexer.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) +file(INSTALL ${SOURCE_PATH}/include/Sci_Position.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) +file(INSTALL ${SOURCE_PATH}/include/SciLexer.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) +file(INSTALL ${SOURCE_PATH}/include/Scintilla.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) + +# Handle libraries +if(BUILD_ARCH STREQUAL "Win32") + set(BUILD_DIR_DEBUG "/Debug") + set(BUILD_DIR_RELEASE "/Release") +else() + set(BUILD_DIR_DEBUG "${BUILD_ARCH}/Debug") + set(BUILD_DIR_RELEASE "${BUILD_ARCH}/Release") +endif() + +if(VCPKG_LIBRARY_LINKAGE MATCHES "dynamic") + file(INSTALL ${SOURCE_PATH}/win32/${BUILD_DIR_RELEASE}/SciLexer.dll DESTINATION ${CURRENT_PACKAGES_DIR}/bin) + file(INSTALL ${SOURCE_PATH}/win32/${BUILD_DIR_DEBUG}/SciLexer.dll DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) +endif() +file(INSTALL ${SOURCE_PATH}/win32/${BUILD_DIR_RELEASE}/SciLexer.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib) +file(INSTALL ${SOURCE_PATH}/win32/${BUILD_DIR_DEBUG}/SciLexer.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) + +# Handle PDBs + +file(INSTALL ${SOURCE_PATH}/win32/${BUILD_DIR_RELEASE}/SciLexer.pdb DESTINATION ${CURRENT_PACKAGES_DIR}/bin) +file(INSTALL ${SOURCE_PATH}/win32/${BUILD_DIR_DEBUG}/SciLexer.pdb DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) + +# Handle copyright +file(INSTALL ${SOURCE_PATH}/License.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/scintilla RENAME copyright) diff --git a/ports/sdl2-mixer/CMakeLists.txt b/ports/sdl2-mixer/CMakeLists.txt index 014923628..3a2aa0780 100644 --- a/ports/sdl2-mixer/CMakeLists.txt +++ b/ports/sdl2-mixer/CMakeLists.txt @@ -8,17 +8,16 @@ set(SDL_MIXER_LIBRARIES ${SDL_LIBRARY}) # builtin formats set(SDL_MIXER_DEFINES - WAV_MUSIC - MID_MUSIC - USE_NATIVE_MIDI) + MUSIC_WAV + MUSIC_MID_NATIVE) # MP3 support if(SDL_MIXER_ENABLE_MP3) - find_path(SMPEG_INCLUDE_DIR smpeg.h) - find_library(SMPEG_LIBRARY smpeg2) - list(APPEND SDL_MIXER_INCLUDES ${SMPEG_INCLUDE_DIR}) - list(APPEND SDL_MIXER_LIBRARIES ${SMPEG_LIBRARY}) - list(APPEND SDL_MIXER_DEFINES MP3_MUSIC) + find_path(MPG123_INCLUDE_DIR mpg123.h) + find_library(MPG123_LIBRARY libmpg123) + list(APPEND SDL_MIXER_INCLUDES ${MPG123_INCLUDE_DIR}) + list(APPEND SDL_MIXER_LIBRARIES ${MPG123_LIBRARY}) + list(APPEND SDL_MIXER_DEFINES MUSIC_MP3_MPG123) endif() # FLAC support @@ -27,7 +26,7 @@ if(SDL_MIXER_ENABLE_FLAC) find_library(FLAC_LIBRARY flac) list(APPEND SDL_MIXER_INCLUDES ${FLAC_INCLUDE_DIR}) list(APPEND SDL_MIXER_LIBRARIES ${FLAC_LIBRARY}) - list(APPEND SDL_MIXER_DEFINES FLAC_MUSIC) + list(APPEND SDL_MIXER_DEFINES MUSIC_FLAC) endif() # MOD support @@ -36,7 +35,7 @@ if(SDL_MIXER_ENABLE_MOD) find_library(MODPLUG_LIBRARY modplug) list(APPEND SDL_MIXER_INCLUDES ${MODPLUG_INCLUDE_DIR}) list(APPEND SDL_MIXER_LIBRARIES ${MODPLUG_LIBRARY}) - list(APPEND SDL_MIXER_DEFINES MODPLUG_MUSIC) + list(APPEND SDL_MIXER_DEFINES MUSIC_MOD_MODPLUG) endif() # Ogg-Vorbis support @@ -45,34 +44,29 @@ if(SDL_MIXER_ENABLE_OGGVORBIS) find_library(VORBISFILE_LIBRARY vorbisfile) list(APPEND SDL_MIXER_INCLUDES ${VORBIS_INCLUDE_DIR}) list(APPEND SDL_MIXER_LIBRARIES ${VORBISFILE_LIBRARY}) - list(APPEND SDL_MIXER_DEFINES OGG_MUSIC) + list(APPEND SDL_MIXER_DEFINES MUSIC_OGG) endif() add_library(SDL2_mixer - dynamic_flac.c - dynamic_fluidsynth.c - dynamic_mod.c - dynamic_modplug.c - dynamic_mp3.c - dynamic_ogg.c effect_position.c effect_stereoreverse.c effects_internal.c - fluidsynth.c load_aiff.c - load_flac.c - load_mp3.c - load_ogg.c load_voc.c mixer.c music.c music_cmd.c music_flac.c + music_fluidsynth.c music_mad.c - music_mod.c + music_mikmod.c music_modplug.c + music_mpg123.c + music_nativemidi.c music_ogg.c - wavestream.c + music_smpeg.c + music_timidity.c + music_wav.c native_midi/native_midi_common.c native_midi/native_midi_win32.c) diff --git a/ports/sdl2-mixer/CONTROL b/ports/sdl2-mixer/CONTROL index f0ef29fbd..978b87d13 100644 --- a/ports/sdl2-mixer/CONTROL +++ b/ports/sdl2-mixer/CONTROL @@ -1,4 +1,4 @@ Source: sdl2-mixer -Version: 2.0.1-3 +Version: 2.0.2-1 Description: Multi-channel audio mixer library for SDL. -Build-Depends: sdl2, libflac, smpeg2, libmodplug, libvorbis +Build-Depends: sdl2, libflac, mpg123, libmodplug, libvorbis diff --git a/ports/sdl2-mixer/portfile.cmake b/ports/sdl2-mixer/portfile.cmake index 574e6a1e0..9f6240bcf 100644 --- a/ports/sdl2-mixer/portfile.cmake +++ b/ports/sdl2-mixer/portfile.cmake @@ -1,9 +1,9 @@ include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/SDL2_mixer-2.0.1) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/SDL2_mixer-2.0.2) vcpkg_download_distfile(ARCHIVE - URLS "https://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-2.0.1.zip" - FILENAME "SDL2_mixer-2.0.1.zip" - SHA512 7399f08c5b091698c90d49fcc2996677eae8a36f05a65b4470807c9cf2c04730669e0ca395893cfa49177a929f8c5b2b10b6c541ba2fe2646300dcdad4ec1d9e) + URLS "https://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-2.0.2.zip" + FILENAME "SDL2_mixer-2.0.2.zip" + SHA512 da0c27c560a153d57d69a1b6c58a288f017762afc654749957072900a904d3dac19a0efcb68516cb166546d29ff570462385016e0041dae6f393ccb4bbd2ffbc) vcpkg_extract_source_archive(${ARCHIVE}) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) @@ -12,7 +12,7 @@ vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA OPTIONS - -DSDL_MIXER_ENABLE_MP3=ON # smpeg2 + -DSDL_MIXER_ENABLE_MP3=ON # mpg123 -DSDL_MIXER_ENABLE_FLAC=ON # libflac -DSDL_MIXER_ENABLE_MOD=ON # libmodplug -DSDL_MIXER_ENABLE_OGGVORBIS=ON # libvorbis diff --git a/ports/sdl2/CONTROL b/ports/sdl2/CONTROL index e4d99f4ae..44ea3ce3c 100644 --- a/ports/sdl2/CONTROL +++ b/ports/sdl2/CONTROL @@ -1,3 +1,3 @@ Source: sdl2 -Version: 2.0.6-1 +Version: 2.0.7-3 Description: Simple DirectMedia Layer is a cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL and Direct3D. diff --git a/ports/sdl2/enable-winrt-cmake.patch b/ports/sdl2/enable-winrt-cmake.patch new file mode 100644 index 000000000..dcd2afa67 --- /dev/null +++ b/ports/sdl2/enable-winrt-cmake.patch @@ -0,0 +1,206 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 73d9407..082fbc5 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -3,7 +3,11 @@ if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR}) + endif() + + cmake_minimum_required(VERSION 2.8.11) +-project(SDL2 C) ++if(CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") ++ project(SDL2 C CXX) ++else() ++ project(SDL2 C) ++endif() + + # !!! FIXME: this should probably do "MACOSX_RPATH ON" as a target property + # !!! FIXME: for the SDL2 shared library (so you get an +@@ -358,7 +362,6 @@ file(GLOB SOURCE_FILES + ${SDL2_SOURCE_DIR}/src/timer/*.c + ${SDL2_SOURCE_DIR}/src/video/*.c) + +- + if(ASSERTIONS STREQUAL "auto") + # Do nada - use optimization settings to determine the assertion level + elseif(ASSERTIONS STREQUAL "disabled") +@@ -1132,6 +1135,22 @@ elseif(WINDOWS) + file(GLOB CORE_SOURCES ${SDL2_SOURCE_DIR}/src/core/windows/*.c) + set(SOURCE_FILES ${SOURCE_FILES} ${CORE_SOURCES}) + ++ if(WINDOWS_STORE) ++ cmake_minimum_required(VERSION 3.0) ++ add_definitions(-DSDL_BUILDING_WINRT=1 -ZW) ++ link_libraries( ++ -nodefaultlib:vccorlib$<$<CONFIG:Debug>:d> ++ -nodefaultlib:msvcrt$<$<CONFIG:Debug>:d> ++ vccorlib$<$<CONFIG:Debug>:d>.lib ++ msvcrt$<$<CONFIG:Debug>:d>.lib ++ ) ++ endif() ++ ++ if(WINDOWS_STORE) ++ file(GLOB WINRT_SOURCE_FILES ${SDL2_SOURCE_DIR}/src/core/winrt/*.c ${SDL2_SOURCE_DIR}/src/core/winrt/*.cpp) ++ set(SOURCE_FILES ${SOURCE_FILES} ${WINRT_SOURCE_FILES}) ++ endif() ++ + if(MSVC) + # Prevent codegen that would use the VC runtime libraries. + set_property(DIRECTORY . APPEND PROPERTY COMPILE_OPTIONS "/GS-") +@@ -1176,7 +1195,11 @@ elseif(WINDOWS) + check_include_file(d3d11_1.h HAVE_D3D11_H) + check_include_file(ddraw.h HAVE_DDRAW_H) + check_include_file(dsound.h HAVE_DSOUND_H) +- check_include_file(dinput.h HAVE_DINPUT_H) ++ if(WINDOWS_STORE) ++ set(HAVE_DINPUT_H 0) ++ else() ++ check_include_file(dinput.h HAVE_DINPUT_H) ++ endif() + check_include_file(xaudio2.h HAVE_XAUDIO2_H) + check_include_file(mmdeviceapi.h HAVE_MMDEVICEAPI_H) + check_include_file(audioclient.h HAVE_AUDIOCLIENT_H) +@@ -1193,12 +1216,14 @@ elseif(WINDOWS) + endif() + + if(SDL_AUDIO) +- set(SDL_AUDIO_DRIVER_WINMM 1) +- file(GLOB WINMM_AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/winmm/*.c) +- set(SOURCE_FILES ${SOURCE_FILES} ${WINMM_AUDIO_SOURCES}) +- set(HAVE_SDL_AUDIO TRUE) ++ if(NOT WINDOWS_STORE) ++ set(SDL_AUDIO_DRIVER_WINMM 1) ++ file(GLOB WINMM_AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/winmm/*.c) ++ set(SOURCE_FILES ${SOURCE_FILES} ${WINMM_AUDIO_SOURCES}) ++ set(HAVE_SDL_AUDIO TRUE) ++ endif() + +- if(HAVE_DSOUND_H) ++ if(HAVE_DSOUND_H AND NOT WINDOWS_STORE) + set(SDL_AUDIO_DRIVER_DSOUND 1) + file(GLOB DSOUND_AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/directsound/*.c) + set(SOURCE_FILES ${SOURCE_FILES} ${DSOUND_AUDIO_SOURCES}) +@@ -1208,9 +1233,10 @@ elseif(WINDOWS) + set(SDL_AUDIO_DRIVER_XAUDIO2 1) + file(GLOB XAUDIO2_AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/xaudio2/*.c) + set(SOURCE_FILES ${SOURCE_FILES} ${XAUDIO2_AUDIO_SOURCES}) ++ set(HAVE_SDL_AUDIO TRUE) + endif() + +- if(HAVE_AUDIOCLIENT_H AND HAVE_MMDEVICEAPI_H) ++ if(HAVE_AUDIOCLIENT_H AND HAVE_MMDEVICEAPI_H AND NOT WINDOWS_STORE) + set(SDL_AUDIO_DRIVER_WASAPI 1) + file(GLOB WASAPI_AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/wasapi/*.c) + set(SOURCE_FILES ${SOURCE_FILES} ${WASAPI_AUDIO_SOURCES}) +@@ -1222,11 +1248,20 @@ elseif(WINDOWS) + if(NOT SDL_LOADSO) + message_error("SDL_VIDEO requires SDL_LOADSO, which is not enabled") + endif() +- set(SDL_VIDEO_DRIVER_WINDOWS 1) +- file(GLOB WIN_VIDEO_SOURCES ${SDL2_SOURCE_DIR}/src/video/windows/*.c) ++ if(WINDOWS_STORE) ++ set(SDL_VIDEO_DRIVER_WINRT 1) ++ file(GLOB WIN_VIDEO_SOURCES ++ ${SDL2_SOURCE_DIR}/src/video/winrt/*.c ++ ${SDL2_SOURCE_DIR}/src/video/winrt/*.cpp ++ ${SDL2_SOURCE_DIR}/src/render/direct3d11/*.cpp ++ ) ++ else() ++ set(SDL_VIDEO_DRIVER_WINDOWS 1) ++ file(GLOB WIN_VIDEO_SOURCES ${SDL2_SOURCE_DIR}/src/video/windows/*.c) ++ endif() + set(SOURCE_FILES ${SOURCE_FILES} ${WIN_VIDEO_SOURCES}) + +- if(RENDER_D3D AND HAVE_D3D_H) ++ if(RENDER_D3D AND HAVE_D3D_H AND NOT WINDOWS_STORE) + set(SDL_VIDEO_RENDER_D3D 1) + set(HAVE_RENDER_D3D TRUE) + endif() +@@ -1249,20 +1284,31 @@ elseif(WINDOWS) + endif() + + if(SDL_POWER) +- set(SDL_POWER_WINDOWS 1) +- set(SOURCE_FILES ${SOURCE_FILES} ${SDL2_SOURCE_DIR}/src/power/windows/SDL_syspower.c) ++ if(WINDOWS_STORE) ++ set(SDL_POWER_WINRT 1) ++ set(SOURCE_FILES ${SOURCE_FILES} ${SDL2_SOURCE_DIR}/src/power/winrt/SDL_syspower.cpp) ++ else() ++ set(SDL_POWER_WINDOWS 1) ++ set(SOURCE_FILES ${SOURCE_FILES} ${SDL2_SOURCE_DIR}/src/power/windows/SDL_syspower.c) ++ endif() + set(HAVE_SDL_POWER TRUE) + endif() + + if(SDL_FILESYSTEM) + set(SDL_FILESYSTEM_WINDOWS 1) +- file(GLOB FILESYSTEM_SOURCES ${SDL2_SOURCE_DIR}/src/filesystem/windows/*.c) ++ if(WINDOWS_STORE) ++ file(GLOB FILESYSTEM_SOURCES ${SDL2_SOURCE_DIR}/src/filesystem/winrt/*.cpp) ++ else() ++ file(GLOB FILESYSTEM_SOURCES ${SDL2_SOURCE_DIR}/src/filesystem/windows/*.c) ++ endif() + set(SOURCE_FILES ${SOURCE_FILES} ${FILESYSTEM_SOURCES}) + set(HAVE_SDL_FILESYSTEM TRUE) + endif() + + # Libraries for Win32 native and MinGW +- list(APPEND EXTRA_LIBS user32 gdi32 winmm imm32 ole32 oleaut32 version uuid) ++ if(NOT WINDOWS_STORE) ++ list(APPEND EXTRA_LIBS user32 gdi32 winmm imm32 ole32 oleaut32 version uuid) ++ endif() + + # TODO: in configure.in the check for timers is set on + # cygwin | mingw32* - does this include mingw32CE? +@@ -1284,7 +1330,7 @@ elseif(WINDOWS) + set(SOURCE_FILES ${SOURCE_FILES} ${CORE_SOURCES}) + + if(SDL_VIDEO) +- if(VIDEO_OPENGL) ++ if(VIDEO_OPENGL AND NOT WINDOWS_STORE) + set(SDL_VIDEO_OPENGL 1) + set(SDL_VIDEO_OPENGL_WGL 1) + set(SDL_VIDEO_RENDER_OGL 1) +@@ -1688,9 +1734,11 @@ endif() + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}") + + # Always build SDLmain +-add_library(SDL2main STATIC ${SDLMAIN_SOURCES}) +-target_include_directories(SDL2main PUBLIC $<INSTALL_INTERFACE:include>) +-set(_INSTALL_LIBS "SDL2main") ++if(NOT WINDOWS_STORE) ++ add_library(SDL2main STATIC ${SDLMAIN_SOURCES}) ++ target_include_directories(SDL2main PUBLIC $<INSTALL_INTERFACE:include>) ++ set(_INSTALL_LIBS "SDL2main") ++endif() + + if(SDL_SHARED) + add_library(SDL2 SHARED ${SOURCE_FILES} ${VERSION_SOURCES}) +diff --git a/include/SDL_config.h.cmake b/include/SDL_config.h.cmake +index 9b20398..7ae6e35 100644 +--- a/include/SDL_config.h.cmake ++++ b/include/SDL_config.h.cmake +@@ -298,6 +298,7 @@ + #cmakedefine SDL_VIDEO_DRIVER_DIRECTFB_DYNAMIC @SDL_VIDEO_DRIVER_DIRECTFB_DYNAMIC@ + #cmakedefine SDL_VIDEO_DRIVER_DUMMY @SDL_VIDEO_DRIVER_DUMMY@ + #cmakedefine SDL_VIDEO_DRIVER_WINDOWS @SDL_VIDEO_DRIVER_WINDOWS@ ++#cmakedefine SDL_VIDEO_DRIVER_WINRT @SDL_VIDEO_DRIVER_WINRT@ + #cmakedefine SDL_VIDEO_DRIVER_WAYLAND @SDL_VIDEO_DRIVER_WAYLAND@ + #cmakedefine SDL_VIDEO_DRIVER_RPI @SDL_VIDEO_DRIVER_RPI@ + #cmakedefine SDL_VIDEO_DRIVER_VIVANTE @SDL_VIDEO_DRIVER_VIVANTE@ +@@ -365,6 +366,7 @@ + #cmakedefine SDL_POWER_ANDROID @SDL_POWER_ANDROID@ + #cmakedefine SDL_POWER_LINUX @SDL_POWER_LINUX@ + #cmakedefine SDL_POWER_WINDOWS @SDL_POWER_WINDOWS@ ++#cmakedefine SDL_POWER_WINRT @SDL_POWER_WINRT@ + #cmakedefine SDL_POWER_MACOSX @SDL_POWER_MACOSX@ + #cmakedefine SDL_POWER_HAIKU @SDL_POWER_HAIKU@ + #cmakedefine SDL_POWER_EMSCRIPTEN @SDL_POWER_EMSCRIPTEN@ +@@ -387,7 +389,7 @@ + #cmakedefine SDL_LIBSAMPLERATE_DYNAMIC @SDL_LIBSAMPLERATE_DYNAMIC@ + + /* Platform specific definitions */ +-#if !defined(__WIN32__) ++#if !defined(__WIN32__) && !defined(__WINRT__) + # if !defined(_STDINT_H_) && !defined(_STDINT_H) && !defined(HAVE_STDINT_H) && !defined(_HAVE_STDINT_H) + typedef unsigned int size_t; + typedef signed char int8_t; diff --git a/ports/sdl2/portfile.cmake b/ports/sdl2/portfile.cmake index a430b29f6..17f96748e 100644 --- a/ports/sdl2/portfile.cmake +++ b/ports/sdl2/portfile.cmake @@ -1,7 +1,7 @@ include(vcpkg_common_functions) -set(SDL2_VERSION 2.0.6) -set(SDL2_HASH ad4dad5663834ee0ffbdca1b531d753449b260c9256df2c48da7261aacd9795d91eef1286525cf914f6b92ba5985de7798f041557574b5d978b8224f10041830) +set(SDL2_VERSION 2.0.7) +set(SDL2_HASH eed5477843086a0e66552eb197a5c4929134522bc366d873732361ea0df5fb841ef7e2b1913e21d1bae69e6fd3152ee630492e615c58cbe903e7d6e47b587410) set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/SDL2-${SDL2_VERSION}) vcpkg_download_distfile(ARCHIVE_FILE @@ -15,56 +15,41 @@ vcpkg_apply_patches( SOURCE_PATH ${SOURCE_PATH} PATCHES ${CMAKE_CURRENT_LIST_DIR}/export-symbols-only-in-shared-build.patch + ${CMAKE_CURRENT_LIST_DIR}/enable-winrt-cmake.patch ) -if(VCPKG_CMAKE_SYSTEM_NAME MATCHES "WindowsStore") - vcpkg_build_msbuild( - PROJECT_PATH ${SOURCE_PATH}/VisualC-WinRT/UWP_VS2015/SDL-UWP.vcxproj - ) +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" SDL_STATIC) +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" SDL_SHARED) +string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" FORCE_STATIC_VCRT) - file(COPY - ${SOURCE_PATH}/VisualC-WinRT/UWP_VS2015/Debug/SDL-UWP/SDL2.dll - ${SOURCE_PATH}/VisualC-WinRT/UWP_VS2015/Debug/SDL-UWP/SDL2.pdb - DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) - file(COPY - ${SOURCE_PATH}/VisualC-WinRT/UWP_VS2015/Release/SDL-UWP/SDL2.dll - ${SOURCE_PATH}/VisualC-WinRT/UWP_VS2015/Release/SDL-UWP/SDL2.pdb - DESTINATION ${CURRENT_PACKAGES_DIR}/bin) - file(COPY ${SOURCE_PATH}/VisualC-WinRT/UWP_VS2015/Debug/SDL-UWP/SDL2.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) - file(COPY ${SOURCE_PATH}/VisualC-WinRT/UWP_VS2015/Release/SDL-UWP/SDL2.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib) +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + -DSDL_STATIC=${SDL_STATIC} + -DSDL_SHARED=${SDL_SHARED} + -DVIDEO_VULKAN=OFF + -DFORCE_STATIC_VCRT=${FORCE_STATIC_VCRT} + -DLIBC=ON +) + +vcpkg_install_cmake() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) - file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include) - file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/include) - file(COPY ${SOURCE_PATH}/include DESTINATION ${CURRENT_PACKAGES_DIR}/include) - file(RENAME ${CURRENT_PACKAGES_DIR}/include/include ${CURRENT_PACKAGES_DIR}/include/SDL2) -else() - if(VCPKG_LIBRARY_LINKAGE STREQUAL static) - set(SDL_STATIC_LIB ON) - set(SDL_SHARED_LIB OFF) - else() - set(SDL_STATIC_LIB OFF) - set(SDL_SHARED_LIB ON) - endif() - if(VCPKG_CRT_LINKAGE STREQUAL static) - set(SDL_STATIC_CRT ON) - else() - set(SDL_STATIC_CRT OFF) - endif() - - vcpkg_configure_cmake( - SOURCE_PATH ${SOURCE_PATH} - OPTIONS - -DSDL_STATIC=${SDL_STATIC_LIB} - -DSDL_SHARED=${SDL_SHARED_LIB} - -DFORCE_STATIC_VCRT=${SDL_STATIC_CRT} - -DLIBC=ON - ) +vcpkg_fixup_cmake_targets(CONFIG_PATH "cmake") - vcpkg_install_cmake() - - file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +if(NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/lib/manual-link ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link) + file(RENAME ${CURRENT_PACKAGES_DIR}/lib/SDL2main.lib ${CURRENT_PACKAGES_DIR}/lib/manual-link/SDL2main.lib) + file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/SDL2maind.lib ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link/SDL2maind.lib) - vcpkg_fixup_cmake_targets(CONFIG_PATH "cmake") + file(GLOB SHARE_FILES ${CURRENT_PACKAGES_DIR}/share/sdl2/*.cmake) + foreach(SHARE_FILE ${SHARE_FILES}) + file(READ "${SHARE_FILE}" _contents) + string(REPLACE "lib/SDL2main" "lib/manual-link/SDL2main" _contents "${_contents}") + file(WRITE "${SHARE_FILE}" "${_contents}") + endforeach() endif() file(INSTALL ${SOURCE_PATH}/COPYING.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/sdl2 RENAME copyright) diff --git a/ports/secp256k1/CMakeLists.txt b/ports/secp256k1/CMakeLists.txt index d439053bc..2e6b46198 100644 --- a/ports/secp256k1/CMakeLists.txt +++ b/ports/secp256k1/CMakeLists.txt @@ -21,6 +21,6 @@ install(TARGETS secp256k1 ) if(INSTALL_HEADERS) - file(GLOB HEADERS include/secp256k1.h) + file(GLOB HEADERS include/*.h) install(FILES ${HEADERS} DESTINATION include) endif()
\ No newline at end of file diff --git a/ports/secp256k1/CONTROL b/ports/secp256k1/CONTROL index 181a4a7e6..be37f1693 100644 --- a/ports/secp256k1/CONTROL +++ b/ports/secp256k1/CONTROL @@ -1,3 +1,3 @@ Source: secp256k1 -Version: 2017-19-10-0b7024185045a49a1a6a4c5615bf31c94f63d9c4 +Version: 2017-19-10-0b7024185045a49a1a6a4c5615bf31c94f63d9c4-1 Description: Optimized C library for EC operations on curve diff --git a/ports/sfgui/CONTROL b/ports/sfgui/CONTROL new file mode 100644 index 000000000..39962e0e5 --- /dev/null +++ b/ports/sfgui/CONTROL @@ -0,0 +1,4 @@ +Source: sfgui +Version: 0.3.2-1 +Description: simple and fast graphical user interface library +Build-Depends: sfml diff --git a/ports/sfgui/portfile.cmake b/ports/sfgui/portfile.cmake new file mode 100644 index 000000000..7764a60a1 --- /dev/null +++ b/ports/sfgui/portfile.cmake @@ -0,0 +1,43 @@ +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO TankOs/SFGUI + REF 0.3.2 + SHA512 cd97e421695f6189995c1b7a4180e3738bf785abae37d3eb51ac6d687a88a26a1f088863b37e065edaff6ba43eea379e423b31118324c4daa65dba0b3e904869 + HEAD_REF master +) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) + set(SFGUI_BUILD_SHARED_LIBS ON) + set(SFML_STATIC_LIBRARIES OFF) +else() + set(SFGUI_BUILD_SHARED_LIBS OFF) + set(SFML_STATIC_LIBRARIES ON) +endif() + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + -DSFGUI_BUILD_DOC=OFF + -DSFGUI_BUILD_EXAMPLES=OFF + -DSFGUI_BUILD_SHARED_LIBS=${SFGUI_BUILD_SHARED_LIBS} + -DSFML_STATIC_LIBRARIES=${SFML_STATIC_LIBRARIES} +) + +vcpkg_install_cmake() +vcpkg_copy_pdbs() + +file(INSTALL ${SOURCE_PATH}/LICENSE.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/sfgui RENAME copyright) + +file(RENAME ${CURRENT_PACKAGES_DIR}/cmake/Modules/FindSFGUI.cmake ${CURRENT_PACKAGES_DIR}/share/sfgui/FindSFGUI.cmake) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/cmake/Modules) + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/cmake) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/cmake) + +file(GLOB_RECURSE SFGUI_DOC_RELEASE ${CURRENT_PACKAGES_DIR}/*.md) +file(GLOB_RECURSE SFGUI_DOC_DEBUG ${CURRENT_PACKAGES_DIR}/debug/*.md) +file(REMOVE ${SFGUI_DOC_RELEASE} ${SFGUI_DOC_DEBUG}) diff --git a/ports/signalrclient/CONTROL b/ports/signalrclient/CONTROL index babcce692..ae3ae47c1 100644 --- a/ports/signalrclient/CONTROL +++ b/ports/signalrclient/CONTROL @@ -1,4 +1,4 @@ Source: signalrclient -Version: 1.0.0-beta1-1 +Version: 1.0.0-beta1-2 Build-Depends: cpprestsdk Description: C++ client for SignalR. diff --git a/ports/signalrclient/portfile.cmake b/ports/signalrclient/portfile.cmake index ad7f4fd58..bf2669569 100644 --- a/ports/signalrclient/portfile.cmake +++ b/ports/signalrclient/portfile.cmake @@ -11,17 +11,17 @@ vcpkg_extract_source_archive(${ARCHIVE}) vcpkg_apply_patches( SOURCE_PATH ${SOURCE_PATH} PATCHES - ${CMAKE_CURRENT_LIST_DIR}/0001_cmake.patch + ${CMAKE_CURRENT_LIST_DIR}/0001_cmake.patch ) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} - OPTIONS_DEBUG - -DCPPREST_SO=${CURRENT_INSTALLED_DIR}/debug/lib/cpprest_2_9.lib - OPTIONS_RELEASE - -DCPPREST_SO=${CURRENT_INSTALLED_DIR}/lib/cpprest_2_9.lib + OPTIONS_DEBUG + -DCPPREST_SO=${CURRENT_INSTALLED_DIR}/debug/lib/cpprest_2_10.lib + OPTIONS_RELEASE + -DCPPREST_SO=${CURRENT_INSTALLED_DIR}/lib/cpprest_2_10.lib OPTIONS - -DCPPREST_INCLUDE_DIR=${CURRENT_INSTALLED_DIR}/include + -DCPPREST_INCLUDE_DIR=${CURRENT_INSTALLED_DIR}/include -DDISABLE_TESTS=ON ) diff --git a/ports/speex/CMakeLists.txt b/ports/speex/CMakeLists.txt index 839222ae6..915b08226 100644 --- a/ports/speex/CMakeLists.txt +++ b/ports/speex/CMakeLists.txt @@ -1,8 +1,6 @@ cmake_minimum_required (VERSION 3.8.0) project (libspeex C) -set(COMMON_INCLUDES ${PROJECT_BINARY_DIR}/include) - option(USE_SSE "USE_SSE used Note: USE_SSE and FIXED_POINT are mutually exclusive." ON) if(MSVC) add_definitions(-DHAVE_CONFIG_H) @@ -17,6 +15,15 @@ include_directories(win32 include) set(CMAKE_DEBUG_POSTFIX d) +file(READ "win32/libspeex.def" _contents) +string(REPLACE "LIBRARY libspeex" "LIBRARY libspeexd" _contents "${_contents}") +file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/libspeex.def" + "${_contents}\n" + "speex_nb_mode\n" + "speex_wb_mode\n" + "speex_uwb_mode\n" +) + set(SRC "libspeex/bits.c" "libspeex/cb_search.c" @@ -52,7 +59,7 @@ set(SRC "libspeex/vbr.c" "libspeex/vq.c" "libspeex/window.c" - "win32/libspeex.def" + "${CMAKE_CURRENT_BINARY_DIR}/libspeex.def" ) add_library(libspeex ${SRC}) diff --git a/ports/speex/CONTROL b/ports/speex/CONTROL index 5d3fa10a2..00910a596 100644 --- a/ports/speex/CONTROL +++ b/ports/speex/CONTROL @@ -1,3 +1,3 @@ Source: speex -Version: 1.2.0-1 +Version: 1.2.0-2 Description: Speex is an Open Source/Free Software patent-free audio compression format designed for speech. diff --git a/ports/speex/portfile.cmake b/ports/speex/portfile.cmake index 6eed0cfc9..271c2bc88 100644 --- a/ports/speex/portfile.cmake +++ b/ports/speex/portfile.cmake @@ -18,4 +18,10 @@ vcpkg_configure_cmake( vcpkg_install_cmake() +if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + file(READ "${CURRENT_PACKAGES_DIR}/include/speex/speex.h" _contents) + string(REPLACE "extern const SpeexMode" "__declspec(dllimport) extern const SpeexMode" _contents "${_contents}") + file(WRITE "${CURRENT_PACKAGES_DIR}/include/speex/speex.h" "${_contents}") +endif() + file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/speex RENAME copyright) diff --git a/ports/speexdsp/CMakeLists.txt b/ports/speexdsp/CMakeLists.txt index 76a3a9118..20ae3c290 100644 --- a/ports/speexdsp/CMakeLists.txt +++ b/ports/speexdsp/CMakeLists.txt @@ -18,7 +18,13 @@ else () add_definitions(-D_LIB) endif () -add_definitions(-D_USE_SSE -DHAVE_CONFIG_H -D_WIN32) +add_definitions(-DHAVE_CONFIG_H -D_WIN32) + +string (TOLOWER "${CMAKE_SYSTEM_PROCESSOR}" LOWERCASE_SYSTEM_PROCESSOR) +if (LOWERCASE_SYSTEM_PROCESSOR STREQUAL "x86" OR LOWERCASE_SYSTEM_PROCESSOR STREQUAL "amd64") + add_definitions(-D_USE_SSE) +endif() + include_directories("${SOURCE_PATH}/include" "${SOURCE_PATH}/win32") add_library(libspeexdsp ${LIBSPEEXDSP_SOURCES} ${LIBSPEEXDSP_HEADERS}) diff --git a/ports/sqlite-modern-cpp/CONTROL b/ports/sqlite-modern-cpp/CONTROL index 641b3229c..a70a64a21 100644 --- a/ports/sqlite-modern-cpp/CONTROL +++ b/ports/sqlite-modern-cpp/CONTROL @@ -1,4 +1,4 @@ Source: sqlite-modern-cpp
-Version: 2.4
+Version: 3.2
Build-Depends: sqlite3
Description: The C++14 wrapper around sqlite library
diff --git a/ports/sqlite-modern-cpp/portfile.cmake b/ports/sqlite-modern-cpp/portfile.cmake index 3171b5550..7d6c20308 100644 --- a/ports/sqlite-modern-cpp/portfile.cmake +++ b/ports/sqlite-modern-cpp/portfile.cmake @@ -1,20 +1,14 @@ # header only
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/sqlite_modern_cpp-2.4)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/sqlite_modern_cpp-3.2)
vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/aminroosta/sqlite_modern_cpp/archive/v2.4.tar.gz"
- FILENAME "sqlite_modern_cpp-2.4.tar.gz"
- SHA512 99d8220c9dcbf7383c75ef8061bc792a4ea0b7e6e1290992f1604f66e77fcb5055af8c54c2d82b6a8d331359e2829d987b7528208f032f32699e1349296792db
+ URLS "https://github.com/aminroosta/sqlite_modern_cpp/archive/v3.2.tar.gz"
+ FILENAME "sqlite_modern_cpp-3.2.tar.gz"
+ SHA512 7e54cc41713247c9f6373a441854e8dace8e334e6ee29f870f11bc3fd3b53b5cff4e1a6d4c7e3cda33509b70a3f9a47363922a589b9a6d0730ce6dc0c884d878
)
vcpkg_extract_source_archive(${ARCHIVE})
file(INSTALL ${SOURCE_PATH}/hdr/ DESTINATION ${CURRENT_PACKAGES_DIR}/include)
-# Handle copyright
-vcpkg_download_distfile(LICENSE
- URLS https://raw.githubusercontent.com/aminroosta/sqlite_modern_cpp/1d7747fcbb16325ec6673477b06f0c780de24a27/License.txt
- FILENAME "sqlite_modern_cpp-2.4-license-mit.txt"
- SHA512 4ffc41d14902b37841463b9e9274537cb48523a7ab7e5fbbbd14a01820d141e367851b0496aa18546ddab96100e7381db7fc35621c795a97c3290b618e18a8bd
-)
file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share/sqlite-modern-cpp)
-file(INSTALL ${LICENSE} DESTINATION ${CURRENT_PACKAGES_DIR}/share/sqlite-modern-cpp RENAME copyright)
+file(INSTALL ${SOURCE_PATH}/License.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/sqlite-modern-cpp RENAME copyright)
diff --git a/ports/sqlite3/CONTROL b/ports/sqlite3/CONTROL index b444a953a..ccb3a3745 100644 --- a/ports/sqlite3/CONTROL +++ b/ports/sqlite3/CONTROL @@ -1,3 +1,3 @@ Source: sqlite3 -Version: 3.20.1 +Version: 3.21.0 Description: SQLite is a software library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine. diff --git a/ports/sqlite3/portfile.cmake b/ports/sqlite3/portfile.cmake index 4bb53ef80..fc06850e2 100644 --- a/ports/sqlite3/portfile.cmake +++ b/ports/sqlite3/portfile.cmake @@ -1,7 +1,7 @@ include(vcpkg_common_functions)
-set(SQLITE_VERSION 3200100)
-set(SQLITE_HASH 66c325fec1c13ed5360899aa3e3a7a67d2b79d24dde954df7df7179c4d07e7b20edf831cc7107df863f3f8b0f30d21b934fcd0f7ea7b74409abbc0060bc28f7b)
+set(SQLITE_VERSION 3210000)
+set(SQLITE_HASH 0a272b00825d07528c3842ccd483d81e5e719ab56737eec0972f7f8191dfbe92e35777ab8d1b37c95fde9320bbfa3c365a4b30253af876340f55517ea96bf665)
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/sqlite-amalgamation-${SQLITE_VERSION})
vcpkg_download_distfile(ARCHIVE
diff --git a/ports/string-theory/CONTROL b/ports/string-theory/CONTROL index 63bc5b656..26cf23674 100644 --- a/ports/string-theory/CONTROL +++ b/ports/string-theory/CONTROL @@ -1,3 +1,3 @@ Source: string-theory -Version: 1.6 +Version: 1.6-1 Description: Flexible C++11 string library with type-safe formatting. diff --git a/ports/string-theory/disableTests.patch b/ports/string-theory/disableTests.patch new file mode 100644 index 000000000..7990385ac --- /dev/null +++ b/ports/string-theory/disableTests.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index cf79105..a29c209 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -230,5 +230,6 @@ install(FILES + install(EXPORT string_theory-targets + DESTINATION "${ST_INSTALL_CMAKE_DIR}/string_theory" COMPONENT devel) + +-enable_testing() +-add_subdirectory(test) ++# Note:we do not mind the tests, which caused our library build failed ,so disable the tests ++#enable_testing() ++#add_subdirectory(test) diff --git a/ports/string-theory/portfile.cmake b/ports/string-theory/portfile.cmake index 8a6cb1fd1..e3508b76a 100644 --- a/ports/string-theory/portfile.cmake +++ b/ports/string-theory/portfile.cmake @@ -7,7 +7,11 @@ vcpkg_from_github( SHA512 5bc99b6dfc2ab43d2812ee47dfbbeeb68106da39b2349799ab924f009270166ebb5508f87a37e634fbfa5495dd263697a582404650eedc5393722761c5ce2028 HEAD_REF master ) - +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES + ${CMAKE_CURRENT_LIST_DIR}/disableTests.patch +) if(VCPKG_LIBRARY_LINKAGE STREQUAL static) set(ST_BUILD_STATIC ON) else() diff --git a/ports/tesseract/CONTROL b/ports/tesseract/CONTROL index 8aee14808..6e0b0428d 100644 --- a/ports/tesseract/CONTROL +++ b/ports/tesseract/CONTROL @@ -1,4 +1,4 @@ Source: tesseract -Version: 3.05.01-1 +Version: 3.05.01-2 Description: An OCR Engine that was developed at HP Labs between 1985 and 1995... and now at Google. Build-Depends: leptonica, icu diff --git a/ports/tesseract/portfile.cmake b/ports/tesseract/portfile.cmake index 31ed2cd1f..5c37f51b3 100644 --- a/ports/tesseract/portfile.cmake +++ b/ports/tesseract/portfile.cmake @@ -19,6 +19,9 @@ vcpkg_apply_patches( ${CMAKE_CURRENT_LIST_DIR}/use-vcpkg-icu.patch ) +# The built-in cmake FindICU is better +file(REMOVE ${SOURCE_PATH}/cmake/FindICU.cmake) + vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA diff --git a/ports/tidy-html5/CONTROL b/ports/tidy-html5/CONTROL new file mode 100644 index 000000000..377e47f13 --- /dev/null +++ b/ports/tidy-html5/CONTROL @@ -0,0 +1,3 @@ +Source: tidy-html5 +Version: 5.4.0-1 +Description: Tidy tidies HTML and XML. It can tidy your documents by itself, and developers can easily integrate its features into even more powerful tools. diff --git a/ports/tidy-html5/portfile.cmake b/ports/tidy-html5/portfile.cmake new file mode 100644 index 000000000..da0ba45ca --- /dev/null +++ b/ports/tidy-html5/portfile.cmake @@ -0,0 +1,40 @@ +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO htacg/tidy-html5 + REF 5.4.0 + SHA512 d92c89f2ef371499f9c3de6f9389783d2449433b4da1f5a29e2eb81b7a7db8dd9f68e220cdde092d446e9bd779bcbc30f84bda79013526540f29d00f438cb402 + HEAD_REF master) + +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES + ${CMAKE_CURRENT_LIST_DIR}/remove_execution_character_set.patch +) + +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED_LIB) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=ON + -DBUILD_SHARED_LIB=${BUILD_SHARED_LIB} + -DTIDY_CONSOLE_SHARED=${BUILD_SHARED_LIB} +) + +vcpkg_install_cmake() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/tidyd.exe) +file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/tidy-html5) +file(RENAME ${CURRENT_PACKAGES_DIR}/bin/tidy.exe ${CURRENT_PACKAGES_DIR}/tools/tidy-html5/tidy.exe) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin) +endif() + +vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/${PORT}) + +file(INSTALL ${SOURCE_PATH}/README/LICENSE.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/tidy-html5 RENAME copyright) diff --git a/ports/tidy-html5/remove_execution_character_set.patch b/ports/tidy-html5/remove_execution_character_set.patch new file mode 100644 index 000000000..9f5ebf3e7 --- /dev/null +++ b/ports/tidy-html5/remove_execution_character_set.patch @@ -0,0 +1,90 @@ +diff --git a/src/language_en.h b/src/language_en.h +index ab191e0..e1cd96b 100644 +--- a/src/language_en.h ++++ b/src/language_en.h +@@ -18,10 +18,6 @@ + * Created by Jim Derry on 11/28/15. + */ + +-#ifdef _MSC_VER +-#pragma execution_character_set("utf-8") +-#endif +- + #include "language.h" + #include "access.h" + #include "message.h" +diff --git a/src/language_en_gb.h b/src/language_en_gb.h +index a89f0fe..7b14d6f 100644 +--- a/src/language_en_gb.h ++++ b/src/language_en_gb.h +@@ -31,10 +31,6 @@ + * PO_REVISION_DATE=2016-03-24 10:59:55 + */ + +-#ifdef _MSC_VER +-#pragma execution_character_set("utf-8") +-#endif +- + #include "language.h" + #include "access.h" + #include "message.h" +diff --git a/src/language_es.h b/src/language_es.h +index db09f2a..1e474b5 100644 +--- a/src/language_es.h ++++ b/src/language_es.h +@@ -31,10 +31,6 @@ + * PO_REVISION_DATE=2016-03-24 10:59:55 + */ + +-#ifdef _MSC_VER +-#pragma execution_character_set("utf-8") +-#endif +- + #include "language.h" + #include "access.h" + #include "message.h" +diff --git a/src/language_es_mx.h b/src/language_es_mx.h +index 5574b3b..530c9f1 100644 +--- a/src/language_es_mx.h ++++ b/src/language_es_mx.h +@@ -31,10 +31,6 @@ + * PO_REVISION_DATE=2016-03-24 10:59:55 + */ + +-#ifdef _MSC_VER +-#pragma execution_character_set("utf-8") +-#endif +- + #include "language.h" + #include "access.h" + #include "message.h" +diff --git a/src/language_fr.h b/src/language_fr.h +index c87ae7b..91baa5e 100644 +--- a/src/language_fr.h ++++ b/src/language_fr.h +@@ -31,10 +31,6 @@ + * PO_REVISION_DATE= + */ + +-#ifdef _MSC_VER +-#pragma execution_character_set("utf-8") +-#endif +- + #include "language.h" + #include "access.h" + #include "message.h" +diff --git a/src/language_zh_cn.h b/src/language_zh_cn.h +index 1c35fef..218203d 100644 +--- a/src/language_zh_cn.h ++++ b/src/language_zh_cn.h +@@ -31,10 +31,6 @@ + * PO_REVISION_DATE=2016-03-24 10:59:55 + */ + +-#ifdef _MSC_VER +-#pragma execution_character_set("utf-8") +-#endif +- + #include "language.h" + #include "access.h" + #include "message.h" diff --git a/ports/unittest-cpp/CONTROL b/ports/unittest-cpp/CONTROL new file mode 100644 index 000000000..e24b8b774 --- /dev/null +++ b/ports/unittest-cpp/CONTROL @@ -0,0 +1,3 @@ +Source: unittest-cpp
+Version: 2.0.0
+Description: A lightweight unit testing framework for C++
diff --git a/ports/unittest-cpp/portfile.cmake b/ports/unittest-cpp/portfile.cmake new file mode 100644 index 000000000..2a31852a9 --- /dev/null +++ b/ports/unittest-cpp/portfile.cmake @@ -0,0 +1,29 @@ +if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ message(STATUS "Warning: Dynamic building not supported by unittest-cpp yet. Building static.")
+ set(VCPKG_LIBRARY_LINKAGE static)
+endif()
+
+include(vcpkg_common_functions)
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO unittest-cpp/unittest-cpp
+ REF v2.0.0
+ SHA512 39318f4ed31534c116679a3257bf1438a6c4b3bef1894dfd40aea934950c6c8197af6a7f61539b8e9ddc67327c9388d7e8a6f8a3e0e966ad26c07554e2429cab
+ HEAD_REF master
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/UnitTest++)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/unittest-cpp ${CURRENT_PACKAGES_DIR}/share/unittest++)
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/unittest-cpp RENAME copyright)
+
+# Remove duplicate includes
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
diff --git a/ports/uwebsockets/CONTROL b/ports/uwebsockets/CONTROL index 3e202f42b..13aa16cc5 100644 --- a/ports/uwebsockets/CONTROL +++ b/ports/uwebsockets/CONTROL @@ -1,4 +1,4 @@ Source: uwebsockets Version: 0.14.4-1 -Build-Depends: libuv, openssl, zlib, boost +Build-Depends: libuv, openssl, zlib Description: Highly scalable cross-platform WebSocket & HTTP library for C++11 and Node.js diff --git a/ports/vlpp/CMakeLists.txt b/ports/vlpp/CMakeLists.txt new file mode 100644 index 000000000..238600f6e --- /dev/null +++ b/ports/vlpp/CMakeLists.txt @@ -0,0 +1,37 @@ +cmake_minimum_required(VERSION 3.3.0) + +project(Vlpp VERSION 0.9.3.1 LANGUAGES CXX) + +# Sources +set(SRCS + Import/Vlpp.cpp + Import/VlppWorkflow.cpp + Import/VlppWorkflowCompiler.cpp) +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj") + +# Create and configure the target +add_library(Vlpp ${SRCS}) + +# target_compile_definitions +target_compile_definitions(Vlpp PRIVATE UNICODE) +target_compile_definitions(Vlpp PRIVATE _UNICODE) + +target_include_directories(Vlpp PRIVATE ${PROJECT_SOURCE_DIR}/Import) + +# Install +install( + TARGETS Vlpp + RUNTIME DESTINATION "bin" + LIBRARY DESTINATION "lib" + ARCHIVE DESTINATION "lib" + ) + +if (NOT DEFINED SKIP_HEADERS) + install( + FILES + Import/Vlpp.h + Import/VlppWorkflow.h + Import/VlppWorkflowCompiler.h + DESTINATION "include" + ) +endif() diff --git a/ports/vlpp/CONTROL b/ports/vlpp/CONTROL new file mode 100644 index 000000000..aa8381cae --- /dev/null +++ b/ports/vlpp/CONTROL @@ -0,0 +1,3 @@ +Source: vlpp
+Version: 0.9.3.1
+Description: Common C++ construction, including string operation / generic container / linq / General-LR parser generator / multithreading / reflection for C++ / etc
diff --git a/ports/vlpp/portfile.cmake b/ports/vlpp/portfile.cmake new file mode 100644 index 000000000..1b7ec027a --- /dev/null +++ b/ports/vlpp/portfile.cmake @@ -0,0 +1,31 @@ +if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ message(STATUS "Warning: Dynamic building not supported yet. Building static.")
+ set(VCPKG_LIBRARY_LINKAGE static)
+endif()
+
+include(vcpkg_common_functions)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/Release-0.9.3.1)
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://github.com/vczh-libraries/Release/archive/0.9.3.1.tar.gz"
+ FILENAME "GacUI-0.9.3.1.tar.gz"
+ SHA512 f284d3c78f8ae54102457b2cdc4fcee4b8da9a72d13bb325c7c7269261c5b0789eeb7340b0409b2b37294d68edb558503be131948aea3cb53582900339d26b54
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS_DEBUG -DSKIP_HEADERS=1
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGE_DIR}/debug/include)
+
+# Tools
+file(INSTALL ${SOURCE_PATH}/Tools/CppMerge.exe DESTINATION ${CURRENT_PACKAGES_DIR}/tools)
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/vlpp RENAME copyright)
diff --git a/ports/vtk/CONTROL b/ports/vtk/CONTROL index 22d1b1376..3919619ef 100644 --- a/ports/vtk/CONTROL +++ b/ports/vtk/CONTROL @@ -1,4 +1,24 @@ Source: vtk -Version: 8.0.0-3 +Version: 8.0.1-5 Description: Software system for 3D computer graphics, image processing, and visualization -Build-Depends: zlib, libpng, tiff, libxml2, jsoncpp, glew, freetype, expat, hdf5, qt5, msmpi, libjpeg-turbo, proj4, lz4, libtheora, libharu +Build-Depends: zlib, libpng, tiff, libxml2, jsoncpp, glew, freetype, expat, hdf5, libjpeg-turbo, proj4, lz4, libtheora + +Feature: openvr +Description: OpenVR functionality for VTK +Build-Depends: sdl2, openvr + +Feature: qt +Description: Qt functionality for VTK +Build-Depends: qt5 + +Feature: mpi +Description: MPI functionality for VTK +Build-Depends: msmpi + +Feature: python +Description: Python functionality for VTK +Build-Depends: python3 + +Feature: libharu +Description: PDF libharu functionality for VTK +Build-Depends: libharu diff --git a/ports/vtk/FindHDF5.cmake b/ports/vtk/FindHDF5.cmake new file mode 100644 index 000000000..4a8c4a166 --- /dev/null +++ b/ports/vtk/FindHDF5.cmake @@ -0,0 +1,27 @@ +find_package(HDF5 NO_MODULE REQUIRED)
+
+set(HDF5_INCLUDE_DIRS ${HDF5_INCLUDE_DIR})
+
+add_library(vtk::hdf5::hdf5 INTERFACE IMPORTED GLOBAL)
+if(TARGET hdf5-static)
+ set_target_properties(vtk::hdf5::hdf5 PROPERTIES INTERFACE_LINK_LIBRARIES "hdf5-static")
+elseif(TARGET hdf5-shared)
+ set_target_properties(vtk::hdf5::hdf5 PROPERTIES INTERFACE_LINK_LIBRARIES "hdf5-shared")
+else()
+ message(FATAL_ERROR "could not find target hdf5-*")
+endif()
+
+add_library(vtk::hdf5::hdf5_hl INTERFACE IMPORTED GLOBAL)
+if(TARGET hdf5_hl-static)
+ set_target_properties(vtk::hdf5::hdf5_hl PROPERTIES INTERFACE_LINK_LIBRARIES "hdf5_hl-static")
+elseif(TARGET hdf5_hl-shared)
+ set_target_properties(vtk::hdf5::hdf5_hl PROPERTIES INTERFACE_LINK_LIBRARIES "hdf5_hl-shared")
+else()
+ message(FATAL_ERROR "could not find target hdf5_hl-*")
+endif()
+
+set(HDF5_LIBRARIES "$<BUILD_INTERFACE:vtk::hdf5::hdf5>" "$<BUILD_INTERFACE:vtk::hdf5::hdf5_hl>")
+
+find_package_handle_standard_args(HDF5
+ REQUIRED_VARS HDF5_INCLUDE_DIRS HDF5_LIBRARIES
+)
diff --git a/ports/vtk/portfile.cmake b/ports/vtk/portfile.cmake index c5ea4c387..f46b47cbf 100644 --- a/ports/vtk/portfile.cmake +++ b/ports/vtk/portfile.cmake @@ -1,24 +1,51 @@ include(vcpkg_common_functions) set(VTK_SHORT_VERSION "8.0") -set(VTK_LONG_VERSION "${VTK_SHORT_VERSION}.0") +set(VTK_LONG_VERSION "${VTK_SHORT_VERSION}.1") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO "Kitware/VTK" REF "v${VTK_LONG_VERSION}" - SHA512 1a328f24df0b1c40c623ae80c9d49f8b27570144b10af02aeed41b90b50b8d4e0dd83d1341961f6818cde36e2cd793c578ebc95a46950cebfc518f486f249791 + SHA512 3a70fa704d791d21a1e2421e6799ccc8238da5bc1fc0ab1925fb7956ccaebb7748c452faba1e7f4a2eafbc8612ed644f46f84b0cb3fe16ce539a823165feb29f HEAD_REF "master" ) # ============================================================================= # Options: These should be set by feature-packages when they become available -set(VTK_WITH_QT ON ) # IMPORTANT: if ON make sure `qt5` is listed as dependency in the CONTROL file -set(VTK_WITH_MPI ON ) # IMPORTANT: if ON make sure `mpi` is listed as dependency in the CONTROL file -set(VTK_WITH_PYTHON OFF) # IMPORTANT: if ON make sure `python3` is listed as dependency in the CONTROL file + +if ("qt" IN_LIST FEATURES) + set(VTK_WITH_QT ON ) # IMPORTANT: if ON make sure `qt5` is listed as dependency in the CONTROL file +else() + set(VTK_WITH_QT OFF ) # IMPORTANT: if ON make sure `qt5` is listed as dependency in the CONTROL file +endif() + +if ("mpi" IN_LIST FEATURES) + set(VTK_WITH_MPI ON ) # IMPORTANT: if ON make sure `mpi` is listed as dependency in the CONTROL file +else() + set(VTK_WITH_MPI OFF ) # IMPORTANT: if ON make sure `mpi` is listed as dependency in the CONTROL file +endif() + +if ("python" IN_LIST FEATURES) + set(VTK_WITH_PYTHON ON) # IMPORTANT: if ON make sure `python3` is listed as dependency in the CONTROL file +else() + set(VTK_WITH_PYTHON OFF) # IMPORTANT: if ON make sure `python3` is listed as dependency in the CONTROL file +endif() + +if("openvr" IN_LIST FEATURES) + set(VTK_WITH_OPENVR ON) # IMPORTANT: if ON make sure `OpenVR` is listed as dependency in the CONTROL file +else() + set(VTK_WITH_OPENVR OFF) +endif() + +if("libharu" IN_LIST FEATURES) + set(VTK_WITH_LIBHARU ON) +else() + set(VTK_WITH_LIBHARU OFF) +endif() + set(VTK_WITH_ALL_MODULES OFF) # IMPORTANT: if ON make sure `qt5`, `mpi`, `python3`, `ffmpeg`, `gdal`, `fontconfig`, # `libmysql` and `atlmfc` are listed as dependency in the CONTROL file - # ============================================================================= # Apply patches to the source code vcpkg_apply_patches( @@ -54,6 +81,7 @@ vcpkg_apply_patches( file(REMOVE ${SOURCE_PATH}/CMake/FindGLEW.cmake) file(REMOVE ${SOURCE_PATH}/CMake/FindPythonLibs.cmake) file(COPY ${CMAKE_CURRENT_LIST_DIR}/FindGDAL.cmake DESTINATION ${SOURCE_PATH}/CMake) +file(COPY ${CMAKE_CURRENT_LIST_DIR}/FindHDF5.cmake DESTINATION ${SOURCE_PATH}/CMake/NewCMake) # ============================================================================= # Collect CMake options for optional components @@ -78,6 +106,18 @@ if(VTK_WITH_PYTHON) ) endif() +if(VTK_WITH_OPENVR) + list(APPEND ADDITIONAL_OPTIONS + -DModule_vtkRenderingOpenVR=ON + ) +endif() + +if(VTK_WITH_LIBHARU) + list(APPEND ADDITIONAL_OPTIONS + -DVTK_USE_SYSTEM_LIBHARU=ON + ) +endif() + if(VTK_WITH_ALL_MODULES) list(APPEND ADDITIONAL_OPTIONS -DVTK_BUILD_ALL_MODULES=ON @@ -95,10 +135,6 @@ if(VTK_WITH_ALL_MODULES) ) endif() -if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) - list(APPEND ADDITIONAL_OPTIONS "-DVTK_EXTERNAL_HDF5_IS_SHARED=ON") -endif() - # ============================================================================= # Configure & Install vcpkg_configure_cmake( @@ -112,7 +148,6 @@ vcpkg_configure_cmake( -DVTK_USE_SYSTEM_EXPAT=ON -DVTK_USE_SYSTEM_FREETYPE=ON # -DVTK_USE_SYSTEM_GL2PS=ON - -DVTK_USE_SYSTEM_LIBHARU=ON -DVTK_USE_SYSTEM_JPEG=ON -DVTK_USE_SYSTEM_GLEW=ON -DVTK_USE_SYSTEM_HDF5=ON @@ -132,12 +167,6 @@ vcpkg_configure_cmake( -DVTK_INSTALL_PACKAGE_DIR=share/vtk -DVTK_FORBID_DOWNLOADS=ON ${ADDITIONAL_OPTIONS} - OPTIONS_RELEASE - -DHDF5_C_LIBRARY=${CURRENT_INSTALLED_DIR}/lib/hdf5.lib - -DHDF5_C_HL_LIBRARY=${CURRENT_INSTALLED_DIR}/lib/hdf5_hl.lib - OPTIONS_DEBUG - -DHDF5_C_LIBRARY=${CURRENT_INSTALLED_DIR}/debug/lib/hdf5_D.lib - -DHDF5_C_HL_LIBRARY=${CURRENT_INSTALLED_DIR}/debug/lib/hdf5_hl_D.lib ) vcpkg_install_cmake() @@ -291,6 +320,11 @@ set(VTK_TOOLS pvtkpython ) +file(READ "${CURRENT_PACKAGES_DIR}/share/vtk/Modules/vtkhdf5.cmake" _contents) +string(REPLACE "vtk::hdf5::hdf5_hl" "" _contents "${_contents}") +string(REPLACE "vtk::hdf5::hdf5" "" _contents "${_contents}") +file(WRITE "${CURRENT_PACKAGES_DIR}/share/vtk/Modules/vtkhdf5.cmake" "${_contents}") + foreach(TOOL_NAME IN LISTS VTK_TOOLS) _vtk_move_tool("${TOOL_NAME}") endforeach() diff --git a/ports/wincrypt/CONTROL b/ports/wincrypt/CONTROL index 78803229c..c83865407 100644 --- a/ports/wincrypt/CONTROL +++ b/ports/wincrypt/CONTROL @@ -1,3 +1,3 @@ Source: wincrypt -Version: 0.0 +Version: 0.0-1 Description: Windows Cryptography.
\ No newline at end of file diff --git a/ports/wincrypt/portfile.cmake b/ports/wincrypt/portfile.cmake index 8ded1cdc4..6ce62cfee 100644 --- a/ports/wincrypt/portfile.cmake +++ b/ports/wincrypt/portfile.cmake @@ -18,17 +18,6 @@ if (NOT EXISTS "${LIBFILEPATH}") message(FATAL_ERROR "Cannot find Windows ${WINDOWS_SDK} SDK. File does not exist: ${LIBFILEPATH}") endif() -file(MAKE_DIRECTORY - ${CURRENT_PACKAGES_DIR}/include - ${CURRENT_PACKAGES_DIR}/lib - ${CURRENT_PACKAGES_DIR}/debug/lib - ${CURRENT_PACKAGES_DIR}/share/wincrypt -) - -file(COPY - "${HEADERSPATH}\\Wincrypt.h" - DESTINATION ${CURRENT_PACKAGES_DIR}/include - ) file(COPY ${LIBFILEPATH} DESTINATION ${CURRENT_PACKAGES_DIR}/lib) file(COPY ${LIBFILEPATH} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) @@ -37,4 +26,7 @@ if (DEFINED LICENSEPATH) file(WRITE ${CURRENT_PACKAGES_DIR}/share/wincrypt/copyright "See the accompanying sdk_license.rtf") else() file(WRITE ${CURRENT_PACKAGES_DIR}/share/wincrypt/copyright "See https://developer.microsoft.com/en-us/windows/downloads/windows-8-1-sdk for the Windows 8.1 SDK license") -endif()
\ No newline at end of file +endif() + +# Allow empty include directory +set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled)
\ No newline at end of file diff --git a/ports/winsock2/CONTROL b/ports/winsock2/CONTROL index 4b56e50bf..298fd7ebd 100644 --- a/ports/winsock2/CONTROL +++ b/ports/winsock2/CONTROL @@ -1,3 +1,3 @@ Source: winsock2 -Version: 0.0 +Version: 0.0-1 Description: Windows Sockets.
\ No newline at end of file diff --git a/ports/winsock2/portfile.cmake b/ports/winsock2/portfile.cmake index 81fd38992..0f55c1227 100644 --- a/ports/winsock2/portfile.cmake +++ b/ports/winsock2/portfile.cmake @@ -18,17 +18,6 @@ if (NOT EXISTS "${LIBFILEPATH}") message(FATAL_ERROR "Cannot find Windows ${WINDOWS_SDK} SDK. File does not exist: ${LIBFILEPATH}") endif() -file(MAKE_DIRECTORY - ${CURRENT_PACKAGES_DIR}/include - ${CURRENT_PACKAGES_DIR}/lib - ${CURRENT_PACKAGES_DIR}/debug/lib - ${CURRENT_PACKAGES_DIR}/share/winsock2 -) - -file(COPY - "${HEADERSPATH}\\Winsock2.h" - DESTINATION ${CURRENT_PACKAGES_DIR}/include - ) file(COPY ${LIBFILEPATH} DESTINATION ${CURRENT_PACKAGES_DIR}/lib) file(COPY ${LIBFILEPATH} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) @@ -37,4 +26,7 @@ if (DEFINED LICENSEPATH) file(WRITE ${CURRENT_PACKAGES_DIR}/share/winsock2/copyright "See the accompanying sdk_license.rtf") else() file(WRITE ${CURRENT_PACKAGES_DIR}/share/winsock2/copyright "See https://developer.microsoft.com/en-us/windows/downloads/windows-8-1-sdk for the Windows 8.1 SDK license") -endif()
\ No newline at end of file +endif() + +# Allow empty include directory +set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled)
\ No newline at end of file diff --git a/ports/xlnt/CONTROL b/ports/xlnt/CONTROL index 907b66b16..25b4ce010 100644 --- a/ports/xlnt/CONTROL +++ b/ports/xlnt/CONTROL @@ -1,3 +1,3 @@ Source: xlnt
-Version: 1.1.0-1
+Version: 1.2.0-1
Description: Cross-platform user-friendly xlsx library for C++14
diff --git a/ports/xlnt/portfile.cmake b/ports/xlnt/portfile.cmake index e514cf8eb..f0cb9425d 100644 --- a/ports/xlnt/portfile.cmake +++ b/ports/xlnt/portfile.cmake @@ -1,7 +1,7 @@ include(vcpkg_common_functions)
-set(XLNT_VERSION 1.1.0)
-set(XLNT_HASH f0c59a2b241c6b219fbd8bb39705847e2b31332e413bc4aff7e0a8d4d4b9ef6750c03ecc49a196f647fdf60c3bec9f06c800bdb53b56648d2ba9fab359623f95)
+set(XLNT_VERSION 1.2.0)
+set(XLNT_HASH 359ff1e99531513d7b1228ff07f137531be99d7a95bbc5b399168a6c609f56dba2e030464f8203db92db137ab80dbe10f71de71a62b0bcb96eaafc0f09256339)
set(XLNT_SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/xlnt-${XLNT_VERSION})
vcpkg_download_distfile(ARCHIVE
@@ -26,6 +26,8 @@ vcpkg_configure_cmake( vcpkg_install_cmake()
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share/man)
file(INSTALL ${XLNT_SOURCE_PATH}/LICENSE.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/xlnt RENAME copyright)
vcpkg_copy_pdbs()
diff --git a/ports/zlib/portfile.cmake b/ports/zlib/portfile.cmake index c41d61bda..963b86d24 100644 --- a/ports/zlib/portfile.cmake +++ b/ports/zlib/portfile.cmake @@ -27,10 +27,14 @@ vcpkg_install_cmake() # Both dynamic and static are built, so keep only the one needed if(VCPKG_LIBRARY_LINKAGE STREQUAL static) - file(RENAME ${CURRENT_PACKAGES_DIR}/lib/zlibstatic.lib ${CURRENT_PACKAGES_DIR}/lib/zlib.lib) - file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/zlibstaticd.lib ${CURRENT_PACKAGES_DIR}/debug/lib/zlibd.lib) + if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/zlibstatic.lib) + file(RENAME ${CURRENT_PACKAGES_DIR}/lib/zlibstatic.lib ${CURRENT_PACKAGES_DIR}/lib/zlib.lib) + file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/zlibstaticd.lib ${CURRENT_PACKAGES_DIR}/debug/lib/zlibd.lib) + endif() endif() file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/zlib RENAME copyright) -vcpkg_copy_pdbs()
\ No newline at end of file +vcpkg_copy_pdbs() + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) diff --git a/ports/zlib/usage b/ports/zlib/usage new file mode 100644 index 000000000..39d861822 --- /dev/null +++ b/ports/zlib/usage @@ -0,0 +1,4 @@ +The package zlib is compatible with built-in CMake targets:
+
+ find_package(ZLIB REQUIRED)
+ target_link_libraries(main PRIVATE ZLIB::ZLIB)
diff --git a/scripts/SHA256Hash.ps1 b/scripts/SHA256Hash.ps1 new file mode 100644 index 000000000..348d461b7 --- /dev/null +++ b/scripts/SHA256Hash.ps1 @@ -0,0 +1,9 @@ +[CmdletBinding()]
+Param(
+ [Parameter(Mandatory=$True)]
+ [String]$Value
+)
+
+$sha256 = New-Object -TypeName System.Security.Cryptography.SHA256CryptoServiceProvider
+$utf8 = New-Object -TypeName System.Text.UTF8Encoding
+[System.BitConverter]::ToString($sha256.ComputeHash($utf8.GetBytes($Value)))
diff --git a/scripts/VcpkgPowershellUtils.ps1 b/scripts/VcpkgPowershellUtils.ps1 new file mode 100644 index 000000000..28e818437 --- /dev/null +++ b/scripts/VcpkgPowershellUtils.ps1 @@ -0,0 +1,214 @@ +function vcpkgHasModule([Parameter(Mandatory=$true)][string]$moduleName) +{ + return [bool](Get-Module -ListAvailable -Name $moduleName) +} + +function vcpkgCreateDirectoryIfNotExists([Parameter(Mandatory=$true)][string]$dirPath) +{ + if (!(Test-Path $dirPath)) + { + New-Item -ItemType Directory -Path $dirPath | Out-Null + } +} + +function vcpkgCreateParentDirectoryIfNotExists([Parameter(Mandatory=$true)][string]$path) +{ + $parentDir = split-path -parent $path + if ([string]::IsNullOrEmpty($parentDir)) + { + return + } + + if (!(Test-Path $parentDir)) + { + New-Item -ItemType Directory -Path $parentDir | Out-Null + } +} + +function vcpkgRemoveDirectory([Parameter(Mandatory=$true)][string]$dirPath) +{ + if (Test-Path $dirPath) + { + Remove-Item $dirPath -Recurse -Force + } +} + +function vcpkgRemoveFile([Parameter(Mandatory=$true)][string]$filePath) +{ + if (Test-Path $filePath) + { + Remove-Item $filePath -Force + } +} + +function vcpkgHasCommand([Parameter(Mandatory=$true)][string]$commandName) +{ + return [bool](Get-Command -Name $commandName -ErrorAction SilentlyContinue) +} + +function vcpkgHasCommandParameter([Parameter(Mandatory=$true)][string]$commandName, [Parameter(Mandatory=$true)][string]$parameterName) +{ + return (Get-Command $commandName).Parameters.Keys -contains $parameterName +} + +function vcpkgGetCredentials() +{ + if (vcpkgHasCommandParameter -commandName 'Get-Credential' -parameterName 'Message') + { + return Get-Credential -Message "Enter credentials for Proxy Authentication" + } + else + { + Write-Host "Enter credentials for Proxy Authentication" + return Get-Credential + } +} + +function vcpkgGetSHA256([Parameter(Mandatory=$true)][string]$filePath) +{ + if (vcpkgHasCommand -commandName 'Microsoft.PowerShell.Utility\Get-FileHash') + { + Write-Verbose("Hashing with Microsoft.PowerShell.Utility\Get-FileHash") + $hash = (Microsoft.PowerShell.Utility\Get-FileHash -Path $filePath -Algorithm SHA256).Hash + } + elseif(vcpkgHasCommand -commandName 'Pscx\Get-Hash') + { + Write-Verbose("Hashing with Pscx\Get-Hash") + $hash = (Pscx\Get-Hash -Path $filePath -Algorithm SHA256).HashString + } + else + { + Write-Verbose("Hashing with .NET") + $hashAlgorithm = [Security.Cryptography.HashAlgorithm]::Create("SHA256") + $fileAsByteArray = [io.File]::ReadAllBytes($filePath) + $hashByteArray = $hashAlgorithm.ComputeHash($fileAsByteArray) + $hash = -Join ($hashByteArray | ForEach-Object {"{0:x2}" -f $_}) + } + + return $hash.ToLower() +} + +function vcpkgCheckEqualFileHash( [Parameter(Mandatory=$true)][string]$filePath, + [Parameter(Mandatory=$true)][string]$expectedHash, + [Parameter(Mandatory=$true)][string]$actualHash ) +{ + if ($expectedDownloadedFileHash -ne $downloadedFileHash) + { + Write-Host ("`nFile does not have expected hash:`n" + + " File path: [ $filePath ]`n" + + " Expected hash: [ $expectedHash ]`n" + + " Actual hash: [ $actualHash ]`n") + throw "Invalid Hash for file $filePath" + } +} + +if (vcpkgHasModule -moduleName 'BitsTransfer') +{ + Import-Module BitsTransfer -Verbose:$false +} + +function vcpkgDownloadFile( [Parameter(Mandatory=$true)][string]$url, + [Parameter(Mandatory=$true)][string]$downloadPath) +{ + if (Test-Path $downloadPath) + { + return + } + + vcpkgCreateParentDirectoryIfNotExists $downloadPath + + $downloadPartPath = "$downloadPath.part" + vcpkgRemoveFile $downloadPartPath + + $wc = New-Object System.Net.WebClient + $proxyAuth = !$wc.Proxy.IsBypassed($url) + if ($proxyAuth) + { + $wc.Proxy.Credentials = vcpkgGetCredentials + } + + # Some download (e.g. git from github)fail with Start-BitsTransfer + if (vcpkgHasCommand -commandName 'Start-BitsTransfer') + { + try + { + if ($proxyAuth) + { + $PSDefaultParameterValues.Add("Start-BitsTransfer:ProxyAuthentication","Basic") + $PSDefaultParameterValues.Add("Start-BitsTransfer:ProxyCredential", $wc.Proxy.Credentials) + } + Start-BitsTransfer -Source $url -Destination $downloadPartPath -ErrorAction Stop + Move-Item -Path $downloadPartPath -Destination $downloadPath + return + } + catch [System.Exception] + { + # If BITS fails for any reason, delete any potentially partially downloaded files and continue + vcpkgRemoveFile $downloadPartPath + } + } + + Write-Verbose("Downloading $Dependency...") + $wc.DownloadFile($url, $downloadPartPath) + Move-Item -Path $downloadPartPath -Destination $downloadPath +} + +function vcpkgExtractFile( [Parameter(Mandatory=$true)][string]$file, + [Parameter(Mandatory=$true)][string]$destinationDir) +{ + vcpkgCreateParentDirectoryIfNotExists $destinationDir + $destinationPartial = "$destinationDir-partially_extracted" + + vcpkgRemoveDirectory $destinationPartial + vcpkgCreateDirectoryIfNotExists $destinationPartial + + if (vcpkgHasCommand -commandName 'Microsoft.PowerShell.Archive\Expand-Archive') + { + Write-Verbose("Extracting with Microsoft.PowerShell.Archive\Expand-Archive") + Microsoft.PowerShell.Archive\Expand-Archive -path $file -destinationpath $destinationPartial + } + elseif (vcpkgHasCommand -commandName 'Pscx\Expand-Archive') + { + Write-Verbose("Extracting with Pscx\Expand-Archive") + Pscx\Expand-Archive -path $file -OutputPath $destinationPartial + } + else + { + Write-Verbose("Extracting via shell") + $shell = new-object -com shell.application + $zip = $shell.NameSpace($file) + foreach($item in $zip.items()) + { + # Piping to Out-Null is used to block until finished + $shell.Namespace($destinationPartial).copyhere($item) | Out-Null + } + } + + $hasASingleItem = (Get-ChildItem $destinationPartial | Measure-Object).Count -eq 1; + + if ($hasASingleItem) + { + Move-Item -Path "$destinationPartial\*" -Destination $destinationDir + vcpkgRemoveDirectory $destinationPartial + } + else + { + Move-Item -Path $destinationPartial -Destination $destinationDir + } +} + +function vcpkgInvokeCommand() +{ + param ( [Parameter(Mandatory=$true)][string]$executable, + [string]$arguments = "", + [switch]$wait) + + Write-Verbose "Executing: ${executable} ${arguments}" + $process = Start-Process -FilePath $executable -ArgumentList $arguments -PassThru + if ($wait) + { + Wait-Process -InputObject $process + $ec = $process.ExitCode + Write-Verbose "Execution terminated with exit code $ec." + } +}
\ No newline at end of file diff --git a/scripts/bootstrap.ps1 b/scripts/bootstrap.ps1 index b874afd8c..3f40a2ead 100644 --- a/scripts/bootstrap.ps1 +++ b/scripts/bootstrap.ps1 @@ -1,7 +1,7 @@ [CmdletBinding()] param( - [ValidateNotNullOrEmpty()] - [string]$disableMetrics = "0" + [ValidateNotNullOrEmpty()][string]$disableMetrics = "0", + [Parameter(Mandatory=$False)][string]$withVSPath = "" ) $scriptsDir = split-path -parent $MyInvocation.MyCommand.Definition @@ -13,7 +13,7 @@ $gitHash = "unknownhash" $oldpath = $env:path try { - $env:path += ";$vcpkgRootDir\downloads\MinGit-2.14.1-32-bit\cmd" + $env:path += ";$vcpkgRootDir\downloads\MinGit-2.15.0-32-bit\cmd" if (Get-Command "git" -ErrorAction SilentlyContinue) { $gitHash = git log HEAD -n 1 --format="%cd-%H" --date=short @@ -32,17 +32,23 @@ $vcpkgSourcesPath = "$vcpkgRootDir\toolsrc" if (!(Test-Path $vcpkgSourcesPath)) { - New-Item -ItemType directory -Path $vcpkgSourcesPath -force | Out-Null + Write-Error "Unable to determine vcpkg sources directory. '$vcpkgSourcesPath' does not exist." + return } try { - pushd $vcpkgSourcesPath - $msbuildExeWithPlatformToolset = & $scriptsDir\findAnyMSBuildWithCppPlatformToolset.ps1 + Push-Location $vcpkgSourcesPath + $msbuildExeWithPlatformToolset = & $scriptsDir\findAnyMSBuildWithCppPlatformToolset.ps1 $withVSPath $msbuildExe = $msbuildExeWithPlatformToolset[0] $platformToolset = $msbuildExeWithPlatformToolset[1] $windowsSDK = & $scriptsDir\getWindowsSDK.ps1 & $msbuildExe "/p:VCPKG_VERSION=-$gitHash" "/p:DISABLE_METRICS=$disableMetrics" /p:Configuration=Release /p:Platform=x86 /p:PlatformToolset=$platformToolset /p:TargetPlatformVersion=$windowsSDK /m dirs.proj + if ($LASTEXITCODE -ne 0) + { + Write-Error "Building vcpkg.exe failed. Please ensure you have installed Visual Studio with the Desktop C++ workload and the Windows SDK for Desktop C++." + return + } Write-Verbose("Placing vcpkg.exe in the correct location") @@ -51,5 +57,5 @@ try } finally { - popd + Pop-Location } diff --git a/scripts/buildsystems/msbuild/vcpkg.targets b/scripts/buildsystems/msbuild/vcpkg.targets index 1cb338237..ad1dde89b 100644 --- a/scripts/buildsystems/msbuild/vcpkg.targets +++ b/scripts/buildsystems/msbuild/vcpkg.targets @@ -36,15 +36,17 @@ <PropertyGroup Condition="'$(VcpkgEnabled)' == 'true'"> <VcpkgConfiguration Condition="'$(VcpkgConfiguration)' == ''">$(Configuration)</VcpkgConfiguration> + <VcpkgNormalizedConfiguration Condition="$(VcpkgConfiguration.StartsWith('Debug'))">Debug</VcpkgNormalizedConfiguration> + <VcpkgNormalizedConfiguration Condition="$(VcpkgConfiguration.StartsWith('Release')) or '$(VcpkgConfiguration)' == 'RelWithDebInfo' or '$(VcpkgConfiguration)' == 'MinSizeRel'">Release</VcpkgNormalizedConfiguration> <VcpkgRoot Condition="'$(VcpkgRoot)' == ''">$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), .vcpkg-root))\installed\$(VcpkgTriplet)\</VcpkgRoot> </PropertyGroup> <ItemDefinitionGroup Condition="'$(VcpkgEnabled)' == 'true'"> <Link> - <AdditionalDependencies Condition="$(VcpkgConfiguration.StartsWith('Debug')) and '$(VcpkgAutoLink)' != 'false'">%(AdditionalDependencies);$(VcpkgRoot)debug\lib\*.lib</AdditionalDependencies> - <AdditionalDependencies Condition="$(VcpkgConfiguration.StartsWith('Release')) and '$(VcpkgAutoLink)' != 'false'">%(AdditionalDependencies);$(VcpkgRoot)lib\*.lib</AdditionalDependencies> - <AdditionalLibraryDirectories Condition="$(VcpkgConfiguration.StartsWith('Release'))">%(AdditionalLibraryDirectories);$(VcpkgRoot)lib;$(VcpkgRoot)lib\manual-link</AdditionalLibraryDirectories> - <AdditionalLibraryDirectories Condition="$(VcpkgConfiguration.StartsWith('Debug'))">%(AdditionalLibraryDirectories);$(VcpkgRoot)debug\lib;$(VcpkgRoot)debug\lib\manual-link</AdditionalLibraryDirectories> + <AdditionalDependencies Condition="'$(VcpkgNormalizedConfiguration)' == 'Debug' and '$(VcpkgAutoLink)' != 'false'">%(AdditionalDependencies);$(VcpkgRoot)debug\lib\*.lib</AdditionalDependencies> + <AdditionalDependencies Condition="'$(VcpkgNormalizedConfiguration)' == 'Release' and '$(VcpkgAutoLink)' != 'false'">%(AdditionalDependencies);$(VcpkgRoot)lib\*.lib</AdditionalDependencies> + <AdditionalLibraryDirectories Condition="'$(VcpkgNormalizedConfiguration)' == 'Release'">%(AdditionalLibraryDirectories);$(VcpkgRoot)lib;$(VcpkgRoot)lib\manual-link</AdditionalLibraryDirectories> + <AdditionalLibraryDirectories Condition="'$(VcpkgNormalizedConfiguration)' == 'Debug'">%(AdditionalLibraryDirectories);$(VcpkgRoot)debug\lib;$(VcpkgRoot)debug\lib\manual-link</AdditionalLibraryDirectories> </Link> <ClCompile> <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(VcpkgRoot)include</AdditionalIncludeDirectories> @@ -57,6 +59,7 @@ <Target Name="VcpkgTripletSelection" BeforeTargets="ClCompile"> <Message Text="Using triplet "$(VcpkgTriplet)" from "$(VcpkgRoot)"" Importance="Normal" Condition="'$(VcpkgEnabled)' == 'true'"/> <Message Text="Not using Vcpkg because VcpkgEnabled is "$(VcpkgEnabled)"" Importance="Normal" Condition="'$(VcpkgEnabled)' != 'true'"/> + <Message Text="Vcpkg is unable to link because we cannot decide between Release and Debug libraries. Please define the property VcpkgConfiguration to be 'Release' or 'Debug' (currently '$(VcpkgConfiguration)')." Importance="High" Condition="'$(VcpkgEnabled)' == 'true' and '$(VcpkgNormalizedConfiguration)' == ''"/> </Target> <Target Name="AppLocalFromInstalled" AfterTargets="CopyFilesToOutputDirectory" BeforeTargets="CopyLocalFilesOutputGroup;RegisterOutput" Condition="'$(VcpkgEnabled)' == 'true'"> diff --git a/scripts/buildsystems/vcpkg.cmake b/scripts/buildsystems/vcpkg.cmake index 19fc99af7..24f6d855e 100644 --- a/scripts/buildsystems/vcpkg.cmake +++ b/scripts/buildsystems/vcpkg.cmake @@ -1,6 +1,11 @@ # Mark variables as used so cmake doesn't complain about them mark_as_advanced(CMAKE_TOOLCHAIN_FILE) +get_property( _CMAKE_IN_TRY_COMPILE GLOBAL PROPERTY IN_TRY_COMPILE ) +if( _CMAKE_IN_TRY_COMPILE ) + include( "${CMAKE_CURRENT_SOURCE_DIR}/../vcpkg.config.cmake" OPTIONAL ) +endif() + if(VCPKG_CHAINLOAD_TOOLCHAIN_FILE) include("${VCPKG_CHAINLOAD_TOOLCHAIN_FILE}") endif() @@ -9,11 +14,6 @@ if(VCPKG_TOOLCHAIN) return() endif() -get_property( _CMAKE_IN_TRY_COMPILE GLOBAL PROPERTY IN_TRY_COMPILE ) -if( _CMAKE_IN_TRY_COMPILE ) - include( "${CMAKE_CURRENT_SOURCE_DIR}/../vcpkg.config.cmake" OPTIONAL ) -endif() - if(VCPKG_TARGET_TRIPLET) elseif(CMAKE_GENERATOR_PLATFORM MATCHES "^[Ww][Ii][Nn]32$") set(_VCPKG_TARGET_TRIPLET_ARCH x86) @@ -42,6 +42,8 @@ else() set(_VCPKG_TARGET_TRIPLET_ARCH arm) elseif(_VCPKG_CL MATCHES "bin/cl.exe$" OR _VCPKG_CL MATCHES "x86/cl.exe$") set(_VCPKG_TARGET_TRIPLET_ARCH x86) + elseif(CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "x86_64") + set(_VCPKG_TARGET_TRIPLET_ARCH x64) else() message(FATAL_ERROR "Unable to determine target architecture.") endif() @@ -50,7 +52,9 @@ endif() if(CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" OR CMAKE_SYSTEM_NAME STREQUAL "WindowsPhone") set(_VCPKG_TARGET_TRIPLET_PLAT uwp) -else() +elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "Linux") + set(_VCPKG_TARGET_TRIPLET_PLAT linux) +elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows") set(_VCPKG_TARGET_TRIPLET_PLAT windows) endif() @@ -77,17 +81,23 @@ if(CMAKE_BUILD_TYPE MATCHES "^Debug$" OR NOT DEFINED CMAKE_BUILD_TYPE) list(APPEND CMAKE_LIBRARY_PATH ${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib/manual-link ) + list(APPEND CMAKE_FIND_ROOT_PATH + ${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug + ) endif() list(APPEND CMAKE_PREFIX_PATH ${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET} ) +list(APPEND CMAKE_FIND_ROOT_PATH + ${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET} +) list(APPEND CMAKE_LIBRARY_PATH ${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib/manual-link ) set(Boost_COMPILER "-vc140") -if (NOT DEFINED CMAKE_SYSTEM_VERSION) +if (NOT DEFINED CMAKE_SYSTEM_VERSION AND _VCPKG_TARGET_TRIPLET_PLAT MATCHES "windows|uwp") include(${_VCPKG_ROOT_DIR}/scripts/cmake/vcpkg_get_windows_sdk.cmake) # This is used as an implicit parameter for vcpkg_get_windows_sdk set(VCPKG_ROOT_DIR ${_VCPKG_ROOT_DIR}) @@ -128,7 +138,7 @@ function(add_executable name) list(FIND ARGV "IMPORTED" IMPORTED_IDX) list(FIND ARGV "ALIAS" ALIAS_IDX) if(IMPORTED_IDX EQUAL -1 AND ALIAS_IDX EQUAL -1) - if(VCPKG_APPLOCAL_DEPS) + if(VCPKG_APPLOCAL_DEPS AND _VCPKG_TARGET_TRIPLET_PLAT MATCHES "windows|uwp") add_custom_command(TARGET ${name} POST_BUILD COMMAND powershell -noprofile -executionpolicy Bypass -file ${_VCPKG_TOOLCHAIN_DIR}/msbuild/applocal.ps1 -targetBinary $<TARGET_FILE:${name}> @@ -153,10 +163,34 @@ function(add_library name) endfunction() macro(find_package name) - if(name STREQUAL "Boost") + if("${name}" STREQUAL "Boost") unset(Boost_USE_STATIC_LIBS) + unset(Boost_USE_MULTITHREADED) + unset(Boost_USE_STATIC_RUNTIME) + _find_package(${ARGV}) + elseif("${name}" STREQUAL "ICU") + function(_vcpkg_find_in_list) + list(FIND ARGV "COMPONENTS" COMPONENTS_IDX) + set(COMPONENTS_IDX ${COMPONENTS_IDX} PARENT_SCOPE) + endfunction() + _vcpkg_find_in_list(${ARGV}) + if(NOT COMPONENTS_IDX EQUAL -1) + _find_package(${ARGV} COMPONENTS data) + else() + _find_package(${ARGV}) + endif() + elseif("${name}" STREQUAL "TIFF") + _find_package(${ARGV}) + find_package(LibLZMA) + if(TARGET TIFF::TIFF) + set_property(TARGET TIFF::TIFF APPEND PROPERTY INTERFACE_LINK_LIBRARIES ${LIBLZMA_LIBRARIES}) + endif() + if(TIFF_LIBRARIES) + list(APPEND TIFF_LIBRARIES ${LIBLZMA_LIBRARIES}) + endif() + else() + _find_package(${ARGV}) endif() - _find_package(${ARGV}) endmacro() set(VCPKG_TOOLCHAIN ON) diff --git a/scripts/cmake/vcpkg_acquire_depot_tools.cmake b/scripts/cmake/vcpkg_acquire_depot_tools.cmake deleted file mode 100644 index 009ba40f1..000000000 --- a/scripts/cmake/vcpkg_acquire_depot_tools.cmake +++ /dev/null @@ -1,48 +0,0 @@ -function(vcpkg_acquire_depot_tools PATH_TO_ROOT_OUT) - set(TOOLPATH ${DOWNLOADS}/tools/depot_tools) - set(URL "https://storage.googleapis.com/chrome-infra/depot_tools.zip") - set(ARCHIVE "depot_tools.zip") - set(STAMP "initialized-depot-tools.stamp") - set(downloaded_file_path ${DOWNLOADS}/${ARCHIVE}) - - if(NOT EXISTS "${TOOLPATH}/${STAMP}") - - message(STATUS "Acquiring Depot Tools...") - - if(EXISTS ${downloaded_file_path}) - message(STATUS "Using cached ${downloaded_file_path}") - else() - if(_VCPKG_NO_DOWNLOADS) - message(FATAL_ERROR "Downloads are disabled, but '${downloaded_file_path}' does not exist.") - endif() - file(DOWNLOAD ${URL} ${downloaded_file_path} STATUS download_status) - list(GET download_status 0 status_code) - if (NOT "${status_code}" STREQUAL "0") - message(STATUS "Downloading ${URL}... Failed. Status: ${download_status}") - file(REMOVE ${downloaded_file_path}) - set(download_success 0) - else() - message(STATUS "Downloading ${URL}... OK") - set(download_success 1) - endif() - - if (NOT download_success) - message(FATAL_ERROR - "\n" - " Failed to download file.\n" - " Add mirrors or submit an issue at https://github.com/Microsoft/vcpkg/issues\n") - endif() - endif() - - - file(REMOVE_RECURSE ${TOOLPATH}) - file(MAKE_DIRECTORY ${TOOLPATH}) - execute_process( - COMMAND ${CMAKE_COMMAND} -E tar xzf ${DOWNLOADS}/${ARCHIVE} - WORKING_DIRECTORY ${TOOLPATH} - ) - file(WRITE "${TOOLPATH}/${STAMP}" "0") - message(STATUS "Acquiring Depot Tools... OK") - endif() - set(${PATH_TO_ROOT_OUT} ${TOOLPATH} PARENT_SCOPE) -endfunction() diff --git a/scripts/cmake/vcpkg_acquire_msys.cmake b/scripts/cmake/vcpkg_acquire_msys.cmake index 830022906..80a30bf2b 100644 --- a/scripts/cmake/vcpkg_acquire_msys.cmake +++ b/scripts/cmake/vcpkg_acquire_msys.cmake @@ -70,14 +70,18 @@ function(vcpkg_acquire_msys PATH_TO_ROOT_OUT) set(PATH_TO_ROOT ${TOOLPATH}/${TOOLSUBPATH}) if(NOT EXISTS "${TOOLPATH}/${STAMP}") + message(STATUS "Acquiring MSYS2...") - file(DOWNLOAD ${URL} ${DOWNLOADS}/${ARCHIVE} - EXPECTED_HASH SHA512=${HASH} + vcpkg_download_distfile(ARCHIVE_PATH + URLS ${URL} + FILENAME ${ARCHIVE} + SHA512 ${HASH} ) + file(REMOVE_RECURSE ${TOOLPATH}/${TOOLSUBPATH}) file(MAKE_DIRECTORY ${TOOLPATH}) execute_process( - COMMAND ${CMAKE_COMMAND} -E tar xzf ${DOWNLOADS}/${ARCHIVE} + COMMAND ${CMAKE_COMMAND} -E tar xzf ${ARCHIVE_PATH} WORKING_DIRECTORY ${TOOLPATH} ) execute_process( diff --git a/scripts/cmake/vcpkg_build_cmake.cmake b/scripts/cmake/vcpkg_build_cmake.cmake index 5dc81ec09..0b4bbd211 100644 --- a/scripts/cmake/vcpkg_build_cmake.cmake +++ b/scripts/cmake/vcpkg_build_cmake.cmake @@ -58,19 +58,23 @@ function(vcpkg_build_cmake) set(TARGET_PARAM) endif() - message(STATUS "Build ${TARGET_TRIPLET}-rel") - vcpkg_execute_required_process( - COMMAND ${CMAKE_COMMAND} --build . --config Release ${TARGET_PARAM} -- ${BUILD_ARGS} - WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel - LOGNAME ${_bc_LOGFILE_ROOT}-${TARGET_TRIPLET}-rel - ) - message(STATUS "Build ${TARGET_TRIPLET}-rel done") + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") + message(STATUS "Build ${TARGET_TRIPLET}-rel") + vcpkg_execute_required_process( + COMMAND ${CMAKE_COMMAND} --build . --config Release ${TARGET_PARAM} -- ${BUILD_ARGS} + WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel + LOGNAME ${_bc_LOGFILE_ROOT}-${TARGET_TRIPLET}-rel + ) + message(STATUS "Build ${TARGET_TRIPLET}-rel done") + endif() - message(STATUS "Build ${TARGET_TRIPLET}-dbg") - vcpkg_execute_required_process( - COMMAND ${CMAKE_COMMAND} --build . --config Debug ${TARGET_PARAM} -- ${BUILD_ARGS} - WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg - LOGNAME ${_bc_LOGFILE_ROOT}-${TARGET_TRIPLET}-dbg - ) - message(STATUS "Build ${TARGET_TRIPLET}-dbg done") + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") + message(STATUS "Build ${TARGET_TRIPLET}-dbg") + vcpkg_execute_required_process( + COMMAND ${CMAKE_COMMAND} --build . --config Debug ${TARGET_PARAM} -- ${BUILD_ARGS} + WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg + LOGNAME ${_bc_LOGFILE_ROOT}-${TARGET_TRIPLET}-dbg + ) + message(STATUS "Build ${TARGET_TRIPLET}-dbg done") + endif() endfunction() diff --git a/scripts/cmake/vcpkg_build_msbuild.cmake b/scripts/cmake/vcpkg_build_msbuild.cmake index 1e3c85ba2..b8403d277 100644 --- a/scripts/cmake/vcpkg_build_msbuild.cmake +++ b/scripts/cmake/vcpkg_build_msbuild.cmake @@ -52,8 +52,8 @@ ## ## ## Examples ## -## * [libuv](https://github.com/Microsoft/vcpkg/blob/master/ports/libuv/portfile.cmake) -## * [zeromq](https://github.com/Microsoft/vcpkg/blob/master/ports/zeromq/portfile.cmake) +## * [chakracore](https://github.com/Microsoft/vcpkg/blob/master/ports/chakracore/portfile.cmake) +## * [cppunit](https://github.com/Microsoft/vcpkg/blob/master/ports/cppunit/portfile.cmake) function(vcpkg_build_msbuild) cmake_parse_arguments(_csc "" "PROJECT_PATH;RELEASE_CONFIGURATION;DEBUG_CONFIGURATION;PLATFORM;PLATFORM_TOOLSET;TARGET_PLATFORM_VERSION;TARGET" "OPTIONS;OPTIONS_RELEASE;OPTIONS_DEBUG" ${ARGN}) @@ -87,25 +87,29 @@ function(vcpkg_build_msbuild) /m ) - message(STATUS "Building ${_csc_PROJECT_PATH} for Release") - file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel) - vcpkg_execute_required_process( - COMMAND msbuild ${_csc_PROJECT_PATH} - /p:Configuration=${_csc_RELEASE_CONFIGURATION} - ${_csc_OPTIONS} - ${_csc_OPTIONS_RELEASE} - WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel - LOGNAME build-${TARGET_TRIPLET}-rel - ) + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") + message(STATUS "Building ${_csc_PROJECT_PATH} for Release") + file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel) + vcpkg_execute_required_process( + COMMAND msbuild ${_csc_PROJECT_PATH} + /p:Configuration=${_csc_RELEASE_CONFIGURATION} + ${_csc_OPTIONS} + ${_csc_OPTIONS_RELEASE} + WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel + LOGNAME build-${TARGET_TRIPLET}-rel + ) + endif() - message(STATUS "Building ${_csc_PROJECT_PATH} for Debug") - file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg) - vcpkg_execute_required_process( - COMMAND msbuild ${_csc_PROJECT_PATH} - /p:Configuration=${_csc_DEBUG_CONFIGURATION} - ${_csc_OPTIONS} - ${_csc_OPTIONS_DEBUG} - WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg - LOGNAME build-${TARGET_TRIPLET}-dbg - ) + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") + message(STATUS "Building ${_csc_PROJECT_PATH} for Debug") + file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg) + vcpkg_execute_required_process( + COMMAND msbuild ${_csc_PROJECT_PATH} + /p:Configuration=${_csc_DEBUG_CONFIGURATION} + ${_csc_OPTIONS} + ${_csc_OPTIONS_DEBUG} + WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg + LOGNAME build-${TARGET_TRIPLET}-dbg + ) + endif() endfunction() diff --git a/scripts/cmake/vcpkg_common_functions.cmake b/scripts/cmake/vcpkg_common_functions.cmake index 81e8e5813..7ef87f2ea 100644 --- a/scripts/cmake/vcpkg_common_functions.cmake +++ b/scripts/cmake/vcpkg_common_functions.cmake @@ -21,4 +21,3 @@ include(vcpkg_copy_tool_dependencies) include(vcpkg_get_program_files_32_bit) include(vcpkg_get_program_files_platform_bitness) include(vcpkg_get_windows_sdk) -include(vcpkg_acquire_depot_tools) diff --git a/scripts/cmake/vcpkg_configure_cmake.cmake b/scripts/cmake/vcpkg_configure_cmake.cmake index b979245aa..4bcf3d2c9 100644 --- a/scripts/cmake/vcpkg_configure_cmake.cmake +++ b/scripts/cmake/vcpkg_configure_cmake.cmake @@ -61,6 +61,14 @@ function(vcpkg_configure_cmake) set(GENERATOR ${_csc_GENERATOR}) elseif(_csc_PREFER_NINJA AND NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" AND NOT _csc_HOST_ARCHITECTURE STREQUAL "x86") set(GENERATOR "Ninja") + elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "x86" AND VCPKG_PLATFORM_TOOLSET MATCHES "v120") + set(GENERATOR "Visual Studio 12 2013") + elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "x64" AND VCPKG_PLATFORM_TOOLSET MATCHES "v120") + set(GENERATOR "Visual Studio 12 2013 Win64") + elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "arm" AND VCPKG_PLATFORM_TOOLSET MATCHES "v120") + set(GENERATOR "Visual Studio 12 2013 ARM") + elseif(VCPKG_CHAINLOAD_TOOLCHAIN_FILE) + set(GENERATOR "Ninja") elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" AND VCPKG_TARGET_ARCHITECTURE MATCHES "x86" AND VCPKG_PLATFORM_TOOLSET MATCHES "v140") set(GENERATOR "Visual Studio 14 2015") elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" AND VCPKG_TARGET_ARCHITECTURE MATCHES "x64" AND VCPKG_PLATFORM_TOOLSET MATCHES "v140") @@ -191,29 +199,33 @@ function(vcpkg_configure_cmake) ) endif() - message(STATUS "Configuring ${TARGET_TRIPLET}-rel") - file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel) - vcpkg_execute_required_process( - COMMAND ${CMAKE_COMMAND} ${_csc_SOURCE_PATH} ${_csc_OPTIONS} ${_csc_OPTIONS_RELEASE} - -G ${GENERATOR} - -DCMAKE_BUILD_TYPE=Release - -DCMAKE_INSTALL_PREFIX=${CURRENT_PACKAGES_DIR} - WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel - LOGNAME config-${TARGET_TRIPLET}-rel - ) - message(STATUS "Configuring ${TARGET_TRIPLET}-rel done") + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") + message(STATUS "Configuring ${TARGET_TRIPLET}-rel") + file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel) + vcpkg_execute_required_process( + COMMAND ${CMAKE_COMMAND} ${_csc_SOURCE_PATH} ${_csc_OPTIONS} ${_csc_OPTIONS_RELEASE} + -G ${GENERATOR} + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_INSTALL_PREFIX=${CURRENT_PACKAGES_DIR} + WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel + LOGNAME config-${TARGET_TRIPLET}-rel + ) + message(STATUS "Configuring ${TARGET_TRIPLET}-rel done") + endif() - message(STATUS "Configuring ${TARGET_TRIPLET}-dbg") - file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg) - vcpkg_execute_required_process( - COMMAND ${CMAKE_COMMAND} ${_csc_SOURCE_PATH} ${_csc_OPTIONS} ${_csc_OPTIONS_DEBUG} - -G ${GENERATOR} - -DCMAKE_BUILD_TYPE=Debug - -DCMAKE_INSTALL_PREFIX=${CURRENT_PACKAGES_DIR}/debug - WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg - LOGNAME config-${TARGET_TRIPLET}-dbg - ) - message(STATUS "Configuring ${TARGET_TRIPLET}-dbg done") + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") + message(STATUS "Configuring ${TARGET_TRIPLET}-dbg") + file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg) + vcpkg_execute_required_process( + COMMAND ${CMAKE_COMMAND} ${_csc_SOURCE_PATH} ${_csc_OPTIONS} ${_csc_OPTIONS_DEBUG} + -G ${GENERATOR} + -DCMAKE_BUILD_TYPE=Debug + -DCMAKE_INSTALL_PREFIX=${CURRENT_PACKAGES_DIR}/debug + WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg + LOGNAME config-${TARGET_TRIPLET}-dbg + ) + message(STATUS "Configuring ${TARGET_TRIPLET}-dbg done") + endif() set(_VCPKG_CMAKE_GENERATOR "${GENERATOR}" PARENT_SCOPE) endfunction()
\ No newline at end of file diff --git a/scripts/cmake/vcpkg_configure_meson.cmake b/scripts/cmake/vcpkg_configure_meson.cmake index 143bb74de..9b87261d5 100644 --- a/scripts/cmake/vcpkg_configure_meson.cmake +++ b/scripts/cmake/vcpkg_configure_meson.cmake @@ -42,31 +42,35 @@ function(vcpkg_configure_meson) set(ENV{PATH} "$ENV{PATH};${NINJA_PATH}") # configure release - message(STATUS "Configuring ${TARGET_TRIPLET}-rel") - file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel) - set(ENV{CFLAGS} "${MESON_COMMON_CFLAGS} ${MESON_RELEASE_CFLAGS}") - set(ENV{CXXFLAGS} "${MESON_COMMON_CXXFLAGS} ${MESON_RELEASE_CXXFLAGS}") - set(ENV{LDFLAGS} "${MESON_COMMON_LDFLAGS} ${MESON_RELEASE_LDFLAGS}") - set(ENV{CPPFLAGS} "${MESON_COMMON_CPPFLAGS} ${MESON_RELEASE_CPPFLAGS}") - vcpkg_execute_required_process( - COMMAND ${MESON} ${_vcm_OPTIONS} ${_vcm_OPTIONS_RELEASE} ${_vcm_SOURCE_PATH} - WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel - LOGNAME config-${TARGET_TRIPLET}-rel - ) - message(STATUS "Configuring ${TARGET_TRIPLET}-rel done") - - # configure debug - message(STATUS "Configuring ${TARGET_TRIPLET}-dbg") - file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg) - set(ENV{CFLAGS} "${MESON_COMMON_CFLAGS} ${MESON_DEBUG_CFLAGS}") - set(ENV{CXXFLAGS} "${MESON_COMMON_CXXFLAGS} ${MESON_DEBUG_CXXFLAGS}") - set(ENV{LDFLAGS} "${MESON_COMMON_LDFLAGS} ${MESON_DEBUG_LDFLAGS}") - set(ENV{CPPFLAGS} "${MESON_COMMON_CPPFLAGS} ${MESON_DEBUG_CPPFLAGS}") - vcpkg_execute_required_process( - COMMAND ${MESON} ${_vcm_OPTIONS} ${_vcm_OPTIONS_DEBUG} ${_vcm_SOURCE_PATH} - WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg - LOGNAME config-${TARGET_TRIPLET}-dbg - ) - message(STATUS "Configuring ${TARGET_TRIPLET}-dbg done") + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") + message(STATUS "Configuring ${TARGET_TRIPLET}-rel") + file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel) + set(ENV{CFLAGS} "${MESON_COMMON_CFLAGS} ${MESON_RELEASE_CFLAGS}") + set(ENV{CXXFLAGS} "${MESON_COMMON_CXXFLAGS} ${MESON_RELEASE_CXXFLAGS}") + set(ENV{LDFLAGS} "${MESON_COMMON_LDFLAGS} ${MESON_RELEASE_LDFLAGS}") + set(ENV{CPPFLAGS} "${MESON_COMMON_CPPFLAGS} ${MESON_RELEASE_CPPFLAGS}") + vcpkg_execute_required_process( + COMMAND ${MESON} ${_vcm_OPTIONS} ${_vcm_OPTIONS_RELEASE} ${_vcm_SOURCE_PATH} + WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel + LOGNAME config-${TARGET_TRIPLET}-rel + ) + message(STATUS "Configuring ${TARGET_TRIPLET}-rel done") + endif() + + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") + # configure debug + message(STATUS "Configuring ${TARGET_TRIPLET}-dbg") + file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg) + set(ENV{CFLAGS} "${MESON_COMMON_CFLAGS} ${MESON_DEBUG_CFLAGS}") + set(ENV{CXXFLAGS} "${MESON_COMMON_CXXFLAGS} ${MESON_DEBUG_CXXFLAGS}") + set(ENV{LDFLAGS} "${MESON_COMMON_LDFLAGS} ${MESON_DEBUG_LDFLAGS}") + set(ENV{CPPFLAGS} "${MESON_COMMON_CPPFLAGS} ${MESON_DEBUG_CPPFLAGS}") + vcpkg_execute_required_process( + COMMAND ${MESON} ${_vcm_OPTIONS} ${_vcm_OPTIONS_DEBUG} ${_vcm_SOURCE_PATH} + WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg + LOGNAME config-${TARGET_TRIPLET}-dbg + ) + message(STATUS "Configuring ${TARGET_TRIPLET}-dbg done") + endif() endfunction() diff --git a/scripts/cmake/vcpkg_download_distfile.cmake b/scripts/cmake/vcpkg_download_distfile.cmake index b8acfc823..b22d82a16 100644 --- a/scripts/cmake/vcpkg_download_distfile.cmake +++ b/scripts/cmake/vcpkg_download_distfile.cmake @@ -38,9 +38,18 @@ function(vcpkg_download_distfile VAR) set(oneValueArgs FILENAME SHA512) set(multipleValuesArgs URLS) cmake_parse_arguments(vcpkg_download_distfile "" "${oneValueArgs}" "${multipleValuesArgs}" ${ARGN}) + set(downloaded_file_path ${DOWNLOADS}/${vcpkg_download_distfile_FILENAME}) + set(download_file_path_part "${DOWNLOADS}/temp/${vcpkg_download_distfile_FILENAME}") + + file(REMOVE_RECURSE "${DOWNLOADS}/temp") + file(MAKE_DIRECTORY "${DOWNLOADS}/temp") function(test_hash FILE_KIND CUSTOM_ERROR_ADVICE) + if (_VCPKG_INTERNAL_NO_HASH_CHECK) + return() + endif() + message(STATUS "Testing integrity of ${FILE_KIND}...") file(SHA512 ${downloaded_file_path} FILE_HASH) if(NOT "${FILE_HASH}" STREQUAL "${vcpkg_download_distfile_SHA512}") @@ -65,13 +74,13 @@ function(vcpkg_download_distfile VAR) # Tries to download the file. foreach(url IN LISTS vcpkg_download_distfile_URLS) message(STATUS "Downloading ${url}...") - file(DOWNLOAD ${url} ${downloaded_file_path} STATUS download_status) + file(DOWNLOAD ${url} "${download_file_path_part}" STATUS download_status) list(GET download_status 0 status_code) if (NOT "${status_code}" STREQUAL "0") message(STATUS "Downloading ${url}... Failed. Status: ${download_status}") - file(REMOVE ${downloaded_file_path}) set(download_success 0) else() + file(RENAME ${download_file_path_part} ${downloaded_file_path}) message(STATUS "Downloading ${url}... OK") set(download_success 1) break() diff --git a/scripts/cmake/vcpkg_execute_required_process.cmake b/scripts/cmake/vcpkg_execute_required_process.cmake index 173bca6e9..7c4907016 100644 --- a/scripts/cmake/vcpkg_execute_required_process.cmake +++ b/scripts/cmake/vcpkg_execute_required_process.cmake @@ -38,13 +38,14 @@ function(vcpkg_execute_required_process) RESULT_VARIABLE error_code WORKING_DIRECTORY ${vcpkg_execute_required_process_WORKING_DIRECTORY}) #debug_message("error_code=${error_code}") - file(TO_NATIVE_PATH "${CURRENT_BUILDTREES_DIR}" NATIVE_BUILDTREES_DIR) if(error_code) + file(TO_NATIVE_PATH "${CURRENT_BUILDTREES_DIR}/${vcpkg_execute_required_process_LOGNAME}-out.log" NATIVE_LOG_OUT) + file(TO_NATIVE_PATH "${CURRENT_BUILDTREES_DIR}/${vcpkg_execute_required_process_LOGNAME}-err.log" NATIVE_LOG_ERR) message(FATAL_ERROR " Command failed: ${vcpkg_execute_required_process_COMMAND}\n" " Working Directory: ${vcpkg_execute_required_process_WORKING_DIRECTORY}\n" " See logs for more information:\n" - " ${NATIVE_BUILDTREES_DIR}\\${vcpkg_execute_required_process_LOGNAME}-out.log\n" - " ${NATIVE_BUILDTREES_DIR}\\${vcpkg_execute_required_process_LOGNAME}-err.log\n") + " ${NATIVE_LOG_OUT}\n" + " ${NATIVE_LOG_ERR}\n") endif() endfunction() diff --git a/scripts/cmake/vcpkg_find_acquire_program.cmake b/scripts/cmake/vcpkg_find_acquire_program.cmake index fdee0cb1f..066126e6c 100644 --- a/scripts/cmake/vcpkg_find_acquire_program.cmake +++ b/scripts/cmake/vcpkg_find_acquire_program.cmake @@ -148,6 +148,14 @@ function(vcpkg_find_acquire_program VAR) set(URL "https://github.com/wixtoolset/wix3/releases/download/wix311rtm/wix311-binaries.zip") set(ARCHIVE "wix311-binaries.zip") set(HASH 74f0fa29b5991ca655e34a9d1000d47d4272e071113fada86727ee943d913177ae96dc3d435eaf494d2158f37560cd4c2c5274176946ebdb17bf2354ced1c516) + elseif(VAR MATCHES "SCONS") + set(PROGNAME scons) + set(REQUIRED_INTERPRETER PYTHON2) + set(SCRIPTNAME "scons.py") + set(PATHS ${DOWNLOADS}/tools/scons) + set(URL "https://sourceforge.net/projects/scons/files/scons-local-3.0.1.zip/download") + set(ARCHIVE "scons-local-3.0.1.zip") + set(HASH fe121b67b979a4e9580c7f62cfdbe0c243eba62a05b560d6d513ac7f35816d439b26d92fc2d7b7d7241c9ce2a49ea7949455a17587ef53c04a5f5125ac635727) else() message(FATAL "unknown tool ${VAR} -- unable to acquire.") endif() @@ -164,18 +172,20 @@ function(vcpkg_find_acquire_program VAR) do_find() if("${${VAR}}" MATCHES "-NOTFOUND") - file(DOWNLOAD ${URL} ${DOWNLOADS}/${ARCHIVE} - EXPECTED_HASH SHA512=${HASH} - SHOW_PROGRESS + vcpkg_download_distfile(ARCHIVE_PATH + URLS ${URL} + SHA512 ${HASH} + FILENAME ${ARCHIVE} ) + file(MAKE_DIRECTORY ${DOWNLOADS}/tools/${PROGNAME}/${SUBDIR}) if(DEFINED NOEXTRACT) - file(COPY ${DOWNLOADS}/${ARCHIVE} DESTINATION ${DOWNLOADS}/tools/${PROGNAME}/${SUBDIR}) + file(COPY ${ARCHIVE_PATH} DESTINATION ${DOWNLOADS}/tools/${PROGNAME}/${SUBDIR}) else() get_filename_component(ARCHIVE_EXTENSION ${ARCHIVE} EXT) string(TOLOWER "${ARCHIVE_EXTENSION}" ARCHIVE_EXTENSION) if(ARCHIVE_EXTENSION STREQUAL ".msi") - file(TO_NATIVE_PATH "${DOWNLOADS}/${ARCHIVE}" ARCHIVE_NATIVE_PATH) + file(TO_NATIVE_PATH "${ARCHIVE_PATH}" ARCHIVE_NATIVE_PATH) file(TO_NATIVE_PATH "${DOWNLOADS}/tools/${PROGNAME}/${SUBDIR}" DESTINATION_NATIVE_PATH) execute_process( COMMAND msiexec /a ${ARCHIVE_NATIVE_PATH} /qn TARGETDIR=${DESTINATION_NATIVE_PATH} @@ -183,7 +193,7 @@ function(vcpkg_find_acquire_program VAR) ) else() execute_process( - COMMAND ${CMAKE_COMMAND} -E tar xzf ${DOWNLOADS}/${ARCHIVE} + COMMAND ${CMAKE_COMMAND} -E tar xzf ${ARCHIVE_PATH} WORKING_DIRECTORY ${DOWNLOADS}/tools/${PROGNAME}/${SUBDIR} ) endif() diff --git a/scripts/cmake/vcpkg_fixup_cmake_targets.cmake b/scripts/cmake/vcpkg_fixup_cmake_targets.cmake index 40ed0225f..f86ad0661 100644 --- a/scripts/cmake/vcpkg_fixup_cmake_targets.cmake +++ b/scripts/cmake/vcpkg_fixup_cmake_targets.cmake @@ -23,29 +23,37 @@ function(vcpkg_fixup_cmake_targets) set(DEBUG_SHARE ${CURRENT_PACKAGES_DIR}/debug/share/${PORT}) set(RELEASE_SHARE ${CURRENT_PACKAGES_DIR}/share/${PORT}) - if(_vfct_CONFIG_PATH) + if(_vfct_CONFIG_PATH AND NOT RELEASE_SHARE STREQUAL "${CURRENT_PACKAGES_DIR}/${_vfct_CONFIG_PATH}") set(DEBUG_CONFIG ${CURRENT_PACKAGES_DIR}/debug/${_vfct_CONFIG_PATH}) set(RELEASE_CONFIG ${CURRENT_PACKAGES_DIR}/${_vfct_CONFIG_PATH}) - if(NOT EXISTS ${DEBUG_CONFIG}) - message(FATAL_ERROR "'${DEBUG_CONFIG}' does not exist.") + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") + if(NOT EXISTS ${DEBUG_CONFIG}) + message(FATAL_ERROR "'${DEBUG_CONFIG}' does not exist.") + endif() + + file(MAKE_DIRECTORY ${DEBUG_SHARE}) + file(GLOB FILES ${DEBUG_CONFIG}/*) + file(COPY ${FILES} DESTINATION ${DEBUG_SHARE}) + file(REMOVE_RECURSE ${DEBUG_CONFIG}) endif() - file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/share) - file(RENAME ${DEBUG_CONFIG} ${DEBUG_SHARE}) - file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share) - file(RENAME ${RELEASE_CONFIG} ${RELEASE_SHARE}) + file(GLOB FILES ${RELEASE_CONFIG}/*) + file(COPY ${FILES} DESTINATION ${RELEASE_SHARE}) + file(REMOVE_RECURSE ${RELEASE_CONFIG}) - get_filename_component(DEBUG_CONFIG_DIR_NAME ${DEBUG_CONFIG} NAME) - string(TOLOWER "${DEBUG_CONFIG_DIR_NAME}" DEBUG_CONFIG_DIR_NAME) - if(DEBUG_CONFIG_DIR_NAME STREQUAL "cmake") - file(REMOVE_RECURSE ${DEBUG_CONFIG}) - else() - get_filename_component(DEBUG_CONFIG_PARENT_DIR ${DEBUG_CONFIG} DIRECTORY) - get_filename_component(DEBUG_CONFIG_DIR_NAME ${DEBUG_CONFIG_PARENT_DIR} NAME) + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") + get_filename_component(DEBUG_CONFIG_DIR_NAME ${DEBUG_CONFIG} NAME) string(TOLOWER "${DEBUG_CONFIG_DIR_NAME}" DEBUG_CONFIG_DIR_NAME) if(DEBUG_CONFIG_DIR_NAME STREQUAL "cmake") - file(REMOVE_RECURSE ${DEBUG_CONFIG_PARENT_DIR}) + file(REMOVE_RECURSE ${DEBUG_CONFIG}) + else() + get_filename_component(DEBUG_CONFIG_PARENT_DIR ${DEBUG_CONFIG} DIRECTORY) + get_filename_component(DEBUG_CONFIG_DIR_NAME ${DEBUG_CONFIG_PARENT_DIR} NAME) + string(TOLOWER "${DEBUG_CONFIG_DIR_NAME}" DEBUG_CONFIG_DIR_NAME) + if(DEBUG_CONFIG_DIR_NAME STREQUAL "cmake") + file(REMOVE_RECURSE ${DEBUG_CONFIG_PARENT_DIR}) + endif() endif() endif() @@ -63,8 +71,10 @@ function(vcpkg_fixup_cmake_targets) endif() endif() - if(NOT EXISTS ${DEBUG_SHARE}) - message(FATAL_ERROR "'${DEBUG_SHARE}' does not exist.") + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") + if(NOT EXISTS ${DEBUG_SHARE}) + message(FATAL_ERROR "'${DEBUG_SHARE}' does not exist.") + endif() endif() file(GLOB UNUSED_FILES @@ -77,9 +87,11 @@ function(vcpkg_fixup_cmake_targets) file(REMOVE ${UNUSED_FILES}) endif() + # LLVM uses "LLVMExports-release.cmake" file(GLOB RELEASE_TARGETS "${RELEASE_SHARE}/*[Tt]argets-release.cmake" "${RELEASE_SHARE}/*[Cc]onfig-release.cmake" + "${RELEASE_SHARE}/*[Ee]xports-release.cmake" ) foreach(RELEASE_TARGET ${RELEASE_TARGETS}) file(READ ${RELEASE_TARGET} _contents) @@ -88,22 +100,25 @@ function(vcpkg_fixup_cmake_targets) file(WRITE ${RELEASE_TARGET} "${_contents}") endforeach() - file(GLOB DEBUG_TARGETS - "${DEBUG_SHARE}/*[Tt]argets-debug.cmake" - "${DEBUG_SHARE}/*[Cc]onfig-debug.cmake" - ) - foreach(DEBUG_TARGET ${DEBUG_TARGETS}) - get_filename_component(DEBUG_TARGET_NAME ${DEBUG_TARGET} NAME) - - file(READ ${DEBUG_TARGET} _contents) - string(REPLACE "${CURRENT_INSTALLED_DIR}" "\${_IMPORT_PREFIX}" _contents "${_contents}") - string(REGEX REPLACE "\\\${_IMPORT_PREFIX}/bin/([^ \"]+\\.exe)" "\${_IMPORT_PREFIX}/tools/${PORT}/\\1" _contents "${_contents}") - string(REPLACE "\${_IMPORT_PREFIX}/lib" "\${_IMPORT_PREFIX}/debug/lib" _contents "${_contents}") - string(REPLACE "\${_IMPORT_PREFIX}/bin" "\${_IMPORT_PREFIX}/debug/bin" _contents "${_contents}") - file(WRITE ${CURRENT_PACKAGES_DIR}/share/${PORT}/${DEBUG_TARGET_NAME} "${_contents}") - - file(REMOVE ${DEBUG_TARGET}) - endforeach() + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") + file(GLOB DEBUG_TARGETS + "${DEBUG_SHARE}/*[Tt]argets-debug.cmake" + "${DEBUG_SHARE}/*[Cc]onfig-debug.cmake" + "${DEBUG_SHARE}/*[Ee]xports-debug.cmake" + ) + foreach(DEBUG_TARGET ${DEBUG_TARGETS}) + get_filename_component(DEBUG_TARGET_NAME ${DEBUG_TARGET} NAME) + + file(READ ${DEBUG_TARGET} _contents) + string(REPLACE "${CURRENT_INSTALLED_DIR}" "\${_IMPORT_PREFIX}" _contents "${_contents}") + string(REGEX REPLACE "\\\${_IMPORT_PREFIX}/bin/([^ \"]+\\.exe)" "\${_IMPORT_PREFIX}/tools/${PORT}/\\1" _contents "${_contents}") + string(REPLACE "\${_IMPORT_PREFIX}/lib" "\${_IMPORT_PREFIX}/debug/lib" _contents "${_contents}") + string(REPLACE "\${_IMPORT_PREFIX}/bin" "\${_IMPORT_PREFIX}/debug/bin" _contents "${_contents}") + file(WRITE ${CURRENT_PACKAGES_DIR}/share/${PORT}/${DEBUG_TARGET_NAME} "${_contents}") + + file(REMOVE ${DEBUG_TARGET}) + endforeach() + endif() file(GLOB MAIN_TARGETS "${RELEASE_SHARE}/*[Tt]argets.cmake") foreach(MAIN_TARGET ${MAIN_TARGETS}) @@ -112,6 +127,10 @@ function(vcpkg_fixup_cmake_targets) "get_filename_component\\(_IMPORT_PREFIX \"\\\${CMAKE_CURRENT_LIST_FILE}\" PATH\\)(\nget_filename_component\\(_IMPORT_PREFIX \"\\\${_IMPORT_PREFIX}\" PATH\\))*" "get_filename_component(_IMPORT_PREFIX \"\${CMAKE_CURRENT_LIST_FILE}\" PATH)\nget_filename_component(_IMPORT_PREFIX \"\${_IMPORT_PREFIX}\" PATH)\nget_filename_component(_IMPORT_PREFIX \"\${_IMPORT_PREFIX}\" PATH)" _contents "${_contents}") + string(REPLACE "${CURRENT_INSTALLED_DIR}" "_INVALID_ROOT_" _contents "${_contents}") + string(REGEX REPLACE ";_INVALID_ROOT_/[^\";]*" "" _contents "${_contents}") + string(REGEX REPLACE "_INVALID_ROOT_/[^\";]*;" "" _contents "${_contents}") + string(REGEX REPLACE "\"_INVALID_ROOT_/[^\";]*\"" "\"\"" _contents "${_contents}") file(WRITE ${MAIN_TARGET} "${_contents}") endforeach() diff --git a/scripts/cmake/vcpkg_from_bitbucket.cmake b/scripts/cmake/vcpkg_from_bitbucket.cmake index 227de5141..26600f013 100644 --- a/scripts/cmake/vcpkg_from_bitbucket.cmake +++ b/scripts/cmake/vcpkg_from_bitbucket.cmake @@ -92,13 +92,13 @@ function(vcpkg_from_bitbucket) message(STATUS "Package does not specify HEAD_REF. Falling back to non-HEAD version.") set(VCPKG_USE_HEAD_VERSION OFF) endif() - + # Handle --no-head scenarios if(NOT VCPKG_USE_HEAD_VERSION) if(NOT _vdud_REF) message(FATAL_ERROR "Package does not specify REF. It must built using --head.") endif() - + set(URL "https://bitbucket.com/${ORG_NAME}/${REPO_NAME}/get/${_vdud_REF}.tar.gz") set(downloaded_file_path "${DOWNLOADS}/${ORG_NAME}-${REPO_NAME}-${_vdud_REF}.tar.gz") @@ -117,7 +117,7 @@ function(vcpkg_from_bitbucket) else() set(_version ${_vdud_REF}) endif() - + vcpkg_download_distfile(ARCHIVE URLS "https://bitbucket.com/${ORG_NAME}/${REPO_NAME}/get/${_vdud_REF}.tar.gz" SHA512 "${_vdud_SHA512}" @@ -150,39 +150,31 @@ function(vcpkg_from_bitbucket) endif() # Try to download the file and version information from bitbucket. - message(STATUS "Downloading ${URL}...") - file(DOWNLOAD "https://api.bitbucket.com/2.0/repositories/${ORG_NAME}/${REPO_NAME}/refs/branches/${_vdud_HEAD_REF}" - ${downloaded_file_path}.version - STATUS download_status + set(_VCPKG_INTERNAL_NO_HASH_CHECK "TRUE") + vcpkg_download_distfile(ARCHIVE_VERSION + URLS "https://api.bitbucket.com/2.0/repositories/${ORG_NAME}/${REPO_NAME}/refs/branches/${_vdud_HEAD_REF}" + FILENAME ${downloaded_file_name}.version ) - list(GET download_status 0 status_code) - if (NOT "${status_code}" STREQUAL "0") - file(REMOVE ${downloaded_file_path}.version) - message(FATAL_ERROR "Downloading version info for ${URL}... Failed. Status: ${download_status}") - endif() - file(DOWNLOAD ${URL} ${downloaded_file_path} STATUS download_status) - list(GET download_status 0 status_code) - if (NOT "${status_code}" STREQUAL "0") - file(REMOVE ${downloaded_file_path}) - message(FATAL_ERROR "Downloading ${URL}... Failed. Status: ${download_status}") - else() - message(STATUS "Downloading ${URL}... OK") - endif() + vcpkg_download_distfile(ARCHIVE + URLS ${URL} + FILENAME ${downloaded_file_name} + ) + set(_VCPKG_INTERNAL_NO_HASH_CHECK "FALSE") endif() vcpkg_extract_source_archive_ex( - ARCHIVE "${downloaded_file_path}" + ARCHIVE "${ARCHIVE}" WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/src/head" ) # Parse the github refs response with regex. # TODO: use some JSON swiss-army-knife utility instead. - file(READ "${downloaded_file_path}.version" _contents) + file(READ "${ARCHIVE_VERSION}" _contents) string(REGEX MATCH "\"hash\": \"[a-f0-9]+\"" x "${_contents}") string(REGEX REPLACE "\"hash\": \"([a-f0-9]+)\"" "\\1" _version ${x}) string(SUBSTRING ${_version} 0 12 _vdud_HEAD_REF) # Get the 12 first numbers from commit hash - + # exports VCPKG_HEAD_VERSION to the caller. This will get picked up by ports.cmake after the build. set(VCPKG_HEAD_VERSION ${_version} PARENT_SCOPE) diff --git a/scripts/cmake/vcpkg_from_github.cmake b/scripts/cmake/vcpkg_from_github.cmake index 645690353..b71ab3838 100644 --- a/scripts/cmake/vcpkg_from_github.cmake +++ b/scripts/cmake/vcpkg_from_github.cmake @@ -54,19 +54,19 @@ function(vcpkg_from_github) set(multipleValuesArgs) cmake_parse_arguments(_vdud "" "${oneValueArgs}" "${multipleValuesArgs}" ${ARGN}) - if(NOT _vdud_OUT_SOURCE_PATH) + if(NOT DEFINED _vdud_OUT_SOURCE_PATH) message(FATAL_ERROR "OUT_SOURCE_PATH must be specified.") endif() - if((_vdud_REF AND NOT _vdud_SHA512) OR (NOT _vdud_REF AND _vdud_SHA512)) + if((DEFINED _vdud_REF AND NOT DEFINED _vdud_SHA512) OR (NOT DEFINED _vdud_REF AND DEFINED _vdud_SHA512)) message(FATAL_ERROR "SHA512 must be specified if REF is specified.") endif() - if(NOT _vdud_REPO) + if(NOT DEFINED _vdud_REPO) message(FATAL_ERROR "The GitHub repository must be specified.") endif() - if(NOT _vdud_REF AND NOT _vdud_HEAD_REF) + if(NOT DEFINED _vdud_REF AND NOT DEFINED _vdud_HEAD_REF) message(FATAL_ERROR "At least one of REF and HEAD_REF must be specified.") endif() @@ -80,6 +80,7 @@ function(vcpkg_from_github) else() # Sometimes GitHub strips a leading 'v' off the REF. string(REGEX REPLACE "^v" "" REF ${BASEREF}) + string(REPLACE "/" "-" REF ${REF}) set(SOURCE_PATH "${BASE}/${REPO_NAME}-${REF}") if(EXISTS ${SOURCE_PATH}) set(${_vdud_OUT_SOURCE_PATH} "${SOURCE_PATH}" PARENT_SCOPE) @@ -89,7 +90,7 @@ function(vcpkg_from_github) endif() endmacro() - if(VCPKG_USE_HEAD_VERSION AND NOT _vdud_HEAD_REF) + if(VCPKG_USE_HEAD_VERSION AND NOT DEFINED _vdud_HEAD_REF) message(STATUS "Package does not specify HEAD_REF. Falling back to non-HEAD version.") set(VCPKG_USE_HEAD_VERSION OFF) endif() @@ -100,19 +101,23 @@ function(vcpkg_from_github) message(FATAL_ERROR "Package does not specify REF. It must built using --head.") endif() + string(REPLACE "/" "-" SANITIZED_REF "${_vdud_REF}") + vcpkg_download_distfile(ARCHIVE URLS "https://github.com/${ORG_NAME}/${REPO_NAME}/archive/${_vdud_REF}.tar.gz" SHA512 "${_vdud_SHA512}" - FILENAME "${ORG_NAME}-${REPO_NAME}-${_vdud_REF}.tar.gz" + FILENAME "${ORG_NAME}-${REPO_NAME}-${SANITIZED_REF}.tar.gz" ) vcpkg_extract_source_archive_ex(ARCHIVE "${ARCHIVE}") - set_SOURCE_PATH(${CURRENT_BUILDTREES_DIR}/src ${_vdud_REF}) + set_SOURCE_PATH(${CURRENT_BUILDTREES_DIR}/src ${SANITIZED_REF}) return() endif() # The following is for --head scenarios set(URL "https://github.com/${ORG_NAME}/${REPO_NAME}/archive/${_vdud_HEAD_REF}.tar.gz") - set(downloaded_file_path "${DOWNLOADS}/${ORG_NAME}-${REPO_NAME}-${_vdud_HEAD_REF}.tar.gz") + string(REPLACE "/" "-" SANITIZED_HEAD_REF "${_vdud_HEAD_REF}") + set(downloaded_file_name "${ORG_NAME}-${REPO_NAME}-${SANITIZED_HEAD_REF}.tar.gz") + set(downloaded_file_path "${DOWNLOADS}/${downloaded_file_name}") if(_VCPKG_NO_DOWNLOADS) if(NOT EXISTS ${downloaded_file_path} OR NOT EXISTS ${downloaded_file_path}.version) @@ -132,40 +137,32 @@ function(vcpkg_from_github) endif() # Try to download the file and version information from github. - message(STATUS "Downloading ${URL}...") - file(DOWNLOAD "https://api.github.com/repos/${ORG_NAME}/${REPO_NAME}/git/refs/heads/${_vdud_HEAD_REF}" - ${downloaded_file_path}.version - STATUS download_status + set(_VCPKG_INTERNAL_NO_HASH_CHECK "TRUE") + vcpkg_download_distfile(ARCHIVE_VERSION + URLS "https://api.github.com/repos/${ORG_NAME}/${REPO_NAME}/git/refs/heads/${_vdud_HEAD_REF}" + FILENAME ${downloaded_file_name}.version ) - list(GET download_status 0 status_code) - if (NOT "${status_code}" STREQUAL "0") - file(REMOVE ${downloaded_file_path}.version) - message(FATAL_ERROR "Downloading version info for ${URL}... Failed. Status: ${download_status}") - endif() - file(DOWNLOAD ${URL} ${downloaded_file_path} STATUS download_status) - list(GET download_status 0 status_code) - if (NOT "${status_code}" STREQUAL "0") - file(REMOVE ${downloaded_file_path}) - message(FATAL_ERROR "Downloading ${URL}... Failed. Status: ${download_status}") - else() - message(STATUS "Downloading ${URL}... OK") - endif() + vcpkg_download_distfile(ARCHIVE + URLS ${URL} + FILENAME ${downloaded_file_name} + ) + set(_VCPKG_INTERNAL_NO_HASH_CHECK "FALSE") endif() vcpkg_extract_source_archive_ex( - ARCHIVE "${downloaded_file_path}" + ARCHIVE "${ARCHIVE}" WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/src/head" ) # Parse the github refs response with regex. # TODO: use some JSON swiss-army-knife utility instead. - file(READ "${downloaded_file_path}.version" _contents) + file(READ "${ARCHIVE_VERSION}" _contents) string(REGEX MATCH "\"sha\": \"[a-f0-9]+\"" x "${_contents}") string(REGEX REPLACE "\"sha\": \"([a-f0-9]+)\"" "\\1" _version ${x}) # exports VCPKG_HEAD_VERSION to the caller. This will get picked up by ports.cmake after the build. set(VCPKG_HEAD_VERSION ${_version} PARENT_SCOPE) - set_SOURCE_PATH(${CURRENT_BUILDTREES_DIR}/src/head ${_vdud_HEAD_REF}) + set_SOURCE_PATH(${CURRENT_BUILDTREES_DIR}/src/head ${SANITIZED_HEAD_REF}) endfunction() diff --git a/scripts/cmake/vcpkg_get_windows_sdk.cmake b/scripts/cmake/vcpkg_get_windows_sdk.cmake index 64d8838e7..a8aad64a9 100644 --- a/scripts/cmake/vcpkg_get_windows_sdk.cmake +++ b/scripts/cmake/vcpkg_get_windows_sdk.cmake @@ -10,7 +10,7 @@ function(vcpkg_get_windows_sdk ret) message(FATAL_ERROR "Could not find Windows SDK") endif() - # Remove trailing newline - string(REGEX REPLACE "\n$" "" WINDOWS_SDK "${WINDOWS_SDK}") + # Remove trailing newline and non-numeric characters + string(REGEX REPLACE "[^0-9.]" "" WINDOWS_SDK "${WINDOWS_SDK}") set(${ret} ${WINDOWS_SDK} PARENT_SCOPE) endfunction()
\ No newline at end of file diff --git a/scripts/fetchDependency.ps1 b/scripts/fetchDependency.ps1 index df03878eb..830ec7064 100644 --- a/scripts/fetchDependency.ps1 +++ b/scripts/fetchDependency.ps1 @@ -1,140 +1,32 @@ [CmdletBinding()] param( - [string]$Dependency + [Parameter(Mandatory=$true)][string]$Dependency ) -function Test-Command($commandName) -{ - return [bool](Get-Command -Name $commandName -ErrorAction SilentlyContinue) -} - -function Test-Module($moduleName) -{ - return [bool](Get-Module -ListAvailable -Name $moduleName) -} - -if (Test-Module -moduleName 'BitsTransfer') -{ - Import-Module BitsTransfer -Verbose:$false -} +$scriptsDir = split-path -parent $MyInvocation.MyCommand.Definition +. "$scriptsDir\VcpkgPowershellUtils.ps1" Write-Verbose "Fetching dependency: $Dependency" - -$scriptsDir = split-path -parent $MyInvocation.MyCommand.Definition $vcpkgRootDir = & $scriptsDir\findFileRecursivelyUp.ps1 $scriptsDir .vcpkg-root $downloadsDir = "$vcpkgRootDir\downloads" function SelectProgram([Parameter(Mandatory=$true)][string]$Dependency) { - function performDownload( [Parameter(Mandatory=$true)][string]$Dependency, - [Parameter(Mandatory=$true)][string]$url, - [Parameter(Mandatory=$true)][string]$downloadDir, - [Parameter(Mandatory=$true)][string]$downloadPath, - [Parameter(Mandatory=$true)][string]$downloadVersion, - [Parameter(Mandatory=$true)][string]$requiredVersion) - { - if (Test-Path $downloadPath) - { - return - } - - # Can't print because vcpkg captures the output and expects only the path that is returned at the end of this script file - # Write-Host "A suitable version of $Dependency was not found (required v$requiredVersion). Downloading portable $Dependency v$downloadVersion..." - - if (!(Test-Path $downloadDir)) - { - New-Item -ItemType directory -Path $downloadDir | Out-Null - } - - $WC = New-Object System.Net.WebClient - $ProxyAuth = !$WC.Proxy.IsBypassed($url) - if ($ProxyAuth) - { - $ProxyCred = Get-Credential -Message "Enter credentials for Proxy Authentication" - $PSDefaultParameterValues.Add("Start-BitsTransfer:ProxyAuthentication","Basic") - $PSDefaultParameterValues.Add("Start-BitsTransfer:ProxyCredential",$ProxyCred) - $WC.Proxy.Credentials=$ProxyCred - } - - # git and installerbase fail with Start-BitsTransfer - if ((Test-Command -commandName 'Start-BitsTransfer') -and ($Dependency -ne "git")-and ($Dependency -ne "installerbase")) - { - try - { - Start-BitsTransfer -Source $url -Destination $downloadPath -ErrorAction Stop - return - } - catch [System.Exception] - { - # If BITS fails for any reason, delete any potentially partially downloaded files and continue - if (Test-Path $downloadPath) - { - Remove-Item $downloadPath - } - } - } - - Write-Verbose("Downloading $Dependency...") - $WC.DownloadFile($url, $downloadPath) - } - # Enums (without resorting to C#) are only available on powershell 5+. $ExtractionType_NO_EXTRACTION_REQUIRED = 0 $ExtractionType_ZIP = 1 $ExtractionType_SELF_EXTRACTING_7Z = 2 - - # Using this to wait for the execution to finish - function Invoke-Command() - { - param ( [string]$program = $(throw "Please specify a program" ), - [string]$argumentString = "", - [switch]$waitForExit ) - - $psi = new-object "Diagnostics.ProcessStartInfo" - $psi.FileName = $program - $psi.Arguments = $argumentString - $proc = [Diagnostics.Process]::Start($psi) - if ( $waitForExit ) - { - $proc.WaitForExit(); - } - } - - function Expand-ZIPFile($file, $destination) - { - if (!(Test-Path $destination)) - { - New-Item -ItemType Directory -Path $destination | Out-Null - } - - if (Test-Command -commandName 'Expand-Archive') - { - Expand-Archive -path $file -destinationpath $destination - } - else - { - $shell = new-object -com shell.application - $zip = $shell.NameSpace($file) - foreach($item in $zip.items()) - { - # Piping to Out-Null is used to block until finished - $shell.Namespace($destination).copyhere($item) | Out-Null - } - } - } - if($Dependency -eq "cmake") { - $requiredVersion = "3.9.4" - $downloadVersion = "3.9.4" - $url = "https://cmake.org/files/v3.9/cmake-3.9.4-win32-x86.zip" - $downloadPath = "$downloadsDir\cmake-3.9.4-win32-x86.zip" - $expectedDownloadedFileHash = "8214df1ff51f9a6a1f0e27f9bd18f402b1749c5b645fbf6e401bcb00047171cd" - $executableFromDownload = "$downloadsDir\cmake-3.9.4-win32-x86\bin\cmake.exe" + $requiredVersion = "3.10.0" + $downloadVersion = "3.10.0" + $url = "https://cmake.org/files/v3.10/cmake-3.10.0-win32-x86.zip" + $downloadPath = "$downloadsDir\cmake-3.10.0-win32-x86.zip" + $expectedDownloadedFileHash = "dce666e897f95a88d3eed6cddd1faa3f44179d519b33ca6065b385bbc7072419" + $executableFromDownload = "$downloadsDir\cmake-3.10.0-win32-x86\bin\cmake.exe" $extractionType = $ExtractionType_ZIP - $extractionFolder = $downloadsDir } elseif($Dependency -eq "nuget") { @@ -148,26 +40,25 @@ function SelectProgram([Parameter(Mandatory=$true)][string]$Dependency) } elseif($Dependency -eq "vswhere") { - $requiredVersion = "2.2.7" - $downloadVersion = "2.2.7" - $url = "https://github.com/Microsoft/vswhere/releases/download/2.2.7/vswhere.exe" + $requiredVersion = "2.2.11" + $downloadVersion = "2.2.11" + $url = "https://github.com/Microsoft/vswhere/releases/download/2.2.11/vswhere.exe" $downloadPath = "$downloadsDir\vswhere-$downloadVersion\vswhere.exe" - $expectedDownloadedFileHash = "f50303881da706132516d9decfd5314d524a0044daf49c0cfd21dc39c1261ec3" + $expectedDownloadedFileHash = "0235c2cb6341978abdf32e27fcf1d7af5cb5514c035e529c4cd9283e6f1a261f" $executableFromDownload = $downloadPath $extractionType = $ExtractionType_NO_EXTRACTION_REQUIRED } elseif($Dependency -eq "git") { - $requiredVersion = "2.14.2" - $downloadVersion = "2.14.2" - $url = "https://github.com/git-for-windows/git/releases/download/v2.14.2.windows.3/MinGit-2.14.2.3-32-bit.zip" # We choose the 32-bit version - $downloadPath = "$downloadsDir\MinGit-2.14.2.3-32-bit.zip" - $expectedDownloadedFileHash = "7cc1f27e1cfe79381e1a504a5fc7bc33951ac9031cd14c3bf478769d21a26cce" + $requiredVersion = "2.15.0" + $downloadVersion = "2.15.0" + $url = "https://github.com/git-for-windows/git/releases/download/v2.15.0.windows.1/MinGit-2.15.0-32-bit.zip" + $downloadPath = "$downloadsDir\MinGit-2.15.0-32-bit.zip" + $expectedDownloadedFileHash = "69c035ab7b75c42ce5dd99e8927d2624ab618fab73c5ad84c9412bd74c343537" # There is another copy of git.exe in MinGit\bin. However, an installed version of git add the cmd dir to the PATH. # Therefore, choosing the cmd dir here as well. - $executableFromDownload = "$downloadsDir\MinGit-2.14.2.3-32-bit\cmd\git.exe" + $executableFromDownload = "$downloadsDir\MinGit-2.15.0-32-bit\cmd\git.exe" $extractionType = $ExtractionType_ZIP - $extractionFolder = "$downloadsDir\MinGit-2.14.2.3-32-bit" } elseif($Dependency -eq "installerbase") { @@ -178,38 +69,16 @@ function SelectProgram([Parameter(Mandatory=$true)][string]$Dependency) $expectedDownloadedFileHash = "f2ce23cf5cf9fc7ce409bdca49328e09a070c0026d3c8a04e4dfde7b05b83fe8" $executableFromDownload = "$downloadsDir\QtInstallerFramework-win-x86\bin\installerbase.exe" $extractionType = $ExtractionType_ZIP - $extractionFolder = $downloadsDir } else { throw "Unknown program requested" } - $downloadSubdir = Split-path $downloadPath -Parent - if (!(Test-Path $downloadSubdir)) - { - New-Item -ItemType Directory -Path $downloadSubdir | Out-Null - } - - performDownload $Dependency $url $downloadsDir $downloadPath $downloadVersion $requiredVersion - - #calculating the hash - if (Test-Command -commandName 'Get-FileHash') - { - $downloadedFileHash = (Get-FileHash -Path $downloadPath -Algorithm SHA256).Hash - } - else - { - $hashAlgorithm = [Security.Cryptography.HashAlgorithm]::Create("SHA256") - $fileAsByteArray = [io.File]::ReadAllBytes($downloadPath) - $hashByteArray = $hashAlgorithm.ComputeHash($fileAsByteArray) - $downloadedFileHash = -Join ($hashByteArray | ForEach-Object {"{0:x2}" -f $_}) - } + vcpkgDownloadFile $url $downloadPath - if ($expectedDownloadedFileHash -ne $downloadedFileHash) - { - throw [System.IO.FileNotFoundException] ("Mismatching hash of the downloaded " + $Dependency) - } + $downloadedFileHash = vcpkgGetSHA256 $downloadPath + vcpkgCheckEqualFileHash -filePath $downloadPath -expectedHash $expectedDownloadedFileHash -actualHash $downloadedFileHash if ($extractionType -eq $ExtractionType_NO_EXTRACTION_REQUIRED) { @@ -217,17 +86,17 @@ function SelectProgram([Parameter(Mandatory=$true)][string]$Dependency) } elseif($extractionType -eq $ExtractionType_ZIP) { - if (-not (Test-Path $executableFromDownload)) # consider renaming the extraction folder to make sure the extraction finished + if (-not (Test-Path $executableFromDownload)) { - # Expand-Archive $downloadPath -dest "$extractionFolder" -Force # Requires powershell 5+ - Expand-ZIPFile -File $downloadPath -Destination $extractionFolder + $extractFolderName = (Get-ChildItem $downloadPath).BaseName + vcpkgExtractFile -File $downloadPath -DestinationDir "$downloadsDir\$extractFolderName" } } elseif($extractionType -eq $ExtractionType_SELF_EXTRACTING_7Z) { if (-not (Test-Path $executableFromDownload)) { - Invoke-Command $downloadPath "-y" -waitForExit:$true + vcpkgInvokeCommand $downloadPath "-y" -wait:$true } } else @@ -237,12 +106,12 @@ function SelectProgram([Parameter(Mandatory=$true)][string]$Dependency) if (-not (Test-Path $executableFromDownload)) { - throw [System.IO.FileNotFoundException] ("Could not detect or download " + $Dependency) + throw ("Could not detect or download " + $Dependency) } return $executableFromDownload } -SelectProgram $Dependency - +$path = SelectProgram $Dependency Write-Verbose "Fetching dependency: $Dependency. Done." +return "<sol>::$path::<eol>" diff --git a/scripts/findAnyMSBuildWithCppPlatformToolset.ps1 b/scripts/findAnyMSBuildWithCppPlatformToolset.ps1 index 3269562dc..46ba767b9 100644 --- a/scripts/findAnyMSBuildWithCppPlatformToolset.ps1 +++ b/scripts/findAnyMSBuildWithCppPlatformToolset.ps1 @@ -1,17 +1,22 @@ [CmdletBinding()] param( [Parameter(Mandatory=$False)] - [string]$explicitlyRequestedVSPath = "" + [string]$withVSPath = "" ) -$explicitlyRequestedVSPath = $explicitlyRequestedVSPath -replace "\\$" # Remove potential trailing backslash +$withVSPath = $withVSPath -replace "\\$" # Remove potential trailing backslash $scriptsDir = split-path -parent $MyInvocation.MyCommand.Definition $VisualStudioInstallationInstances = & $scriptsDir\findVisualStudioInstallationInstances.ps1 +if ($VisualStudioInstallationInstances -eq $null) +{ + throw "Could not find Visual Studio. VS2015 or VS2017 (with C++) needs to be installed." +} + Write-Verbose "VS Candidates:`n`r$([system.String]::Join([Environment]::NewLine, $VisualStudioInstallationInstances))" foreach ($instanceCandidateWithEOL in $VisualStudioInstallationInstances) { - $instanceCandidate = $instanceCandidateWithEOL -replace "::<eol>" + $instanceCandidate = $instanceCandidateWithEOL -replace "<sol>::" -replace "::<eol>" Write-Verbose "Inspecting: $instanceCandidate" $split = $instanceCandidate -split "::" # $preferenceWeight = $split[0] @@ -19,7 +24,7 @@ foreach ($instanceCandidateWithEOL in $VisualStudioInstallationInstances) $version = $split[2] $path = $split[3] - if ($explicitlyRequestedVSPath -ne "" -and $explicitlyRequestedVSPath -ne $path) + if ($withVSPath -ne "" -and $withVSPath -ne $path) { Write-Verbose "Skipping: $instanceCandidate" continue diff --git a/scripts/findVisualStudioInstallationInstances.ps1 b/scripts/findVisualStudioInstallationInstances.ps1 index 566560cdb..e3bc67ff6 100644 --- a/scripts/findVisualStudioInstallationInstances.ps1 +++ b/scripts/findVisualStudioInstallationInstances.ps1 @@ -4,7 +4,7 @@ param( ) $scriptsDir = split-path -parent $MyInvocation.MyCommand.Definition -$vswhereExe = & $scriptsDir\fetchDependency.ps1 "vswhere" +$vswhereExe = (& $scriptsDir\fetchDependency.ps1 "vswhere") -replace "<sol>::" -replace "::<eol>" $output = & $vswhereExe -prerelease -legacy -products * -format xml [xml]$asXml = $output @@ -29,7 +29,7 @@ foreach ($instance in $asXml.instances.instance) } # Placed like that for easy sorting according to preference - $results.Add("${releaseType}::${installationVersion}::${installationPath}::<eol>") > $null + $results.Add("<sol>::${releaseType}::${installationVersion}::${installationPath}::<eol>") > $null } # If nothing is found, attempt to find VS2015 Build Tools (not detected by vswhere.exe) @@ -42,7 +42,7 @@ if ($results.Count -eq 0) if ((Test-Path $clExe) -And (Test-Path $vcvarsallbat)) { - return "PreferenceWeight1::Legacy::14.0::$installationPath::<eol>" + return "<sol>::PreferenceWeight1::Legacy::14.0::$installationPath::<eol>" } } diff --git a/scripts/get_triplet_environment.cmake b/scripts/get_triplet_environment.cmake index b32f840d2..bc79b16ce 100644 --- a/scripts/get_triplet_environment.cmake +++ b/scripts/get_triplet_environment.cmake @@ -6,4 +6,6 @@ message("VCPKG_TARGET_ARCHITECTURE=${VCPKG_TARGET_ARCHITECTURE}") message("VCPKG_CMAKE_SYSTEM_NAME=${VCPKG_CMAKE_SYSTEM_NAME}") message("VCPKG_CMAKE_SYSTEM_VERSION=${VCPKG_CMAKE_SYSTEM_VERSION}") message("VCPKG_PLATFORM_TOOLSET=${VCPKG_PLATFORM_TOOLSET}") -message("VCPKG_VISUAL_STUDIO_PATH=${VCPKG_VISUAL_STUDIO_PATH}")
\ No newline at end of file +message("VCPKG_VISUAL_STUDIO_PATH=${VCPKG_VISUAL_STUDIO_PATH}") +message("VCPKG_CHAINLOAD_TOOLCHAIN_FILE=${VCPKG_CHAINLOAD_TOOLCHAIN_FILE}") +message("VCPKG_BUILD_TYPE=${VCPKG_BUILD_TYPE}") diff --git a/scripts/internalCI.ps1 b/scripts/internalCI.ps1 index 887eb7bea..37f4f35a4 100644 --- a/scripts/internalCI.ps1 +++ b/scripts/internalCI.ps1 @@ -1,24 +1,22 @@ $ErrorActionPreference = "Stop" +rm TEST-internal-ci.xml -errorAction SilentlyContinue + New-Item -type directory downloads -errorAction SilentlyContinue | Out-Null ./scripts/bootstrap.ps1 if (-not $?) { throw $? } # Clear out any intermediate files from the previous build -Get-ChildItem buildtrees/*/* | ? { $_.Name -ne "src" -and $_.Extension -ne ".log"} | Remove-Item -Recurse -Force +if (Test-Path buildtrees) +{ + Get-ChildItem buildtrees/*/* | ? { $_.Name -ne "src" } | Remove-Item -Recurse -Force +} # Purge any outdated packages ./vcpkg remove --outdated --recurse if (-not $?) { throw $? } -./vcpkg.exe install azure-storage-cpp cpprestsdk:x64-windows-static cpprestsdk:x86-uwp -if (-not $?) { throw $? } - -./vcpkg.exe install bond cryptopp zlib expat sdl2 curl sqlite3 libuv protobuf:x64-windows sfml opencv:x64-windows uwebsockets uwebsockets:x64-windows-static +./vcpkg.exe install azure-storage-cpp cpprestsdk:x64-windows-static cpprestsdk:x86-uwp ` +bond cryptopp zlib expat sdl2 curl sqlite3 libuv protobuf:x64-windows sfml opencv:x64-windows uwebsockets uwebsockets:x64-windows-static ` +opencv:x86-uwp boost:x86-uwp --keep-going "--x-xunit=TEST-internal-ci.xml" if (-not $?) { throw $? } - -./vcpkg.exe install opencv:x86-uwp boost:x86-uwp -if (-not $?) { throw $? } - -# ./vcpkg.exe install folly:x64-windows -# if (-not $?) { throw $? } diff --git a/scripts/ports.cmake b/scripts/ports.cmake index 8b4d17d80..ef06a4d65 100644 --- a/scripts/ports.cmake +++ b/scripts/ports.cmake @@ -108,10 +108,12 @@ elseif(CMD MATCHES "^CREATE$") message(STATUS "If this is not desired, delete the file and ${NATIVE_VCPKG_ROOT_DIR}\\ports\\${PORT}") else() include(vcpkg_download_distfile) - file(DOWNLOAD ${URL} ${DOWNLOADS}/${FILENAME} STATUS error_code) - if(NOT error_code MATCHES "0;") - message(FATAL_ERROR "Error downloading file: ${error_code}") - endif() + set(_VCPKG_INTERNAL_NO_HASH_CHECK "TRUE") + vcpkg_download_distfile(ARCHIVE + URLS ${URL} + FILENAME ${FILENAME} + ) + set(_VCPKG_INTERNAL_NO_HASH_CHECK "FALSE") endif() file(SHA512 ${DOWNLOADS}/${FILENAME} SHA512) diff --git a/toolsrc/CMakeLists.txt b/toolsrc/CMakeLists.txt new file mode 100644 index 000000000..51578e4e4 --- /dev/null +++ b/toolsrc/CMakeLists.txt @@ -0,0 +1,25 @@ +cmake_minimum_required(VERSION 3.3)
+project(vcpkg CXX)
+
+add_compile_options(-std=c++1z)
+
+if(CMAKE_COMPILER_IS_GNUXX)
+ set(GCC 1)
+elseif(CMAKE_CXX_COMPILER_ID MATCHES "[Cc]lang")
+ set(CLANG 1)
+endif()
+
+file(GLOB_RECURSE VCPKGLIB_SOURCES src/vcpkg/*.cpp)
+
+add_library(vcpkglib STATIC ${VCPKGLIB_SOURCES})
+target_compile_definitions(vcpkglib PRIVATE -DDISABLE_METRICS=0)
+target_include_directories(vcpkglib PUBLIC include)
+
+if(GCC)
+ target_link_libraries(vcpkglib PUBLIC stdc++fs)
+elseif(CLANG)
+ target_link_libraries(vcpkglib PUBLIC c++experimental)
+endif()
+
+add_executable(vcpkg src/vcpkg.cpp)
+target_link_libraries(vcpkg PRIVATE vcpkglib)
diff --git a/toolsrc/VERSION.txt b/toolsrc/VERSION.txt index f439c6467..2f0f54a23 100644 --- a/toolsrc/VERSION.txt +++ b/toolsrc/VERSION.txt @@ -1 +1 @@ -"0.0.93"
\ No newline at end of file +"0.0.99"
\ No newline at end of file diff --git a/toolsrc/include/pch.h b/toolsrc/include/pch.h index 5c31fbbd1..683bef171 100644 --- a/toolsrc/include/pch.h +++ b/toolsrc/include/pch.h @@ -41,6 +41,7 @@ #include <map> #include <memory> #include <mutex> +#include <random> #include <regex> #include <set> #include <stdexcept> diff --git a/toolsrc/include/tests.pch.h b/toolsrc/include/tests.pch.h new file mode 100644 index 000000000..5c00fca4a --- /dev/null +++ b/toolsrc/include/tests.pch.h @@ -0,0 +1,19 @@ +#pragma once + +#include <CppUnitTest.h> + +#include <vcpkg/base/chrono.h> +#include <vcpkg/base/sortedvector.h> +#include <vcpkg/base/strings.h> +#include <vcpkg/base/util.h> +#include <vcpkg/binaryparagraph.h> +#include <vcpkg/dependencies.h> +#include <vcpkg/packagespec.h> +#include <vcpkg/packagespecparseresult.h> +#include <vcpkg/paragraphs.h> +#include <vcpkg/sourceparagraph.h> +#include <vcpkg/statusparagraph.h> +#include <vcpkg/statusparagraphs.h> +#include <vcpkg/triplet.h> +#include <vcpkg/update.h> +#include <vcpkg/vcpkgcmdarguments.h> diff --git a/toolsrc/include/tests.utils.h b/toolsrc/include/tests.utils.h new file mode 100644 index 000000000..485b8c294 --- /dev/null +++ b/toolsrc/include/tests.utils.h @@ -0,0 +1,26 @@ +#pragma once + +#include <CppUnitTest.h> + +#include <vcpkg/dependencies.h> +#include <vcpkg/packagespec.h> +#include <vcpkg/packagespecparseresult.h> +#include <vcpkg/statusparagraph.h> + +#include <memory> + +namespace Microsoft::VisualStudio::CppUnitTestFramework +{ + std::wstring ToString(const vcpkg::Dependencies::InstallPlanType& t); + std::wstring ToString(const vcpkg::Dependencies::RequestType& t); + std::wstring ToString(const vcpkg::PackageSpecParseResult& t); + std::wstring ToString(const vcpkg::PackageSpec& t); +} + +std::unique_ptr<vcpkg::StatusParagraph> make_status_pgh(const char* name, + const char* depends = "", + const char* triplet = "x86-windows"); +std::unique_ptr<vcpkg::StatusParagraph> make_status_feature_pgh(const char* name, + const char* feature, + const char* depends = "", + const char* triplet = "x86-windows");
\ No newline at end of file diff --git a/toolsrc/include/vcpkg/base/chrono.h b/toolsrc/include/vcpkg/base/chrono.h index b525852f2..4291115f7 100644 --- a/toolsrc/include/vcpkg/base/chrono.h +++ b/toolsrc/include/vcpkg/base/chrono.h @@ -2,27 +2,65 @@ #include <chrono> #include <string> +#include <time.h> +#include <vcpkg/base/optional.h> namespace vcpkg::Chrono { class ElapsedTime { - public: - static ElapsedTime create_started(); + using duration = std::chrono::high_resolution_clock::time_point::duration; - constexpr ElapsedTime() : m_start_tick() {} + public: + constexpr ElapsedTime() : m_duration() {} + constexpr ElapsedTime(duration d) : m_duration(d) {} template<class TimeUnit> - TimeUnit elapsed() const + TimeUnit as() const + { + return std::chrono::duration_cast<TimeUnit>(m_duration); + } + + std::string to_string() const; + + private: + std::chrono::high_resolution_clock::time_point::duration m_duration; + }; + + class ElapsedTimer + { + public: + static ElapsedTimer create_started(); + + constexpr ElapsedTimer() : m_start_tick() {} + + ElapsedTime elapsed() const { - return std::chrono::duration_cast<TimeUnit>(std::chrono::high_resolution_clock::now() - this->m_start_tick); + return ElapsedTime(std::chrono::high_resolution_clock::now() - this->m_start_tick); } - double microseconds() const { return elapsed<std::chrono::duration<double, std::micro>>().count(); } + double microseconds() const { return elapsed().as<std::chrono::duration<double, std::micro>>().count(); } std::string to_string() const; private: std::chrono::high_resolution_clock::time_point m_start_tick; }; + + class CTime + { + public: + static Optional<CTime> get_current_date_time(); + static Optional<CTime> parse(CStringView str); + + constexpr CTime() : m_tm{0} {} + explicit constexpr CTime(tm t) : m_tm{t} {} + + std::string to_string() const; + + std::chrono::system_clock::time_point to_time_point() const; + + private: + mutable tm m_tm; + }; } diff --git a/toolsrc/include/vcpkg/base/cstringview.h b/toolsrc/include/vcpkg/base/cstringview.h index 342455402..0441bc573 100644 --- a/toolsrc/include/vcpkg/base/cstringview.h +++ b/toolsrc/include/vcpkg/base/cstringview.h @@ -63,6 +63,8 @@ namespace vcpkg inline bool operator!=(const std::string& l, const CStringView& r) { return l != r.c_str(); } + inline std::string operator+(std::string&& l, const CStringView& r) { return std::move(l) + r.c_str(); } + inline const char* to_printf_arg(const CStringView string_view) { return string_view.c_str(); } static_assert(sizeof(CStringView) == sizeof(void*), "CStringView must be a simple wrapper around char*"); diff --git a/toolsrc/include/vcpkg/base/files.h b/toolsrc/include/vcpkg/base/files.h index 63cf3c6fd..51a12ceba 100644 --- a/toolsrc/include/vcpkg/base/files.h +++ b/toolsrc/include/vcpkg/base/files.h @@ -15,6 +15,7 @@ namespace fs using stdfs::copy_options; using stdfs::file_status; using stdfs::path; + using stdfs::u8path; inline bool is_regular_file(file_status s) { return stdfs::is_regular_file(s); } inline bool is_directory(file_status s) { return stdfs::is_directory(s); } diff --git a/toolsrc/include/vcpkg/base/lineinfo.h b/toolsrc/include/vcpkg/base/lineinfo.h index 62973462a..e7e8c3031 100644 --- a/toolsrc/include/vcpkg/base/lineinfo.h +++ b/toolsrc/include/vcpkg/base/lineinfo.h @@ -9,7 +9,7 @@ namespace vcpkg int line_number; const char* file_name; - constexpr LineInfo() : line_number(0), file_name(nullptr) {} + constexpr LineInfo() : line_number(0), file_name("") {} constexpr LineInfo(const int lineno, const char* filename) : line_number(lineno), file_name(filename) {} std::string to_string() const; diff --git a/toolsrc/include/vcpkg/base/optional.h b/toolsrc/include/vcpkg/base/optional.h index ff7a210c7..aa9e480fd 100644 --- a/toolsrc/include/vcpkg/base/optional.h +++ b/toolsrc/include/vcpkg/base/optional.h @@ -11,59 +11,98 @@ namespace vcpkg const static constexpr NullOpt nullopt{0}; + namespace details + { + template<class T> + struct OptionalStorage + { + constexpr OptionalStorage() : m_is_present(false), m_t() {} + constexpr OptionalStorage(const T& t) : m_is_present(true), m_t(t) {} + constexpr OptionalStorage(T&& t) : m_is_present(true), m_t(std::move(t)) {} + + constexpr bool has_value() const { return m_is_present; } + + const T& value() const { return this->m_t; } + T& value() { return this->m_t; } + + private: + bool m_is_present; + T m_t; + }; + + template<class T> + struct OptionalStorage<T&> + { + constexpr OptionalStorage() : m_t(nullptr) {} + constexpr OptionalStorage(T& t) : m_t(&t) {} + + constexpr bool has_value() const { return m_t != nullptr; } + + T& value() const { return *this->m_t; } + + private: + T* m_t; + }; + } + template<class T> - class Optional + struct Optional { - public: - constexpr Optional() : m_is_present(false), m_t() {} + constexpr Optional() {} // Constructors are intentionally implicit - constexpr Optional(NullOpt) : m_is_present(false), m_t() {} + constexpr Optional(NullOpt) {} - Optional(const T& t) : m_is_present(true), m_t(t) {} + Optional(const T& t) : m_base(t) {} - Optional(T&& t) : m_is_present(true), m_t(std::move(t)) {} + template<class = std::enable_if_t<!std::is_reference<T>::value>> + Optional(T&& t) : m_base(std::move(t)) + { + } T&& value_or_exit(const LineInfo& line_info) && { this->exit_if_null(line_info); - return std::move(this->m_t); + return std::move(this->m_base.value()); } const T& value_or_exit(const LineInfo& line_info) const& { this->exit_if_null(line_info); - return this->m_t; + return this->m_base.value(); } - constexpr explicit operator bool() const { return this->m_is_present; } + constexpr explicit operator bool() const { return this->m_base.has_value(); } - constexpr bool has_value() const { return m_is_present; } + constexpr bool has_value() const { return this->m_base.has_value(); } template<class U> T value_or(U&& default_value) const& { - return bool(*this) ? this->m_t : static_cast<T>(std::forward<U>(default_value)); + return this->m_base.has_value() ? this->m_base.value() : static_cast<T>(std::forward<U>(default_value)); } template<class U> T value_or(U&& default_value) && { - return bool(*this) ? std::move(this->m_t) : static_cast<T>(std::forward<U>(default_value)); + return this->m_base.has_value() ? std::move(this->m_base.value()) + : static_cast<T>(std::forward<U>(default_value)); } - const T* get() const { return bool(*this) ? &this->m_t : nullptr; } + typename std::add_pointer<const T>::type get() const + { + return this->m_base.has_value() ? &this->m_base.value() : nullptr; + } - T* get() { return bool(*this) ? &this->m_t : nullptr; } + typename std::add_pointer<T>::type get() { return this->m_base.has_value() ? &this->m_base.value() : nullptr; } private: void exit_if_null(const LineInfo& line_info) const { - Checks::check_exit(line_info, this->m_is_present, "Value was null"); + Checks::check_exit(line_info, this->m_base.has_value(), "Value was null"); } - bool m_is_present; - T m_t; + details::OptionalStorage<T> m_base; }; template<class U> diff --git a/toolsrc/include/vcpkg/base/sortedvector.h b/toolsrc/include/vcpkg/base/sortedvector.h index 62808cc2f..fbb7e5a5a 100644 --- a/toolsrc/include/vcpkg/base/sortedvector.h +++ b/toolsrc/include/vcpkg/base/sortedvector.h @@ -44,6 +44,8 @@ namespace vcpkg size_type size() const { return this->m_data.size(); } + const T& operator[](int i) const { return this->m_data[i]; } + private: std::vector<T> m_data; }; diff --git a/toolsrc/include/vcpkg/base/span.h b/toolsrc/include/vcpkg/base/span.h index 6be546351..158f1ac74 100644 --- a/toolsrc/include/vcpkg/base/span.h +++ b/toolsrc/include/vcpkg/base/span.h @@ -57,4 +57,16 @@ namespace vcpkg {
return {v.data(), v.size()};
}
+
+ template<class T>
+ constexpr T* begin(Span<T> sp)
+ {
+ return sp.begin();
+ }
+
+ template<class T>
+ constexpr T* end(Span<T> sp)
+ {
+ return sp.end();
+ }
}
\ No newline at end of file diff --git a/toolsrc/include/vcpkg/base/strings.h b/toolsrc/include/vcpkg/base/strings.h index 5b03286de..ee1b2fc28 100644 --- a/toolsrc/include/vcpkg/base/strings.h +++ b/toolsrc/include/vcpkg/base/strings.h @@ -78,9 +78,7 @@ namespace vcpkg::Strings std::string replace_all(std::string&& s, const std::string& search, const std::string& rep); - void trim(std::string* s); - - std::string trimmed(const std::string& s); + std::string trim(std::string&& s); void trim_all_and_remove_whitespace_strings(std::vector<std::string>* strings); diff --git a/toolsrc/include/vcpkg/base/system.h b/toolsrc/include/vcpkg/base/system.h index a696bf3ae..31034f6b4 100644 --- a/toolsrc/include/vcpkg/base/system.h +++ b/toolsrc/include/vcpkg/base/system.h @@ -10,6 +10,28 @@ namespace vcpkg::System fs::path get_exe_path_of_current_process(); + struct CMakeVariable + { + CMakeVariable(const CStringView varname, const char* varvalue); + CMakeVariable(const CStringView varname, const std::string& varvalue); + CMakeVariable(const CStringView varname, const fs::path& path); + + std::string s; + }; + + std::string make_cmake_cmd(const fs::path& cmake_exe, + const fs::path& cmake_script, + const std::vector<CMakeVariable>& pass_variables); + + struct PowershellParameter + { + PowershellParameter(const CStringView varname, const char* varvalue); + PowershellParameter(const CStringView varname, const std::string& varvalue); + PowershellParameter(const CStringView varname, const fs::path& path); + + std::string s; + }; + struct ExitCodeAndOutput { int exit_code; @@ -22,7 +44,13 @@ namespace vcpkg::System ExitCodeAndOutput cmd_execute_and_capture_output(const CStringView cmd_line); - ExitCodeAndOutput powershell_execute_and_capture_output(const fs::path& script_path, const CStringView args = ""); + void powershell_execute(const std::string& title, + const fs::path& script_path, + const std::vector<PowershellParameter>& parameters = {}); + + std::string powershell_execute_and_capture_output(const std::string& title, + const fs::path& script_path, + const std::vector<PowershellParameter>& parameters = {}); enum class Color { diff --git a/toolsrc/include/vcpkg/base/util.h b/toolsrc/include/vcpkg/base/util.h index d5db6b6ee..6c05a3a9e 100644 --- a/toolsrc/include/vcpkg/base/util.h +++ b/toolsrc/include/vcpkg/base/util.h @@ -6,6 +6,8 @@ #include <utility> #include <vector> +#include <vcpkg/base/optional.h> + namespace vcpkg::Util { template<class Container> @@ -20,8 +22,17 @@ namespace vcpkg::Util } } + namespace Sets + { + template<class Container> + bool contains(const Container& container, const ElementT<Container>& item) + { + return container.find(item) != container.cend(); + } + } + template<class Cont, class Func> - using FmapOut = decltype(std::declval<Func>()(*begin(std::declval<Cont>()))); + using FmapOut = decltype(std::declval<Func&>()(*begin(std::declval<Cont&>()))); template<class Cont, class Func, class Out = FmapOut<Cont, Func>> std::vector<Out> fmap(Cont&& xs, Func&& f) @@ -108,6 +119,22 @@ namespace vcpkg::Util } } + template<class Range> + void sort(Range& cont) + { + using std::begin; + using std::end; + std::sort(begin(cont), end(cont)); + } + + template<class Range1, class Range2> + bool all_equal(const Range1& r1, const Range2& r2) + { + using std::begin; + using std::end; + return std::equal(begin(r1), end(r1), begin(r2), end(r2)); + } + template<class AssocContainer, class K = std::decay_t<decltype(begin(std::declval<AssocContainer>())->first)>> std::vector<K> extract_keys(AssocContainer&& input_map) { @@ -163,4 +190,19 @@ namespace vcpkg::Util std::unique_lock<std::mutex> m_lock; T& m_ptr; }; + + namespace Enum + { + template<class E> + E to_enum(bool b) + { + return b ? E::YES : E::NO; + } + + template<class E> + bool to_bool(E e) + { + return e == E::YES; + } + } } diff --git a/toolsrc/include/vcpkg/binaryparagraph.h b/toolsrc/include/vcpkg/binaryparagraph.h index 7eb50a6d7..f59bf693a 100644 --- a/toolsrc/include/vcpkg/binaryparagraph.h +++ b/toolsrc/include/vcpkg/binaryparagraph.h @@ -30,6 +30,7 @@ namespace vcpkg std::string feature; std::vector<std::string> default_features; std::vector<std::string> depends; + std::string abi; }; struct BinaryControlFile diff --git a/toolsrc/include/vcpkg/build.h b/toolsrc/include/vcpkg/build.h index 774e25922..18408e207 100644 --- a/toolsrc/include/vcpkg/build.h +++ b/toolsrc/include/vcpkg/build.h @@ -18,10 +18,10 @@ namespace vcpkg::Build { namespace Command { - void perform_and_exit(const FullPackageSpec& full_spec, - const fs::path& port_dir, - const std::unordered_set<std::string>& options, - const VcpkgPaths& paths); + void perform_and_exit_ex(const FullPackageSpec& full_spec, + const fs::path& port_dir, + const ParsedArguments& options, + const VcpkgPaths& paths); void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths, const Triplet& default_triplet); } @@ -32,30 +32,29 @@ namespace vcpkg::Build YES }; - inline UseHeadVersion to_use_head_version(const bool value) - { - return value ? UseHeadVersion::YES : UseHeadVersion::NO; - } - - inline bool to_bool(const UseHeadVersion value) { return value == UseHeadVersion::YES; } - enum class AllowDownloads { NO = 0, YES }; - inline AllowDownloads to_allow_downloads(const bool value) + enum class CleanBuildtrees { - return value ? AllowDownloads::YES : AllowDownloads::NO; - } + NO = 0, + YES + }; - inline bool to_bool(const AllowDownloads value) { return value == AllowDownloads::YES; } + enum class ConfigurationType + { + DEBUG, + RELEASE, + }; struct BuildPackageOptions { UseHeadVersion use_head_version; AllowDownloads allow_downloads; + CleanBuildtrees clean_buildtrees; }; enum class BuildResult @@ -65,15 +64,17 @@ namespace vcpkg::Build BUILD_FAILED, POST_BUILD_CHECKS_FAILED, FILE_CONFLICTS, - CASCADED_DUE_TO_MISSING_DEPENDENCIES + CASCADED_DUE_TO_MISSING_DEPENDENCIES, + EXCLUDED, }; - static constexpr std::array<BuildResult, 5> BUILD_RESULT_VALUES = { + static constexpr std::array<BuildResult, 6> BUILD_RESULT_VALUES = { BuildResult::SUCCEEDED, BuildResult::BUILD_FAILED, BuildResult::POST_BUILD_CHECKS_FAILED, BuildResult::FILE_CONFLICTS, - BuildResult::CASCADED_DUE_TO_MISSING_DEPENDENCIES}; + BuildResult::CASCADED_DUE_TO_MISSING_DEPENDENCIES, + BuildResult::EXCLUDED}; const std::string& to_string(const BuildResult build_result); std::string create_error_message(const BuildResult build_result, const PackageSpec& spec); @@ -94,14 +95,21 @@ namespace vcpkg::Build std::string cmake_system_version; Optional<std::string> platform_toolset; Optional<fs::path> visual_studio_path; + Optional<std::string> external_toolchain_file; + Optional<ConfigurationType> build_type; }; std::string make_build_env_cmd(const PreBuildInfo& pre_build_info, const Toolset& toolset); struct ExtendedBuildResult { + ExtendedBuildResult(BuildResult code); + ExtendedBuildResult(BuildResult code, std::vector<PackageSpec>&& unmet_deps); + ExtendedBuildResult(BuildResult code, std::unique_ptr<BinaryControlFile>&& bcf); + BuildResult code; std::vector<PackageSpec> unmet_dependencies; + std::unique_ptr<BinaryControlFile> binary_control_file; }; struct BuildPackageConfig diff --git a/toolsrc/include/vcpkg/commands.h b/toolsrc/include/vcpkg/commands.h index d9ebad2c4..74fd80c03 100644 --- a/toolsrc/include/vcpkg/commands.h +++ b/toolsrc/include/vcpkg/commands.h @@ -23,16 +23,19 @@ namespace vcpkg::Commands namespace CI { + extern const CommandStructure COMMAND_STRUCTURE; void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths, const Triplet& default_triplet); } namespace Env { + extern const CommandStructure COMMAND_STRUCTURE; void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths, const Triplet& default_triplet); } namespace Create { + extern const CommandStructure COMMAND_STRUCTURE; void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths); } @@ -49,16 +52,19 @@ namespace vcpkg::Commands namespace Search { + extern const CommandStructure COMMAND_STRUCTURE; void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths); } namespace List { + extern const CommandStructure COMMAND_STRUCTURE; void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths); } namespace Owns { + extern const CommandStructure COMMAND_STRUCTURE; void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths); } @@ -99,6 +105,7 @@ namespace vcpkg::Commands namespace Contact { + extern const CommandStructure COMMAND_STRUCTURE; const std::string& email(); void perform_and_exit(const VcpkgCmdArguments& args); } diff --git a/toolsrc/include/vcpkg/dependencies.h b/toolsrc/include/vcpkg/dependencies.h index 585338ae2..5411ee166 100644 --- a/toolsrc/include/vcpkg/dependencies.h +++ b/toolsrc/include/vcpkg/dependencies.h @@ -3,6 +3,7 @@ #include <vcpkg/base/graphs.h> #include <vcpkg/base/optional.h> #include <vcpkg/base/util.h> +#include <vcpkg/build.h> #include <vcpkg/packagespec.h> #include <vcpkg/statusparagraphs.h> #include <vcpkg/vcpkgpaths.h> @@ -18,6 +19,9 @@ namespace vcpkg::Dependencies AUTO_SELECTED }; + std::string to_output_string(RequestType request_type, + const CStringView s, + const Build::BuildPackageOptions& options); std::string to_output_string(RequestType request_type, const CStringView s); struct AnyParagraph @@ -38,7 +42,8 @@ namespace vcpkg::Dependencies UNKNOWN, BUILD_AND_INSTALL, INSTALL, - ALREADY_INSTALLED + ALREADY_INSTALLED, + EXCLUDED }; struct InstallPlanAction : Util::MoveOnlyBase @@ -62,6 +67,7 @@ namespace vcpkg::Dependencies AnyParagraph any_paragraph; InstallPlanType plan_type; RequestType request_type; + Build::BuildPackageOptions build_options; std::unordered_set<std::string> feature_list; }; diff --git a/toolsrc/include/vcpkg/export.h b/toolsrc/include/vcpkg/export.h index f3285e187..eb99b4fb1 100644 --- a/toolsrc/include/vcpkg/export.h +++ b/toolsrc/include/vcpkg/export.h @@ -4,6 +4,8 @@ namespace vcpkg::Export { + extern const CommandStructure COMMAND_STRUCTURE; + void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths, const Triplet& default_triplet); void export_integration_files(const fs::path& raw_exported_dir_path, const VcpkgPaths& paths); diff --git a/toolsrc/include/vcpkg/globalstate.h b/toolsrc/include/vcpkg/globalstate.h index 7cea361cf..360d3f43e 100644 --- a/toolsrc/include/vcpkg/globalstate.h +++ b/toolsrc/include/vcpkg/globalstate.h @@ -9,11 +9,13 @@ namespace vcpkg { struct GlobalState { - static Util::LockGuarded<Chrono::ElapsedTime> timer; + static Util::LockGuarded<Chrono::ElapsedTimer> timer; + static Util::LockGuarded<std::string> g_surveydate; + static std::atomic<bool> debugging; static std::atomic<bool> feature_packages; static std::atomic<int> g_init_console_cp; static std::atomic<int> g_init_console_output_cp; }; -}
\ No newline at end of file +} diff --git a/toolsrc/include/vcpkg/help.h b/toolsrc/include/vcpkg/help.h index 39ad6912d..73549efd7 100644 --- a/toolsrc/include/vcpkg/help.h +++ b/toolsrc/include/vcpkg/help.h @@ -7,13 +7,13 @@ namespace vcpkg::Help { + extern const CommandStructure COMMAND_STRUCTURE; + void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths); void help_topic_valid_triplet(const VcpkgPaths& paths); void print_usage(); - void print_example(const std::string& command_and_arguments); - std::string create_example_string(const std::string& command_and_arguments); } diff --git a/toolsrc/include/vcpkg/install.h b/toolsrc/include/vcpkg/install.h index 809befb16..2e92764dc 100644 --- a/toolsrc/include/vcpkg/install.h +++ b/toolsrc/include/vcpkg/install.h @@ -1,5 +1,6 @@ #pragma once +#include <vcpkg/base/chrono.h> #include <vcpkg/build.h> #include <vcpkg/dependencies.h> #include <vcpkg/vcpkgcmdarguments.h> @@ -19,11 +20,15 @@ namespace vcpkg::Install struct SpecSummary { - explicit SpecSummary(const PackageSpec& spec); + SpecSummary(const PackageSpec& spec, const Dependencies::AnyAction* action); + + const BinaryParagraph* get_binary_paragraph() const; PackageSpec spec; - Build::BuildResult result; - std::string timing; + Build::ExtendedBuildResult build_result; + vcpkg::Chrono::ElapsedTime timing; + + const Dependencies::AnyAction* action; }; struct InstallSummary @@ -32,6 +37,7 @@ namespace vcpkg::Install std::string total_elapsed_time; void print() const; + std::string xunit_results() const; }; struct InstallDir @@ -51,10 +57,9 @@ namespace vcpkg::Install const fs::path& listfile() const; }; - Build::BuildResult perform_install_plan_action(const VcpkgPaths& paths, - const Dependencies::InstallPlanAction& action, - const Build::BuildPackageOptions& install_plan_options, - StatusParagraphs& status_db); + Build::ExtendedBuildResult perform_install_plan_action(const VcpkgPaths& paths, + const Dependencies::InstallPlanAction& action, + StatusParagraphs& status_db); enum class InstallResult { @@ -62,13 +67,14 @@ namespace vcpkg::Install SUCCESS, }; + std::vector<std::string> get_all_port_names(const VcpkgPaths& paths); + void install_files_and_write_listfile(Files::Filesystem& fs, const fs::path& source_dir, const InstallDir& dirs); InstallResult install_package(const VcpkgPaths& paths, const BinaryControlFile& binary_paragraph, StatusParagraphs* status_db); InstallSummary perform(const std::vector<Dependencies::AnyAction>& action_plan, - const Build::BuildPackageOptions& install_plan_options, const KeepGoing keep_going, const VcpkgPaths& paths, StatusParagraphs& status_db); diff --git a/toolsrc/include/vcpkg/metrics.h b/toolsrc/include/vcpkg/metrics.h index f73c636cf..ee6f8eb51 100644 --- a/toolsrc/include/vcpkg/metrics.h +++ b/toolsrc/include/vcpkg/metrics.h @@ -11,7 +11,7 @@ namespace vcpkg::Metrics void set_send_metrics(bool should_send_metrics); void set_print_metrics(bool should_print_metrics); void set_user_information(const std::string& user_id, const std::string& first_use_time); - void init_user_information(std::string& user_id, std::string& first_use_time); + static void init_user_information(std::string& user_id, std::string& first_use_time); void track_metric(const std::string& name, double value); void track_property(const std::string& name, const std::string& value); @@ -22,6 +22,6 @@ namespace vcpkg::Metrics extern Util::LockGuarded<Metrics> g_metrics; - std::string get_SQM_user(); + std::string get_MAC_user(); bool get_compiled_metrics_enabled(); } diff --git a/toolsrc/include/vcpkg/packagespec.h b/toolsrc/include/vcpkg/packagespec.h index 60c99782e..0487ae6b8 100644 --- a/toolsrc/include/vcpkg/packagespec.h +++ b/toolsrc/include/vcpkg/packagespec.h @@ -20,6 +20,8 @@ namespace vcpkg static ExpectedT<PackageSpec, PackageSpecParseResult> from_name_and_triplet(const std::string& name, const Triplet& triplet); + static std::vector<PackageSpec> to_package_specs(const std::vector<std::string>& ports, const Triplet& triplet); + const std::string& name() const; const Triplet& triplet() const; @@ -48,6 +50,22 @@ namespace vcpkg static std::vector<FeatureSpec> from_strings_and_triplet(const std::vector<std::string>& depends, const Triplet& t); + bool operator<(const FeatureSpec& other) const + { + if (name() < other.name()) return true; + if (name() > other.name()) return false; + if (feature() < other.feature()) return true; + if (feature() > other.feature()) return false; + return triplet() < other.triplet(); + } + + bool operator==(const FeatureSpec& other) const + { + return triplet() == other.triplet() && name() == other.name() && feature() == other.feature(); + } + + bool operator!=(const FeatureSpec& other) const { return !(*this == other); } + private: PackageSpec m_spec; std::string m_feature; diff --git a/toolsrc/include/vcpkg/postbuildlint.buildtype.h b/toolsrc/include/vcpkg/postbuildlint.buildtype.h index ff651fd7a..0b469d9a0 100644 --- a/toolsrc/include/vcpkg/postbuildlint.buildtype.h +++ b/toolsrc/include/vcpkg/postbuildlint.buildtype.h @@ -8,12 +8,6 @@ namespace vcpkg::PostBuildLint { - enum class ConfigurationType - { - DEBUG, - RELEASE, - }; - struct BuildType { enum class BackingEnum @@ -24,12 +18,12 @@ namespace vcpkg::PostBuildLint RELEASE_DYNAMIC }; - static BuildType value_of(const ConfigurationType& config, const Build::LinkageType& linkage); + static BuildType value_of(const Build::ConfigurationType& config, const Build::LinkageType& linkage); BuildType() = delete; constexpr BuildType(const BackingEnum backing_enum, - const ConfigurationType config, + const Build::ConfigurationType config, const Build::LinkageType linkage) : backing_enum(backing_enum), m_config(config), m_linkage(linkage) { @@ -37,14 +31,14 @@ namespace vcpkg::PostBuildLint constexpr operator BackingEnum() const { return backing_enum; } - const ConfigurationType& config() const; + const Build::ConfigurationType& config() const; const Build::LinkageType& linkage() const; const std::regex& crt_regex() const; const std::string& to_string() const; private: BackingEnum backing_enum; - ConfigurationType m_config; + Build::ConfigurationType m_config; Build::LinkageType m_linkage; }; @@ -55,12 +49,14 @@ namespace vcpkg::PostBuildLint static constexpr CStringView ENUM_NAME = "vcpkg::PostBuildLint::BuildType"; - static constexpr BuildType DEBUG_STATIC = {BE::DEBUG_STATIC, ConfigurationType::DEBUG, LinkageType::STATIC}; - static constexpr BuildType DEBUG_DYNAMIC = {BE::DEBUG_DYNAMIC, ConfigurationType::DEBUG, LinkageType::DYNAMIC}; + static constexpr BuildType DEBUG_STATIC = { + BE::DEBUG_STATIC, Build::ConfigurationType::DEBUG, LinkageType::STATIC}; + static constexpr BuildType DEBUG_DYNAMIC = { + BE::DEBUG_DYNAMIC, Build::ConfigurationType::DEBUG, LinkageType::DYNAMIC}; static constexpr BuildType RELEASE_STATIC = { - BE::RELEASE_STATIC, ConfigurationType::RELEASE, LinkageType::STATIC}; + BE::RELEASE_STATIC, Build::ConfigurationType::RELEASE, LinkageType::STATIC}; static constexpr BuildType RELEASE_DYNAMIC = { - BE::RELEASE_DYNAMIC, ConfigurationType::RELEASE, LinkageType::DYNAMIC}; + BE::RELEASE_DYNAMIC, Build::ConfigurationType::RELEASE, LinkageType::DYNAMIC}; static constexpr std::array<BuildType, 4> VALUES = { DEBUG_STATIC, DEBUG_DYNAMIC, RELEASE_STATIC, RELEASE_DYNAMIC}; diff --git a/toolsrc/include/vcpkg/statusparagraphs.h b/toolsrc/include/vcpkg/statusparagraphs.h index c2f3b7b8e..747a0c1ab 100644 --- a/toolsrc/include/vcpkg/statusparagraphs.h +++ b/toolsrc/include/vcpkg/statusparagraphs.h @@ -16,10 +16,10 @@ namespace vcpkg using const_iterator = container::const_reverse_iterator; const_iterator find(const PackageSpec& spec) const { return find(spec.name(), spec.triplet()); } - const_iterator find(const std::string& name, const Triplet& triplet) const; - iterator find(const std::string& name, const Triplet& triplet); + iterator find(const std::string& name, const Triplet& triplet, const std::string& feature = ""); + const_iterator find(const std::string& name, const Triplet& triplet, const std::string& feature = "") const; + std::vector<std::unique_ptr<StatusParagraph>*> find_all(const std::string& name, const Triplet& triplet); - iterator find(const std::string& name, const Triplet& triplet, const std::string& feature); const_iterator find_installed(const PackageSpec& spec) const { diff --git a/toolsrc/include/vcpkg/triplet.h b/toolsrc/include/vcpkg/triplet.h index 50d731593..2cfc2d02a 100644 --- a/toolsrc/include/vcpkg/triplet.h +++ b/toolsrc/include/vcpkg/triplet.h @@ -24,6 +24,7 @@ namespace vcpkg size_t hash_code() const; bool operator==(const Triplet& other) const; + bool operator<(const Triplet& other) const { return canonical_name() < other.canonical_name(); } private: static const TripletInstance DEFAULT_INSTANCE; diff --git a/toolsrc/include/vcpkg/update.h b/toolsrc/include/vcpkg/update.h index e7303d1b0..7587b9eb2 100644 --- a/toolsrc/include/vcpkg/update.h +++ b/toolsrc/include/vcpkg/update.h @@ -16,6 +16,7 @@ namespace vcpkg::Update VersionDiff version_diff; }; - std::vector<OutdatedPackage> find_outdated_packages(const VcpkgPaths& paths, const StatusParagraphs& status_db); + std::vector<OutdatedPackage> find_outdated_packages(const std::map<std::string, VersionT>& src_names_to_versions, + const StatusParagraphs& status_db); void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths); }
\ No newline at end of file diff --git a/toolsrc/include/vcpkg/userconfig.h b/toolsrc/include/vcpkg/userconfig.h new file mode 100644 index 000000000..63b8e5481 --- /dev/null +++ b/toolsrc/include/vcpkg/userconfig.h @@ -0,0 +1,20 @@ +#pragma once + +#include <string> +#include <vcpkg/base/files.h> + +namespace vcpkg +{ + struct UserConfig + { + std::string user_id; + std::string user_time; + std::string user_mac; + + std::string last_completed_survey; + + static UserConfig try_read_data(const Files::Filesystem& fs); + + void try_write_data(Files::Filesystem& fs) const; + }; +} diff --git a/toolsrc/include/vcpkg/vcpkgcmdarguments.h b/toolsrc/include/vcpkg/vcpkgcmdarguments.h index d9895f4b8..93eeb6ef5 100644 --- a/toolsrc/include/vcpkg/vcpkgcmdarguments.h +++ b/toolsrc/include/vcpkg/vcpkgcmdarguments.h @@ -17,13 +17,49 @@ namespace vcpkg std::unordered_map<std::string, std::string> settings; }; - struct VcpkgCmdArguments + struct VcpkgPaths; + + struct CommandSwitch + { + std::string name; + CStringView short_help_text; + }; + + struct CommandSetting { + std::string name; + CStringView short_help_text; + }; + + struct CommandOptionsStructure + { + Span<const CommandSwitch> switches; + Span<const CommandSetting> settings; + }; + + struct CommandStructure + { + std::string example_text; + + size_t minimum_arity; + size_t maximum_arity; + + CommandOptionsStructure options; + + std::vector<std::string> (*valid_arguments)(const VcpkgPaths& paths); + }; + + void display_usage(const CommandStructure& command_structure); + #if defined(_WIN32) - static VcpkgCmdArguments create_from_command_line(const int argc, const wchar_t* const* const argv); + using CommandLineCharType = wchar_t; #else - static VcpkgCmdArguments create_from_command_line(const int argc, const char* const* const argv); + using CommandLineCharType = char; #endif + + struct VcpkgCmdArguments + { + static VcpkgCmdArguments create_from_command_line(const int argc, const CommandLineCharType* const* const argv); static VcpkgCmdArguments create_from_arg_sequence(const std::string* arg_begin, const std::string* arg_end); std::unique_ptr<std::string> vcpkg_root_dir; @@ -34,38 +70,10 @@ namespace vcpkg std::string command; std::vector<std::string> command_arguments; - std::unordered_set<std::string> check_and_get_optional_command_arguments( - const std::vector<std::string>& valid_options) const - { - return std::move(check_and_get_optional_command_arguments(valid_options, {}).switches); - } - - ParsedArguments check_and_get_optional_command_arguments(const std::vector<std::string>& valid_switches, - const std::vector<std::string>& valid_settings) const; - - void check_max_arg_count(const size_t expected_arg_count) const; - void check_max_arg_count(const size_t expected_arg_count, const std::string& example_text) const; - void check_min_arg_count(const size_t expected_arg_count) const; - void check_min_arg_count(const size_t expected_arg_count, const std::string& example_text) const; - void check_exact_arg_count(const size_t expected_arg_count) const; - void check_exact_arg_count(const size_t expected_arg_count, const std::string& example_text) const; + + ParsedArguments parse_arguments(const CommandStructure& command_structure) const; private: std::unordered_map<std::string, Optional<std::string>> optional_command_arguments; }; - - struct VcpkgPaths; - - struct CommandStructure - { - CStringView example_text; - - size_t minimum_arity; - size_t maximum_arity; - - Span<const std::string> switches; - Span<const std::string> settings; - - std::vector<std::string> (*valid_arguments)(const VcpkgPaths& paths); - }; } diff --git a/toolsrc/include/vcpkg/vcpkglib.h b/toolsrc/include/vcpkg/vcpkglib.h index 9a7fdb861..3c8e676bf 100644 --- a/toolsrc/include/vcpkg/vcpkglib.h +++ b/toolsrc/include/vcpkg/vcpkglib.h @@ -20,18 +20,5 @@ namespace vcpkg std::vector<StatusParagraphAndAssociatedFiles> get_installed_files(const VcpkgPaths& paths, const StatusParagraphs& status_db); - struct CMakeVariable - { - CMakeVariable(const CStringView varname, const char* varvalue); - CMakeVariable(const CStringView varname, const std::string& varvalue); - CMakeVariable(const CStringView varname, const fs::path& path); - - std::string s; - }; - - std::string make_cmake_cmd(const fs::path& cmake_exe, - const fs::path& cmake_script, - const std::vector<CMakeVariable>& pass_variables); - - std::string shorten_text(const std::string& desc, size_t length); + std::string shorten_text(const std::string& desc, const size_t length); } // namespace vcpkg diff --git a/toolsrc/include/vcpkg/vcpkgpaths.h b/toolsrc/include/vcpkg/vcpkgpaths.h index 781dabd1a..33a9b0067 100644 --- a/toolsrc/include/vcpkg/vcpkgpaths.h +++ b/toolsrc/include/vcpkg/vcpkgpaths.h @@ -26,6 +26,11 @@ namespace vcpkg std::vector<ToolsetArchOption> supported_architectures; }; + namespace Build + { + struct PreBuildInfo; + } + struct VcpkgPaths { static Expected<VcpkgPaths> create(const fs::path& vcpkg_root_dir); @@ -67,10 +72,9 @@ namespace vcpkg /// <summary>Retrieve a toolset matching a VS version</summary> /// <remarks> - /// Valid version strings are "v140", "v141", and "". Empty string gets the latest. + /// Valid version strings are "v120", "v140", "v141", and "". Empty string gets the latest. /// </remarks> - const Toolset& get_toolset(const Optional<std::string>& toolset_version, - const Optional<fs::path>& visual_studio_path) const; + const Toolset& get_toolset(const Build::PreBuildInfo& prebuildinfo) const; Files::Filesystem& get_filesystem() const; @@ -83,5 +87,6 @@ namespace vcpkg Lazy<fs::path> ifw_binarycreator_exe; Lazy<fs::path> ifw_repogen_exe; Lazy<std::vector<Toolset>> toolsets; + Lazy<std::vector<Toolset>> toolsets_vs2013; }; } diff --git a/toolsrc/include/vcpkg/versiont.h b/toolsrc/include/vcpkg/versiont.h index 67efd8da3..6d8332521 100644 --- a/toolsrc/include/vcpkg/versiont.h +++ b/toolsrc/include/vcpkg/versiont.h @@ -8,8 +8,9 @@ namespace vcpkg VersionT(); VersionT(const std::string& value); - std::string to_string() const; + const std::string& to_string() const; + private: std::string value; }; diff --git a/toolsrc/src/tests.arguments.cpp b/toolsrc/src/tests.arguments.cpp index 25bf0f085..c87281fa8 100644 --- a/toolsrc/src/tests.arguments.cpp +++ b/toolsrc/src/tests.arguments.cpp @@ -1,5 +1,4 @@ -#include <CppUnitTest.h>
-#include <vcpkg/vcpkgcmdarguments.h>
+#include "tests.pch.h"
#pragma comment(lib, "version")
#pragma comment(lib, "winhttp")
@@ -34,9 +33,12 @@ namespace UnitTest1 TEST_METHOD(create_from_arg_sequence_valued_options)
{
+ std::array<CommandSetting, 1> settings = { {{"--a", ""}} };
+ CommandStructure cmdstruct = { "", 0, SIZE_MAX, {{}, settings }, nullptr };
+
std::vector<std::string> t = {"--a=b", "command", "argument"};
auto v = VcpkgCmdArguments::create_from_arg_sequence(t.data(), t.data() + t.size());
- auto opts = v.check_and_get_optional_command_arguments({}, {"--a"});
+ auto opts = v.parse_arguments(cmdstruct);
Assert::AreEqual("b", opts.settings["--a"].c_str());
Assert::AreEqual(size_t{1}, v.command_arguments.size());
Assert::AreEqual("argument", v.command_arguments[0].c_str());
@@ -45,9 +47,13 @@ namespace UnitTest1 TEST_METHOD(create_from_arg_sequence_valued_options2)
{
+ std::array<CommandSwitch, 2> switches = { {{"--a", ""}, {"--c", ""}} };
+ std::array<CommandSetting, 2> settings = { { {"--b", ""}, {"--d", ""}} };
+ CommandStructure cmdstruct = {"", 0, SIZE_MAX, {switches, settings}, nullptr};
+
std::vector<std::string> t = {"--a", "--b=c"};
auto v = VcpkgCmdArguments::create_from_arg_sequence(t.data(), t.data() + t.size());
- auto opts = v.check_and_get_optional_command_arguments({"--a", "--c"}, {"--b", "--d"});
+ auto opts = v.parse_arguments(cmdstruct);
Assert::AreEqual("c", opts.settings["--b"].c_str());
Assert::IsTrue(opts.settings.find("--d") == opts.settings.end());
Assert::IsTrue(opts.switches.find("--a") != opts.switches.end());
diff --git a/toolsrc/src/tests.chrono.cpp b/toolsrc/src/tests.chrono.cpp new file mode 100644 index 000000000..269cdca58 --- /dev/null +++ b/toolsrc/src/tests.chrono.cpp @@ -0,0 +1,41 @@ +#include "tests.pch.h" + +using namespace Microsoft::VisualStudio::CppUnitTestFramework; + +namespace Chrono = vcpkg::Chrono; + +namespace UnitTest1 +{ + class ChronoTests : public TestClass<ChronoTests> + { + TEST_METHOD(parse_time) + { + auto timestring = "1990-02-03T04:05:06.0Z"; + auto maybe_time = Chrono::CTime::parse(timestring); + + Assert::IsTrue(maybe_time.has_value()); + + Assert::AreEqual(timestring, maybe_time.get()->to_string().c_str()); + } + + TEST_METHOD(parse_time_blank) + { + auto maybe_time = Chrono::CTime::parse(""); + + Assert::IsFalse(maybe_time.has_value()); + } + + TEST_METHOD(time_difference) + { + auto maybe_time1 = Chrono::CTime::parse("1990-02-03T04:05:06.0Z"); + auto maybe_time2 = Chrono::CTime::parse("1990-02-10T04:05:06.0Z"); + + Assert::IsTrue(maybe_time1.has_value()); + Assert::IsTrue(maybe_time2.has_value()); + + auto delta = maybe_time2.get()->to_time_point() - maybe_time1.get()->to_time_point(); + + Assert::AreEqual(24 * 7, std::chrono::duration_cast<std::chrono::hours>(delta).count()); + } + }; +} diff --git a/toolsrc/src/tests.dependencies.cpp b/toolsrc/src/tests.dependencies.cpp index 3f6e0dd10..f82fad4e4 100644 --- a/toolsrc/src/tests.dependencies.cpp +++ b/toolsrc/src/tests.dependencies.cpp @@ -1,6 +1,4 @@ -#include <CppUnitTest.h> -#include <vcpkg/sourceparagraph.h> -#include <vcpkg/triplet.h> +#include "tests.pch.h" #pragma comment(lib, "version") #pragma comment(lib, "winhttp") diff --git a/toolsrc/src/tests.packagespec.cpp b/toolsrc/src/tests.packagespec.cpp index cb5c41af0..32ad81227 100644 --- a/toolsrc/src/tests.packagespec.cpp +++ b/toolsrc/src/tests.packagespec.cpp @@ -1,31 +1,12 @@ -#include <CppUnitTest.h> -#include <vcpkg/binaryparagraph.h> -#include <vcpkg/paragraphs.h> +#include "tests.pch.h" -#include <vcpkg/base/strings.h> +#include <tests.utils.h> #pragma comment(lib, "version") #pragma comment(lib, "winhttp") using namespace Microsoft::VisualStudio::CppUnitTestFramework; -namespace Microsoft::VisualStudio::CppUnitTestFramework -{ - template<> - inline std::wstring ToString<vcpkg::PackageSpecParseResult>(const vcpkg::PackageSpecParseResult& t) - { - return ToString(static_cast<uint32_t>(t)); - } - - template<> - inline std::wstring ToString<vcpkg::PackageSpec>(const vcpkg::PackageSpec& t) - { - return ToString(t.to_string()); - } -} - -namespace Strings = vcpkg::Strings; - namespace UnitTest1 { using namespace vcpkg; @@ -103,6 +84,39 @@ namespace UnitTest1 Assert::AreEqual("", spec->triplet.c_str()); } + TEST_METHOD(parsed_specifier_wildcard_feature) + { + auto maybe_spec = vcpkg::ParsedSpecifier::from_string("zlib[*]"); + Assert::AreEqual(vcpkg::PackageSpecParseResult::SUCCESS, maybe_spec.error()); + auto spec = maybe_spec.get(); + Assert::AreEqual("zlib", spec->name.c_str()); + Assert::IsTrue(spec->features.size() == 1); + Assert::AreEqual("*", spec->features[0].c_str()); + Assert::AreEqual("", spec->triplet.c_str()); + } + + TEST_METHOD(expand_wildcards) + { + auto zlib = + vcpkg::FullPackageSpec::from_string("zlib[0,1]", Triplet::X86_UWP).value_or_exit(VCPKG_LINE_INFO); + auto openssl = + vcpkg::FullPackageSpec::from_string("openssl[*]", Triplet::X86_UWP).value_or_exit(VCPKG_LINE_INFO); + auto specs = FullPackageSpec::to_feature_specs({zlib, openssl}); + Util::sort(specs); + auto spectargets = FeatureSpec::from_strings_and_triplet( + { + "openssl", + "zlib", + "openssl[*]", + "zlib[0]", + "zlib[1]", + }, + Triplet::X86_UWP); + Util::sort(spectargets); + Assert::IsTrue(specs.size() == spectargets.size()); + Assert::IsTrue(Util::all_equal(specs, spectargets)); + } + TEST_METHOD(utf8_to_utf16) { auto str = vcpkg::Strings::to_utf16("abc"); diff --git a/toolsrc/src/tests.paragraph.cpp b/toolsrc/src/tests.paragraph.cpp index d9301abd0..9cddd7bdb 100644 --- a/toolsrc/src/tests.paragraph.cpp +++ b/toolsrc/src/tests.paragraph.cpp @@ -1,8 +1,4 @@ -#include <CppUnitTest.h> -#include <vcpkg/binaryparagraph.h> -#include <vcpkg/paragraphs.h> - -#include <vcpkg/base/strings.h> +#include "tests.pch.h"
#pragma comment(lib, "version") #pragma comment(lib, "winhttp") @@ -190,6 +186,20 @@ namespace UnitTest1 Assert::AreEqual("c", pgh.depends[2].c_str()); } + TEST_METHOD(BinaryParagraph_Abi) + { + vcpkg::BinaryParagraph pgh({ + {"Package", "zlib"}, + {"Version", "1.2.8"}, + {"Architecture", "x86-windows"}, + {"Multi-Arch", "same"}, + {"Abi", "abcd123"}, + }); + + Assert::AreEqual(size_t(0), pgh.depends.size()); + Assert::IsTrue(pgh.abi == "abcd123"); + } + TEST_METHOD(parse_paragraphs_empty) { const char* str = ""; @@ -385,5 +395,21 @@ namespace UnitTest1 Assert::AreEqual(size_t(1), pghs.size()); Assert::AreEqual("a, b, c", pghs[0]["Depends"].c_str()); } + + TEST_METHOD(BinaryParagraph_serialize_abi) + { + vcpkg::BinaryParagraph pgh({ + {"Package", "zlib"}, + {"Version", "1.2.8"}, + {"Architecture", "x86-windows"}, + {"Multi-Arch", "same"}, + {"Depends", "a, b, c"}, + {"Abi", "123abc"}, + }); + std::string ss = Strings::serialize(pgh); + auto pghs = vcpkg::Paragraphs::parse_paragraphs(ss).value_or_exit(VCPKG_LINE_INFO); + Assert::AreEqual(size_t(1), pghs.size()); + Assert::AreEqual("123abc", pghs[0]["Abi"].c_str()); + } }; } diff --git a/toolsrc/src/tests.pch.cpp b/toolsrc/src/tests.pch.cpp new file mode 100644 index 000000000..bdddab76a --- /dev/null +++ b/toolsrc/src/tests.pch.cpp @@ -0,0 +1 @@ +#include "tests.pch.h"
diff --git a/toolsrc/src/tests.installplan.cpp b/toolsrc/src/tests.plan.cpp index 120009db5..122a4ffef 100644 --- a/toolsrc/src/tests.installplan.cpp +++ b/toolsrc/src/tests.plan.cpp @@ -1,148 +1,94 @@ -#include <CppUnitTest.h> -#include <vcpkg/dependencies.h> +#include "tests.pch.h" -#include <vcpkg/base/util.h> +#include <tests.utils.h> using namespace Microsoft::VisualStudio::CppUnitTestFramework; using namespace vcpkg; -namespace Microsoft::VisualStudio::CppUnitTestFramework -{ - template<> - inline std::wstring ToString<vcpkg::Dependencies::InstallPlanType>(const vcpkg::Dependencies::InstallPlanType& t) - { - switch (t) - { - case Dependencies::InstallPlanType::ALREADY_INSTALLED: return L"ALREADY_INSTALLED"; - case Dependencies::InstallPlanType::BUILD_AND_INSTALL: return L"BUILD_AND_INSTALL"; - case Dependencies::InstallPlanType::INSTALL: return L"INSTALL"; - case Dependencies::InstallPlanType::UNKNOWN: return L"UNKNOWN"; - default: return ToString((int)t); - } - } - - template<> - inline std::wstring ToString<vcpkg::Dependencies::RequestType>(const vcpkg::Dependencies::RequestType& t) - { - switch (t) - { - case Dependencies::RequestType::AUTO_SELECTED: return L"AUTO_SELECTED"; - case Dependencies::RequestType::USER_REQUESTED: return L"USER_REQUESTED"; - case Dependencies::RequestType::UNKNOWN: return L"UNKNOWN"; - default: return ToString((int)t); - } - } -} - namespace UnitTest1 { - class InstallPlanTests : public TestClass<InstallPlanTests> + static std::unique_ptr<SourceControlFile> make_control_file( + const char* name, const char* depends, const std::vector<std::pair<const char*, const char*>>& features = {}) { - static std::unique_ptr<SourceControlFile> make_control_file( - const char* name, - const char* depends, - const std::vector<std::pair<const char*, const char*>>& features = {}) + using Pgh = std::unordered_map<std::string, std::string>; + std::vector<Pgh> scf_pghs; + scf_pghs.push_back(Pgh{ + {"Source", name}, + {"Version", "0"}, + {"Build-Depends", depends}, + }); + for (auto&& feature : features) { - using Pgh = std::unordered_map<std::string, std::string>; - std::vector<Pgh> scf_pghs; scf_pghs.push_back(Pgh{ - {"Source", name}, - {"Version", "0"}, - {"Build-Depends", depends}, + {"Feature", feature.first}, + {"Description", "feature"}, + {"Build-Depends", feature.second}, }); - for (auto&& feature : features) - { - scf_pghs.push_back(Pgh{ - {"Feature", feature.first}, - {"Description", "feature"}, - {"Build-Depends", feature.second}, - }); - } - auto m_pgh = vcpkg::SourceControlFile::parse_control_file(std::move(scf_pghs)); - Assert::IsTrue(m_pgh.has_value()); - return std::move(*m_pgh.get()); } + auto m_pgh = vcpkg::SourceControlFile::parse_control_file(std::move(scf_pghs)); + Assert::IsTrue(m_pgh.has_value()); + return std::move(*m_pgh.get()); + } - static void features_check(Dependencies::AnyAction* install_action, - std::string pkg_name, - std::vector<std::string> vec, - const Triplet& triplet = Triplet::X86_WINDOWS) - { - const auto& plan = install_action->install_plan.value_or_exit(VCPKG_LINE_INFO); - const auto& feature_list = plan.feature_list; + static void features_check(Dependencies::AnyAction* install_action, + std::string pkg_name, + std::vector<std::string> vec, + const Triplet& triplet = Triplet::X86_WINDOWS) + { + const auto& plan = install_action->install_plan.value_or_exit(VCPKG_LINE_INFO); + const auto& feature_list = plan.feature_list; - Assert::AreEqual(plan.spec.triplet().to_string().c_str(), triplet.to_string().c_str()); + Assert::AreEqual(plan.spec.triplet().to_string().c_str(), triplet.to_string().c_str()); - Assert::AreEqual(pkg_name.c_str(), - (*plan.any_paragraph.source_control_file.get())->core_paragraph->name.c_str()); - Assert::AreEqual(size_t(vec.size()), feature_list.size()); + Assert::AreEqual(pkg_name.c_str(), + (*plan.any_paragraph.source_control_file.get())->core_paragraph->name.c_str()); + Assert::AreEqual(size_t(vec.size()), feature_list.size()); - for (auto&& feature_name : vec) + for (auto&& feature_name : vec) + { + if (feature_name == "core" || feature_name == "") { - if (feature_name == "core" || feature_name == "") - { - Assert::IsTrue(Util::find(feature_list, "core") != feature_list.end() || - Util::find(feature_list, "") != feature_list.end()); - continue; - } - Assert::IsTrue(Util::find(feature_list, feature_name) != feature_list.end()); + Assert::IsTrue(Util::find(feature_list, "core") != feature_list.end() || + Util::find(feature_list, "") != feature_list.end()); + continue; } + Assert::IsTrue(Util::find(feature_list, feature_name) != feature_list.end()); } + } - static void remove_plan_check(Dependencies::AnyAction* remove_action, - std::string pkg_name, - const Triplet& triplet = Triplet::X86_WINDOWS) - { - const auto& plan = remove_action->remove_plan.value_or_exit(VCPKG_LINE_INFO); - Assert::AreEqual(plan.spec.triplet().to_string().c_str(), triplet.to_string().c_str()); - Assert::AreEqual(pkg_name.c_str(), plan.spec.name().c_str()); - } + static void remove_plan_check(Dependencies::AnyAction* remove_action, + std::string pkg_name, + const Triplet& triplet = Triplet::X86_WINDOWS) + { + const auto& plan = remove_action->remove_plan.value_or_exit(VCPKG_LINE_INFO); + Assert::AreEqual(plan.spec.triplet().to_string().c_str(), triplet.to_string().c_str()); + Assert::AreEqual(pkg_name.c_str(), plan.spec.name().c_str()); + } + + struct PackageSpecMap + { + std::unordered_map<std::string, SourceControlFile> map; + Triplet triplet; + PackageSpecMap(const Triplet& t) { triplet = t; } - static std::unique_ptr<StatusParagraph> make_status_pgh(const char* name, const char* depends = "") + PackageSpec emplace(const char* name, + const char* depends = "", + const std::vector<std::pair<const char*, const char*>>& features = {}) { - using Pgh = std::unordered_map<std::string, std::string>; - return std::make_unique<StatusParagraph>(Pgh{{"Package", name}, - {"Version", "1"}, - {"Architecture", "x86-windows"}, - {"Multi-Arch", "same"}, - {"Depends", depends}, - {"Status", "install ok installed"}}); + return emplace(std::move(*make_control_file(name, depends, features))); } - static std::unique_ptr<StatusParagraph> make_status_feature_pgh(const char* name, - const char* feature, - const char* depends = "") + PackageSpec emplace(vcpkg::SourceControlFile&& scf) { - using Pgh = std::unordered_map<std::string, std::string>; - return std::make_unique<StatusParagraph>(Pgh{{"Package", name}, - {"Version", "1"}, - {"Feature", feature}, - {"Architecture", "x86-windows"}, - {"Multi-Arch", "same"}, - {"Depends", depends}, - {"Status", "install ok installed"}}); + auto spec = PackageSpec::from_name_and_triplet(scf.core_paragraph->name, triplet); + Assert::IsTrue(spec.has_value()); + map.emplace(scf.core_paragraph->name, std::move(scf)); + return PackageSpec{*spec.get()}; } - struct PackageSpecMap - { - std::unordered_map<std::string, SourceControlFile> map; - Triplet triplet; - PackageSpecMap(const Triplet& t) { triplet = t; } - - PackageSpec emplace(const char* name, - const char* depends = "", - const std::vector<std::pair<const char*, const char*>>& features = {}) - { - return emplace(std::move(*make_control_file(name, depends, features))); - } - PackageSpec emplace(vcpkg::SourceControlFile&& scf) - { - auto spec = PackageSpec::from_name_and_triplet(scf.core_paragraph->name, triplet); - Assert::IsTrue(spec.has_value()); - map.emplace(scf.core_paragraph->name, std::move(scf)); - return PackageSpec{*spec.get()}; - } - }; + }; + class InstallPlanTests : public TestClass<InstallPlanTests> + { TEST_METHOD(basic_install_scheme) { std::vector<std::unique_ptr<StatusParagraph>> status_paragraphs; @@ -460,20 +406,6 @@ namespace UnitTest1 FullPackageSpec::to_feature_specs({spec_c_64, spec_a_86, spec_a_64, spec_c_86}), StatusParagraphs(std::move(status_paragraphs))); - /*Assert::AreEqual(size_t(8), install_plan.size()); - auto iterator_pos = [&](const PackageSpec& spec, size_t start) -> int { - auto it = std::find_if(install_plan.begin() + start, install_plan.end(), [&](auto& action) { - return action.spec == spec; - }); - Assert::IsTrue(it != install_plan.end()); - return (int)(it - install_plan.begin()); - }; - int a_64_1 = iterator_pos(spec_a_64.package_spec, 0), a_86_1 = iterator_pos(spec_a_86.package_spec, 0), - b_64 = iterator_pos(spec_b_64.package_spec, 0), b_86 = iterator_pos(spec_b_86.package_spec, 0), - c_64 = iterator_pos(spec_c_64.package_spec, 0), c_86 = iterator_pos(spec_c_86.package_spec, 0), - a_64_2 = iterator_pos(spec_a_64.package_spec, a_64_1 + 1), - a_86_2 = iterator_pos(spec_a_86.package_spec, a_86_1 + 1);*/ - remove_plan_check(&install_plan[0], "a", Triplet::X64_WINDOWS); remove_plan_check(&install_plan[1], "a"); features_check(&install_plan[2], "b", {"core"}, Triplet::X64_WINDOWS); @@ -483,5 +415,110 @@ namespace UnitTest1 features_check(&install_plan[6], "a", {"a1", "core"}); features_check(&install_plan[7], "c", {"core"}); } + + TEST_METHOD(install_all_features_test) + { + std::vector<std::unique_ptr<StatusParagraph>> status_paragraphs; + + PackageSpecMap spec_map(Triplet::X64_WINDOWS); + auto spec_a_64 = FullPackageSpec{spec_map.emplace("a", "", {{"0", ""}, {"1", ""}}), {"core"}}; + + auto install_specs = FullPackageSpec::from_string("a[*]", Triplet::X64_WINDOWS); + Assert::IsTrue(install_specs.has_value()); + if (!install_specs.has_value()) return; + auto install_plan = Dependencies::create_feature_install_plan( + spec_map.map, + FullPackageSpec::to_feature_specs({install_specs.value_or_exit(VCPKG_LINE_INFO)}), + StatusParagraphs(std::move(status_paragraphs))); + + Assert::IsTrue(install_plan.size() == 1); + features_check(&install_plan[0], "a", {"0", "1", "core"}, Triplet::X64_WINDOWS); + } + }; + + static PackageSpec unsafe_pspec(std::string name, Triplet t = Triplet::X86_WINDOWS) + { + auto m_ret = PackageSpec::from_name_and_triplet(name, t); + Assert::IsTrue(m_ret.has_value()); + return m_ret.value_or_exit(VCPKG_LINE_INFO); + } + + class RemovePlanTests : public TestClass<RemovePlanTests> + { + TEST_METHOD(basic_remove_scheme) + { + std::vector<std::unique_ptr<StatusParagraph>> pghs; + pghs.push_back(make_status_pgh("a")); + StatusParagraphs status_db(std::move(pghs)); + + auto remove_plan = Dependencies::create_remove_plan({unsafe_pspec("a")}, status_db); + + Assert::AreEqual(size_t(1), remove_plan.size()); + Assert::AreEqual("a", remove_plan[0].spec.name().c_str()); + } + + TEST_METHOD(recurse_remove_scheme) + { + std::vector<std::unique_ptr<StatusParagraph>> pghs; + pghs.push_back(make_status_pgh("a")); + pghs.push_back(make_status_pgh("b", "a")); + StatusParagraphs status_db(std::move(pghs)); + + auto remove_plan = Dependencies::create_remove_plan({unsafe_pspec("a")}, status_db); + + Assert::AreEqual(size_t(2), remove_plan.size()); + Assert::AreEqual("b", remove_plan[0].spec.name().c_str()); + Assert::AreEqual("a", remove_plan[1].spec.name().c_str()); + } + + TEST_METHOD(features_depend_remove_scheme) + { + std::vector<std::unique_ptr<StatusParagraph>> pghs; + pghs.push_back(make_status_pgh("a")); + pghs.push_back(make_status_pgh("b")); + pghs.push_back(make_status_feature_pgh("b", "0", "a")); + StatusParagraphs status_db(std::move(pghs)); + + auto remove_plan = Dependencies::create_remove_plan({unsafe_pspec("a")}, status_db); + + Assert::AreEqual(size_t(2), remove_plan.size()); + Assert::AreEqual("b", remove_plan[0].spec.name().c_str()); + Assert::AreEqual("a", remove_plan[1].spec.name().c_str()); + } + + TEST_METHOD(features_depend_remove_scheme_once_removed) + { + std::vector<std::unique_ptr<StatusParagraph>> pghs; + pghs.push_back(make_status_pgh("expat")); + pghs.push_back(make_status_pgh("vtk", "expat")); + pghs.push_back(make_status_pgh("opencv")); + pghs.push_back(make_status_feature_pgh("opencv", "vtk", "vtk")); + StatusParagraphs status_db(std::move(pghs)); + + auto remove_plan = Dependencies::create_remove_plan({unsafe_pspec("expat")}, status_db); + + Assert::AreEqual(size_t(3), remove_plan.size()); + Assert::AreEqual("opencv", remove_plan[0].spec.name().c_str()); + Assert::AreEqual("vtk", remove_plan[1].spec.name().c_str()); + Assert::AreEqual("expat", remove_plan[2].spec.name().c_str()); + } + + TEST_METHOD(features_depend_remove_scheme_once_removed_x64) + { + std::vector<std::unique_ptr<StatusParagraph>> pghs; + pghs.push_back(make_status_pgh("expat", "", "x64")); + pghs.push_back(make_status_pgh("vtk", "expat", "x64")); + pghs.push_back(make_status_pgh("opencv", "", "x64")); + pghs.push_back(make_status_feature_pgh("opencv", "vtk", "vtk", "x64")); + StatusParagraphs status_db(std::move(pghs)); + + auto remove_plan = Dependencies::create_remove_plan( + {unsafe_pspec("expat", Triplet::from_canonical_name("x64"))}, status_db); + + Assert::AreEqual(size_t(3), remove_plan.size()); + Assert::AreEqual("opencv", remove_plan[0].spec.name().c_str()); + Assert::AreEqual("vtk", remove_plan[1].spec.name().c_str()); + Assert::AreEqual("expat", remove_plan[2].spec.name().c_str()); + } }; -}
\ No newline at end of file +} diff --git a/toolsrc/src/tests.statusparagraphs.cpp b/toolsrc/src/tests.statusparagraphs.cpp new file mode 100644 index 000000000..ed6eaa764 --- /dev/null +++ b/toolsrc/src/tests.statusparagraphs.cpp @@ -0,0 +1,80 @@ +#include "tests.pch.h" + +using namespace Microsoft::VisualStudio::CppUnitTestFramework; + +using namespace vcpkg; +using namespace vcpkg::Paragraphs; + +namespace UnitTest1 +{ + class StatusParagraphsTests : public TestClass<StatusParagraphsTests> + { + TEST_METHOD(find_installed) + { + auto pghs = parse_paragraphs(R"( +Package: ffmpeg +Version: 3.3.3 +Architecture: x64-windows +Multi-Arch: same +Description: +Status: install ok installed +)"); + Assert::IsTrue(!!pghs); + if (!pghs) return; + + StatusParagraphs status_db(Util::fmap( + *pghs.get(), [](RawParagraph& rpgh) { return std::make_unique<StatusParagraph>(std::move(rpgh)); })); + + auto it = status_db.find_installed("ffmpeg", Triplet::X64_WINDOWS); + Assert::IsTrue(it != status_db.end()); + } + + TEST_METHOD(find_not_installed) + { + auto pghs = parse_paragraphs(R"( +Package: ffmpeg +Version: 3.3.3 +Architecture: x64-windows +Multi-Arch: same +Description: +Status: purge ok not-installed +)"); + Assert::IsTrue(!!pghs); + if (!pghs) return; + + StatusParagraphs status_db(Util::fmap( + *pghs.get(), [](RawParagraph& rpgh) { return std::make_unique<StatusParagraph>(std::move(rpgh)); })); + + auto it = status_db.find_installed("ffmpeg", Triplet::X64_WINDOWS); + Assert::IsTrue(it == status_db.end()); + } + + TEST_METHOD(find_with_feature_packages) + { + auto pghs = parse_paragraphs(R"( +Package: ffmpeg +Version: 3.3.3 +Architecture: x64-windows +Multi-Arch: same +Description: +Status: install ok installed + +Package: ffmpeg +Feature: openssl +Depends: openssl +Architecture: x64-windows +Multi-Arch: same +Description: +Status: purge ok not-installed +)"); + Assert::IsTrue(!!pghs); + if (!pghs) return; + + StatusParagraphs status_db(Util::fmap( + *pghs.get(), [](RawParagraph& rpgh) { return std::make_unique<StatusParagraph>(std::move(rpgh)); })); + + auto it = status_db.find_installed("ffmpeg", Triplet::X64_WINDOWS); + Assert::IsTrue(it != status_db.end()); + } + }; +}
\ No newline at end of file diff --git a/toolsrc/src/tests.update.cpp b/toolsrc/src/tests.update.cpp new file mode 100644 index 000000000..06ae797f4 --- /dev/null +++ b/toolsrc/src/tests.update.cpp @@ -0,0 +1,96 @@ +#include "tests.pch.h" + +#include <tests.utils.h> + +using namespace Microsoft::VisualStudio::CppUnitTestFramework; + +using namespace vcpkg; +using namespace vcpkg::Update; + +namespace UnitTest1 +{ + class UpdateTests : public TestClass<UpdateTests> + { + TEST_METHOD(find_outdated_packages_basic) + { + std::vector<std::unique_ptr<StatusParagraph>> status_paragraphs; + status_paragraphs.push_back(make_status_pgh("a")); + status_paragraphs.back()->package.version = "2"; + + StatusParagraphs status_db(std::move(status_paragraphs)); + + std::map<std::string, VersionT> port_versions; + port_versions["a"] = VersionT("0"); + + auto pkgs = SortedVector<OutdatedPackage>(Update::find_outdated_packages(port_versions, status_db), + &OutdatedPackage::compare_by_name); + + Assert::AreEqual(size_t(1), pkgs.size()); + Assert::AreEqual("2", pkgs[0].version_diff.left.to_string().c_str()); + Assert::AreEqual("0", pkgs[0].version_diff.right.to_string().c_str()); + } + + TEST_METHOD(find_outdated_packages_features) + { + std::vector<std::unique_ptr<StatusParagraph>> status_paragraphs; + status_paragraphs.push_back(make_status_pgh("a")); + status_paragraphs.back()->package.version = "2"; + + status_paragraphs.push_back(make_status_feature_pgh("a", "b")); + status_paragraphs.back()->package.version = "2"; + + StatusParagraphs status_db(std::move(status_paragraphs)); + + std::map<std::string, VersionT> port_versions; + port_versions["a"] = VersionT("0"); + + auto pkgs = SortedVector<OutdatedPackage>(Update::find_outdated_packages(port_versions, status_db), + &OutdatedPackage::compare_by_name); + + Assert::AreEqual(size_t(1), pkgs.size()); + Assert::AreEqual("2", pkgs[0].version_diff.left.to_string().c_str()); + Assert::AreEqual("0", pkgs[0].version_diff.right.to_string().c_str()); + } + + TEST_METHOD(find_outdated_packages_features_2) + { + std::vector<std::unique_ptr<StatusParagraph>> status_paragraphs; + status_paragraphs.push_back(make_status_pgh("a")); + status_paragraphs.back()->package.version = "2"; + + status_paragraphs.push_back(make_status_feature_pgh("a", "b")); + status_paragraphs.back()->package.version = "0"; + status_paragraphs.back()->state = InstallState::NOT_INSTALLED; + status_paragraphs.back()->want = Want::PURGE; + + StatusParagraphs status_db(std::move(status_paragraphs)); + + std::map<std::string, VersionT> port_versions; + port_versions["a"] = VersionT("0"); + + auto pkgs = SortedVector<OutdatedPackage>(Update::find_outdated_packages(port_versions, status_db), + &OutdatedPackage::compare_by_name); + + Assert::AreEqual(size_t(1), pkgs.size()); + Assert::AreEqual("2", pkgs[0].version_diff.left.to_string().c_str()); + Assert::AreEqual("0", pkgs[0].version_diff.right.to_string().c_str()); + } + + TEST_METHOD(find_outdated_packages_none) + { + std::vector<std::unique_ptr<StatusParagraph>> status_paragraphs; + status_paragraphs.push_back(make_status_pgh("a")); + status_paragraphs.back()->package.version = "2"; + + StatusParagraphs status_db(std::move(status_paragraphs)); + + std::map<std::string, VersionT> port_versions; + port_versions["a"] = VersionT("2"); + + auto pkgs = SortedVector<OutdatedPackage>(Update::find_outdated_packages(port_versions, status_db), + &OutdatedPackage::compare_by_name); + + Assert::AreEqual(size_t(0), pkgs.size()); + } + }; +} diff --git a/toolsrc/src/tests.utils.cpp b/toolsrc/src/tests.utils.cpp new file mode 100644 index 000000000..b9fb51a59 --- /dev/null +++ b/toolsrc/src/tests.utils.cpp @@ -0,0 +1,62 @@ +#include "tests.pch.h" + +#include "tests.utils.h" + +using namespace Microsoft::VisualStudio::CppUnitTestFramework; +using namespace vcpkg; + +namespace Microsoft::VisualStudio::CppUnitTestFramework +{ + std::wstring ToString(const vcpkg::Dependencies::InstallPlanType& t) + { + switch (t) + { + case Dependencies::InstallPlanType::ALREADY_INSTALLED: return L"ALREADY_INSTALLED"; + case Dependencies::InstallPlanType::BUILD_AND_INSTALL: return L"BUILD_AND_INSTALL"; + case Dependencies::InstallPlanType::INSTALL: return L"INSTALL"; + case Dependencies::InstallPlanType::EXCLUDED: return L"EXCLUDED"; + case Dependencies::InstallPlanType::UNKNOWN: return L"UNKNOWN"; + default: return ToString(static_cast<int>(t)); + } + } + + std::wstring ToString(const vcpkg::Dependencies::RequestType& t) + { + switch (t) + { + case Dependencies::RequestType::AUTO_SELECTED: return L"AUTO_SELECTED"; + case Dependencies::RequestType::USER_REQUESTED: return L"USER_REQUESTED"; + case Dependencies::RequestType::UNKNOWN: return L"UNKNOWN"; + default: return ToString(static_cast<int>(t)); + } + } + + std::wstring ToString(const vcpkg::PackageSpecParseResult& t) { return ToString(static_cast<uint32_t>(t)); } + + std::wstring ToString(const vcpkg::PackageSpec& t) { return ToString(t.to_string()); } +} + +std::unique_ptr<StatusParagraph> make_status_pgh(const char* name, const char* depends, const char* triplet) +{ + using Pgh = std::unordered_map<std::string, std::string>; + return std::make_unique<StatusParagraph>(Pgh{{"Package", name}, + {"Version", "1"}, + {"Architecture", triplet}, + {"Multi-Arch", "same"}, + {"Depends", depends}, + {"Status", "install ok installed"}}); +} +std::unique_ptr<StatusParagraph> make_status_feature_pgh(const char* name, + const char* feature, + const char* depends, + const char* triplet) +{ + using Pgh = std::unordered_map<std::string, std::string>; + return std::make_unique<StatusParagraph>(Pgh{{"Package", name}, + {"Version", "1"}, + {"Feature", feature}, + {"Architecture", triplet}, + {"Multi-Arch", "same"}, + {"Depends", depends}, + {"Status", "install ok installed"}}); +} diff --git a/toolsrc/src/vcpkg.cpp b/toolsrc/src/vcpkg.cpp index b4c2d0fe2..094ea1dc5 100644 --- a/toolsrc/src/vcpkg.cpp +++ b/toolsrc/src/vcpkg.cpp @@ -20,11 +20,13 @@ #include <vcpkg/input.h> #include <vcpkg/metrics.h> #include <vcpkg/paragraphs.h> +#include <vcpkg/userconfig.h> #include <vcpkg/vcpkglib.h> #include <cassert> #include <fstream> #include <memory> +#include <random> #pragma comment(lib, "ole32") #pragma comment(lib, "shell32") @@ -110,6 +112,28 @@ static void inner(const VcpkgCmdArguments& args) if (args.command != "autocomplete") { Commands::Version::warn_if_vcpkg_version_mismatch(paths); + std::string surveydate = *GlobalState::g_surveydate.lock(); + auto maybe_surveydate = Chrono::CTime::parse(surveydate); + if (auto p_surveydate = maybe_surveydate.get()) + { + auto delta = std::chrono::system_clock::now() - p_surveydate->to_time_point(); + // 24 hours/day * 30 days/month + if (std::chrono::duration_cast<std::chrono::hours>(delta).count() > 24 * 30) + { + std::default_random_engine generator( + static_cast<unsigned int>(std::chrono::system_clock::now().time_since_epoch().count())); + std::uniform_int_distribution<int> distribution(1, 4); + + if (distribution(generator) == 1) + { + Metrics::g_metrics.lock()->track_property("surveyprompt", "true"); + System::println( + System::Color::success, + "Your feedback is important to improve Vcpkg! Please take 3 minutes to complete our survey " + "by running: vcpkg contact --survey"); + } + } + } } if (const auto command_function = find_command(Commands::get_available_commands_type_b())) @@ -148,64 +172,41 @@ static void inner(const VcpkgCmdArguments& args) static void load_config() { #if defined(_WIN32) - fs::path localappdata; - { - // Config path in AppDataLocal - wchar_t* localappdatapath = nullptr; - if (S_OK != SHGetKnownFolderPath(FOLDERID_LocalAppData, 0, nullptr, &localappdatapath)) __fastfail(1); - localappdata = localappdatapath; - CoTaskMemFree(localappdatapath); - } + auto& fs = Files::get_real_filesystem(); - try - { - auto maybe_pghs = Paragraphs::get_paragraphs(Files::get_real_filesystem(), localappdata / "vcpkg" / "config"); - if (const auto p_pghs = maybe_pghs.get()) - { - const auto& pghs = *p_pghs; - - std::unordered_map<std::string, std::string> keys; - if (pghs.size() > 0) keys = pghs[0]; + auto config = UserConfig::try_read_data(fs); - for (size_t x = 1; x < pghs.size(); ++x) - { - for (auto&& p : pghs[x]) - keys.insert(p); - } + bool write_config = false; - auto user_id = keys["User-Id"]; - auto user_time = keys["User-Since"]; - if (!user_id.empty() && !user_time.empty()) - { - Metrics::g_metrics.lock()->set_user_information(user_id, user_time); - return; - } - } + // config file not found, could not be read, or invalid + if (config.user_id.empty() || config.user_time.empty()) + { + ::vcpkg::Metrics::Metrics::init_user_information(config.user_id, config.user_time); + write_config = true; } - catch (...) + + if (config.user_mac.empty()) { + config.user_mac = Metrics::get_MAC_user(); + write_config = true; } - // config file not found, could not be read, or invalid - std::string user_id, user_time; { auto locked_metrics = Metrics::g_metrics.lock(); - locked_metrics->init_user_information(user_id, user_time); - locked_metrics->set_user_information(user_id, user_time); + locked_metrics->set_user_information(config.user_id, config.user_time); + locked_metrics->track_property("user_mac", config.user_mac); } - try + + if (config.last_completed_survey.empty()) { - std::error_code ec; - auto& fs = Files::get_real_filesystem(); - fs.create_directory(localappdata / "vcpkg", ec); - fs.write_contents(localappdata / "vcpkg" / "config", - Strings::format("User-Id: %s\n" - "User-Since: %s\n", - user_id, - user_time)); + config.last_completed_survey = config.user_time; } - catch (...) + + GlobalState::g_surveydate.lock()->assign(config.last_completed_survey); + + if (write_config) { + config.try_write_data(fs); } #endif } @@ -239,14 +240,14 @@ int main(const int argc, const char* const* const argv) { if (argc == 0) std::abort(); - *GlobalState::timer.lock() = Chrono::ElapsedTime::create_started(); + *GlobalState::timer.lock() = Chrono::ElapsedTimer::create_started(); #if defined(_WIN32) GlobalState::g_init_console_cp = GetConsoleCP(); GlobalState::g_init_console_output_cp = GetConsoleOutputCP(); - SetConsoleCP(65001); - SetConsoleOutputCP(65001); + SetConsoleCP(CP_UTF8); + SetConsoleOutputCP(CP_UTF8); const std::string trimmed_command_line = trim_path_from_command_line(Strings::to_utf8(GetCommandLineW())); #endif @@ -259,7 +260,6 @@ int main(const int argc, const char* const* const argv) #endif } load_config(); - Metrics::g_metrics.lock()->track_property("sqmuser", Metrics::get_SQM_user()); const VcpkgCmdArguments args = VcpkgCmdArguments::create_from_command_line(argc, argv); diff --git a/toolsrc/src/vcpkg/base/chrono.cpp b/toolsrc/src/vcpkg/base/chrono.cpp index 5d28909fc..03c1ecce9 100644 --- a/toolsrc/src/vcpkg/base/chrono.cpp +++ b/toolsrc/src/vcpkg/base/chrono.cpp @@ -50,12 +50,76 @@ namespace vcpkg::Chrono return Strings::format("%.4g ns", nanos_as_double); } - ElapsedTime ElapsedTime::create_started() + ElapsedTimer ElapsedTimer::create_started() { - ElapsedTime t; + ElapsedTimer t; t.m_start_tick = std::chrono::high_resolution_clock::now(); return t; } - std::string ElapsedTime::to_string() const { return format_time_userfriendly(elapsed<std::chrono::nanoseconds>()); } + std::string ElapsedTime::to_string() const { return format_time_userfriendly(as<std::chrono::nanoseconds>()); } + + std::string ElapsedTimer::to_string() const { return elapsed().to_string(); } + + Optional<CTime> CTime::get_current_date_time() + { + CTime ret; + +#if defined(_WIN32) + struct _timeb timebuffer; + + _ftime_s(&timebuffer); + + const errno_t err = gmtime_s(&ret.m_tm, &timebuffer.time); + + if (err) + { + return nullopt; + } +#else + time_t now = {0}; + time(&now); + auto null_if_failed = gmtime_r(&now, &ret.m_tm); + if (null_if_failed == nullptr) + { + return nullopt; + } +#endif + + return ret; + } + + Optional<CTime> CTime::parse(CStringView str) + { + CTime ret; + auto assigned = sscanf_s(str.c_str(), + "%d-%d-%dT%d:%d:%d.", + &ret.m_tm.tm_year, + &ret.m_tm.tm_mon, + &ret.m_tm.tm_mday, + &ret.m_tm.tm_hour, + &ret.m_tm.tm_min, + &ret.m_tm.tm_sec); + if (assigned != 6) return nullopt; + if (ret.m_tm.tm_year < 1900) return nullopt; + ret.m_tm.tm_year -= 1900; + if (ret.m_tm.tm_mon < 1) return nullopt; + ret.m_tm.tm_mon -= 1; + mktime(&ret.m_tm); + return ret; + } + + std::string CTime::to_string() const + { + std::array<char, 80> date; + date.fill(0); + + strftime(&date[0], date.size(), "%Y-%m-%dT%H:%M:%S.0Z", &m_tm); + return &date[0]; + } + std::chrono::system_clock::time_point CTime::to_time_point() const + { + auto t = mktime(&m_tm); + return std::chrono::system_clock::from_time_t(t); + } } diff --git a/toolsrc/src/vcpkg/base/files.cpp b/toolsrc/src/vcpkg/base/files.cpp index 6e43debb1..8c9e137ed 100644 --- a/toolsrc/src/vcpkg/base/files.cpp +++ b/toolsrc/src/vcpkg/base/files.cpp @@ -72,7 +72,8 @@ namespace vcpkg::Files { std::vector<fs::path> ret; - fs::stdfs::recursive_directory_iterator b(dir), e{}; + std::error_code ec; + fs::stdfs::recursive_directory_iterator b(dir, ec), e{}; for (; b != e; ++b) { ret.push_back(b->path()); diff --git a/toolsrc/src/vcpkg/base/strings.cpp b/toolsrc/src/vcpkg/base/strings.cpp index 36efc3adc..27cfcbe71 100644 --- a/toolsrc/src/vcpkg/base/strings.cpp +++ b/toolsrc/src/vcpkg/base/strings.cpp @@ -125,24 +125,18 @@ namespace vcpkg::Strings return std::move(s); } - void trim(std::string* s) + std::string trim(std::string&& s) { - s->erase(std::find_if_not(s->rbegin(), s->rend(), details::isspace).base(), s->end()); - s->erase(s->begin(), std::find_if_not(s->begin(), s->end(), details::isspace)); - } - - std::string trimmed(const std::string& s) - { - auto whitespace_back = std::find_if_not(s.rbegin(), s.rend(), details::isspace).base(); - auto whitespace_front = std::find_if_not(s.begin(), whitespace_back, details::isspace); - return std::string(whitespace_front, whitespace_back); + s.erase(std::find_if_not(s.rbegin(), s.rend(), details::isspace).base(), s.end()); + s.erase(s.begin(), std::find_if_not(s.begin(), s.end(), details::isspace)); + return std::move(s); } void trim_all_and_remove_whitespace_strings(std::vector<std::string>* strings) { for (std::string& s : *strings) { - trim(&s); + s = trim(std::move(s)); } Util::erase_remove_if(*strings, [](const std::string& s) { return s.empty(); }); diff --git a/toolsrc/src/vcpkg/base/system.cpp b/toolsrc/src/vcpkg/base/system.cpp index a1bc9daf6..625ee6ce0 100644 --- a/toolsrc/src/vcpkg/base/system.cpp +++ b/toolsrc/src/vcpkg/base/system.cpp @@ -3,6 +3,7 @@ #include <vcpkg/base/checks.h> #include <vcpkg/base/system.h> #include <vcpkg/globalstate.h> +#include <vcpkg/metrics.h> #include <time.h> @@ -50,11 +51,21 @@ namespace vcpkg::System CPUArchitecture get_host_processor() { +#if defined(_WIN32) auto w6432 = get_environment_variable("PROCESSOR_ARCHITEW6432"); if (const auto p = w6432.get()) return to_cpu_architecture(*p).value_or_exit(VCPKG_LINE_INFO); const auto procarch = get_environment_variable("PROCESSOR_ARCHITECTURE").value_or_exit(VCPKG_LINE_INFO); return to_cpu_architecture(procarch).value_or_exit(VCPKG_LINE_INFO); +#else +#if defined(__x86_64__) || defined(_M_X64) + return CPUArchitecture::X64; +#elif defined(__x86__) || defined(_M_X86) + return CPUArchitecture::X86; +#else +#error "Unknown host architecture" +#endif +#endif } std::vector<CPUArchitecture> get_supported_host_architectures() @@ -71,6 +82,53 @@ namespace vcpkg::System return supported_architectures; } + CMakeVariable::CMakeVariable(const CStringView varname, const char* varvalue) + : s(Strings::format(R"("-D%s=%s")", varname, varvalue)) + { + } + CMakeVariable::CMakeVariable(const CStringView varname, const std::string& varvalue) + : CMakeVariable(varname, varvalue.c_str()) + { + } + CMakeVariable::CMakeVariable(const CStringView varname, const fs::path& path) + : CMakeVariable(varname, path.generic_u8string()) + { + } + + std::string make_cmake_cmd(const fs::path& cmake_exe, + const fs::path& cmake_script, + const std::vector<CMakeVariable>& pass_variables) + { + const std::string cmd_cmake_pass_variables = Strings::join(" ", pass_variables, [](auto&& v) { return v.s; }); + return Strings::format( + R"("%s" %s -P "%s")", cmake_exe.u8string(), cmd_cmake_pass_variables, cmake_script.generic_u8string()); + } + + PowershellParameter::PowershellParameter(const CStringView varname, const char* varvalue) + : s(Strings::format(R"(-%s '%s')", varname, varvalue)) + { + } + + PowershellParameter::PowershellParameter(const CStringView varname, const std::string& varvalue) + : PowershellParameter(varname, varvalue.c_str()) + { + } + + PowershellParameter::PowershellParameter(const CStringView varname, const fs::path& path) + : PowershellParameter(varname, path.generic_u8string()) + { + } + + static std::string make_powershell_cmd(const fs::path& script_path, + const std::vector<PowershellParameter>& parameters) + { + const std::string args = Strings::join(" ", parameters, [](auto&& v) { return v.s; }); + + // TODO: switch out ExecutionPolicy Bypass with "Remove Mark Of The Web" code and restore RemoteSigned + return Strings::format( + R"(powershell -NoProfile -ExecutionPolicy Bypass -Command "& {& '%s' %s}")", script_path.u8string(), args); + } + int cmd_execute_clean(const CStringView cmd_line) { #if defined(_WIN32) @@ -144,6 +202,8 @@ namespace vcpkg::System env_cstr.append(Strings::to_utf16(NEW_PATH)); env_cstr.push_back(L'\0'); + env_cstr.append(L"VSLANG=1033"); + env_cstr.push_back(L'\0'); STARTUPINFOW startup_info; memset(&startup_info, 0, sizeof(STARTUPINFOW)); @@ -269,14 +329,60 @@ namespace vcpkg::System #endif } - ExitCodeAndOutput powershell_execute_and_capture_output(const fs::path& script_path, const CStringView args) + void powershell_execute(const std::string& title, + const fs::path& script_path, + const std::vector<PowershellParameter>& parameters) { - // TODO: switch out ExecutionPolicy Bypass with "Remove Mark Of The Web" code and restore RemoteSigned - const std::string cmd = Strings::format( - R"(powershell -NoProfile -ExecutionPolicy Bypass -Command "& {& '%s' %s}")", script_path.u8string(), args); + const std::string cmd = make_powershell_cmd(script_path, parameters); + const int rc = System::cmd_execute(cmd); + + if (rc) + { + System::println(Color::error, + "%s\n" + "Could not run:\n" + " '%s'", + title, + script_path.generic_string()); + + { + auto locked_metrics = Metrics::g_metrics.lock(); + locked_metrics->track_property("error", "powershell script failed"); + locked_metrics->track_property("title", title); + } + + Checks::exit_with_code(VCPKG_LINE_INFO, rc); + } + } + std::string powershell_execute_and_capture_output(const std::string& title, + const fs::path& script_path, + const std::vector<PowershellParameter>& parameters) + { + const std::string cmd = make_powershell_cmd(script_path, parameters); auto rc = System::cmd_execute_and_capture_output(cmd); + if (rc.exit_code) + { + System::println(Color::error, + "%s\n" + "Could not run:\n" + " '%s'\n" + "Error message was:\n" + " %s", + title, + script_path.generic_string(), + rc.output); + + { + auto locked_metrics = Metrics::g_metrics.lock(); + locked_metrics->track_property("error", "powershell script failed"); + locked_metrics->track_property("title", title); + } + + Checks::exit_with_code(VCPKG_LINE_INFO, rc.exit_code); + } + // Remove newline from all output. // Powershell returns newlines when it hits the column count of the console. // For example, this is 80 in cmd on Windows 7. If the expected output is longer than 80 lines, we get @@ -285,7 +391,7 @@ namespace vcpkg::System // and then strip all newlines here. rc.output = Strings::replace_all(std::move(rc.output), "\n", ""); - return rc; + return rc.output; } void println() { putchar('\n'); } diff --git a/toolsrc/src/vcpkg/binaryparagraph.cpp b/toolsrc/src/vcpkg/binaryparagraph.cpp index 3a493eb4c..c7136b713 100644 --- a/toolsrc/src/vcpkg/binaryparagraph.cpp +++ b/toolsrc/src/vcpkg/binaryparagraph.cpp @@ -16,6 +16,7 @@ namespace vcpkg namespace Fields { + static const std::string ABI = "Abi"; static const std::string FEATURE = "Feature"; static const std::string DESCRIPTION = "Description"; static const std::string MAINTAINER = "Maintainer"; @@ -47,6 +48,8 @@ namespace vcpkg this->description = parser.optional_field(Fields::DESCRIPTION); this->maintainer = parser.optional_field(Fields::MAINTAINER); + this->abi = parser.optional_field(Fields::ABI); + std::string multi_arch; parser.required_field(Fields::MULTI_ARCH, multi_arch); @@ -118,6 +121,7 @@ namespace vcpkg out_str.append("Multi-Arch: same\n"); if (!pgh.maintainer.empty()) out_str.append("Maintainer: ").append(pgh.maintainer).push_back('\n'); + if (!pgh.abi.empty()) out_str.append("Abi: ").append(pgh.abi).push_back('\n'); if (!pgh.description.empty()) out_str.append("Description: ").append(pgh.description).push_back('\n'); } } diff --git a/toolsrc/src/vcpkg/build.cpp b/toolsrc/src/vcpkg/build.cpp index cf16c8f9c..b8f122b27 100644 --- a/toolsrc/src/vcpkg/build.cpp +++ b/toolsrc/src/vcpkg/build.cpp @@ -28,13 +28,13 @@ namespace vcpkg::Build::Command static const std::string OPTION_CHECKS_ONLY = "--checks-only"; - void perform_and_exit(const FullPackageSpec& full_spec, - const fs::path& port_dir, - const std::unordered_set<std::string>& options, - const VcpkgPaths& paths) + void perform_and_exit_ex(const FullPackageSpec& full_spec, + const fs::path& port_dir, + const ParsedArguments& options, + const VcpkgPaths& paths) { const PackageSpec& spec = full_spec.package_spec; - if (options.find(OPTION_CHECKS_ONLY) != options.end()) + if (Util::Sets::contains(options.switches, OPTION_CHECKS_ONLY)) { const auto pre_build_info = Build::PreBuildInfo::from_triplet_file(paths, spec.triplet()); const auto build_info = Build::read_build_info(paths.get_filesystem(), paths.build_info_file_path(spec)); @@ -52,24 +52,22 @@ namespace vcpkg::Build::Command Checks::exit_fail(VCPKG_LINE_INFO); } - for (const std::string& str : full_spec.features) - { - System::println("%s \n", str); - } const auto& scf = source_control_file.value_or_exit(VCPKG_LINE_INFO); Checks::check_exit(VCPKG_LINE_INFO, spec.name() == scf->core_paragraph->name, - "The Name: field inside the CONTROL does not match the port directory: '%s' != '%s'", + "The Source field inside the CONTROL file does not match the port directory: '%s' != '%s'", scf->core_paragraph->name, spec.name()); const StatusParagraphs status_db = database_load_check(paths); const Build::BuildPackageOptions build_package_options{Build::UseHeadVersion::NO, Build::AllowDownloads::YES}; + const std::unordered_set<std::string> features_as_set(full_spec.features.begin(), full_spec.features.end()); + const Build::BuildPackageConfig build_config{ - *scf->core_paragraph, spec.triplet(), paths.port_dir(spec), build_package_options}; + *scf, spec.triplet(), fs::path{port_dir}, build_package_options, features_as_set}; - const auto build_timer = Chrono::ElapsedTime::create_started(); + const auto build_timer = Chrono::ElapsedTimer::create_started(); const auto result = Build::build_package(paths, build_config, status_db); System::println("Elapsed time for package %s: %s", spec.to_string(), build_timer.to_string()); @@ -87,6 +85,8 @@ namespace vcpkg::Build::Command Checks::exit_fail(VCPKG_LINE_INFO); } + Checks::check_exit(VCPKG_LINE_INFO, result.code != BuildResult::EXCLUDED); + if (result.code != BuildResult::SUCCEEDED) { System::println(System::Color::error, Build::create_error_message(result.code, spec)); @@ -97,17 +97,32 @@ namespace vcpkg::Build::Command Checks::exit_success(VCPKG_LINE_INFO); } + static const std::array<CommandSwitch, 1> BUILD_SWITCHES = {{ + {OPTION_CHECKS_ONLY, "Only run checks, do not rebuild package"}, + }}; + + const CommandStructure COMMAND_STRUCTURE = { + Help::create_example_string("build zlib:x64-windows"), + 1, + 1, + {BUILD_SWITCHES, {}}, + nullptr, + }; + void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths, const Triplet& default_triplet) { - static const std::string EXAMPLE = Help::create_example_string("build zlib:x64-windows"); // Build only takes a single package and all dependencies must already be installed - args.check_exact_arg_count(1, EXAMPLE); + const ParsedArguments options = args.parse_arguments(COMMAND_STRUCTURE); const std::string command_argument = args.command_arguments.at(0); - const FullPackageSpec spec = Input::check_and_get_full_package_spec(command_argument, default_triplet, EXAMPLE); + const FullPackageSpec spec = + Input::check_and_get_full_package_spec(command_argument, default_triplet, COMMAND_STRUCTURE.example_text); Input::check_triplet(spec.package_spec.triplet(), paths); - const std::unordered_set<std::string> options = - args.check_and_get_optional_command_arguments({OPTION_CHECKS_ONLY}); - perform_and_exit(spec, paths.port_dir(spec.package_spec), options, paths); + if (!spec.features.empty() && !GlobalState::feature_packages) + { + Checks::exit_with_message( + VCPKG_LINE_INFO, "Feature packages are experimentally available under the --featurepackages flag."); + } + perform_and_exit_ex(spec, paths.port_dir(spec.package_spec), options, paths); } } @@ -188,6 +203,10 @@ namespace vcpkg::Build std::string make_build_env_cmd(const PreBuildInfo& pre_build_info, const Toolset& toolset) { + if (pre_build_info.external_toolchain_file) + return Strings::format( + R"("%s" %s 2>&1)", toolset.vcvarsall.u8string(), Strings::join(" ", toolset.vcvarsall_options)); + const char* tonull = " >nul"; if (GlobalState::debugging) { @@ -205,26 +224,25 @@ namespace vcpkg::Build tonull); } - static void create_binary_feature_control_file(const SourceParagraph& source_paragraph, - const FeatureParagraph& feature_paragraph, - const Triplet& triplet, - BinaryControlFile& bcf) + static BinaryParagraph create_binary_feature_control_file(const SourceParagraph& source_paragraph, + const FeatureParagraph& feature_paragraph, + const Triplet& triplet) { - BinaryParagraph bpgh(source_paragraph, feature_paragraph, triplet); - bcf.features.emplace_back(std::move(bpgh)); + return BinaryParagraph(source_paragraph, feature_paragraph, triplet); } - static void create_binary_control_file(const SourceParagraph& source_paragraph, - const Triplet& triplet, - const BuildInfo& build_info, - BinaryControlFile& bcf) + static std::unique_ptr<BinaryControlFile> create_binary_control_file(const SourceParagraph& source_paragraph, + const Triplet& triplet, + const BuildInfo& build_info) { + auto bcf = std::make_unique<BinaryControlFile>(); BinaryParagraph bpgh(source_paragraph, triplet); if (const auto p_ver = build_info.version.get()) { bpgh.version = *p_ver; } - bcf.core_paragraph = std::move(bpgh); + bcf->core_paragraph = std::move(bpgh); + return bcf; } static void write_binary_control_file(const VcpkgPaths& paths, BinaryControlFile bcf) @@ -285,9 +303,8 @@ namespace vcpkg::Build } } - const Toolset& toolset = paths.get_toolset(pre_build_info.platform_toolset, pre_build_info.visual_studio_path); - - const std::string cmd_launch_cmake = make_cmake_cmd( + const Toolset& toolset = paths.get_toolset(pre_build_info); + const std::string cmd_launch_cmake = System::make_cmake_cmd( cmake_exe_path, ports_cmake_script_path, { @@ -296,17 +313,17 @@ namespace vcpkg::Build {"CURRENT_PORT_DIR", config.port_dir / "/."}, {"TARGET_TRIPLET", triplet.canonical_name()}, {"VCPKG_PLATFORM_TOOLSET", toolset.version.c_str()}, - {"VCPKG_USE_HEAD_VERSION", to_bool(config.build_package_options.use_head_version) ? "1" : "0"}, - {"_VCPKG_NO_DOWNLOADS", !to_bool(config.build_package_options.allow_downloads) ? "1" : "0"}, + {"VCPKG_USE_HEAD_VERSION", + Util::Enum::to_bool(config.build_package_options.use_head_version) ? "1" : "0"}, + {"_VCPKG_NO_DOWNLOADS", !Util::Enum::to_bool(config.build_package_options.allow_downloads) ? "1" : "0"}, {"GIT", git_exe_path}, {"FEATURES", features}, }); - std::string command; const auto cmd_set_environment = make_build_env_cmd(pre_build_info, toolset); - command = Strings::format(R"(%s && %s)", cmd_set_environment, cmd_launch_cmake); + const std::string command = Strings::format(R"(%s && %s)", cmd_set_environment, cmd_launch_cmake); - const auto timer = Chrono::ElapsedTime::create_started(); + const auto timer = Chrono::ElapsedTimer::create_started(); const int return_code = System::cmd_execute_clean(command); const auto buildtimeus = timer.microseconds(); @@ -319,20 +336,18 @@ namespace vcpkg::Build { locked_metrics->track_property("error", "build failed"); locked_metrics->track_property("build_error", spec_string); - return {BuildResult::BUILD_FAILED, {}}; + return BuildResult::BUILD_FAILED; } } const BuildInfo build_info = read_build_info(paths.get_filesystem(), paths.build_info_file_path(spec)); const size_t error_count = PostBuildLint::perform_all_checks(spec, paths, pre_build_info, build_info); - BinaryControlFile bcf; - - create_binary_control_file(config.src, triplet, build_info, bcf); + auto bcf = create_binary_control_file(config.src, triplet, build_info); if (error_count != 0) { - return {BuildResult::POST_BUILD_CHECKS_FAILED, {}}; + return BuildResult::POST_BUILD_CHECKS_FAILED; } if (GlobalState::feature_packages) { @@ -343,18 +358,31 @@ namespace vcpkg::Build for (auto&& f_pgh : config.scf->feature_paragraphs) { if (f_pgh->name == feature) - create_binary_feature_control_file(*config.scf->core_paragraph, *f_pgh, triplet, bcf); + bcf->features.push_back( + create_binary_feature_control_file(*config.scf->core_paragraph, *f_pgh, triplet)); } } } } - write_binary_control_file(paths, bcf); + write_binary_control_file(paths, *bcf); - // const fs::path port_buildtrees_dir = paths.buildtrees / spec.name; - // delete_directory(port_buildtrees_dir); + if (config.build_package_options.clean_buildtrees == CleanBuildtrees::YES) + { + auto& fs = paths.get_filesystem(); + auto buildtrees_dir = paths.buildtrees / spec.name(); + auto buildtree_files = fs.get_files_non_recursive(buildtrees_dir); + for (auto&& file : buildtree_files) + { + if (fs.is_directory(file) && file.filename() != "src") + { + std::error_code ec; + fs.remove_all(file, ec); + } + } + } - return {BuildResult::SUCCEEDED, {}}; + return {BuildResult::SUCCEEDED, std::move(bcf)}; } const std::string& to_string(const BuildResult build_result) @@ -365,6 +393,7 @@ namespace vcpkg::Build static const std::string FILE_CONFLICTS_STRING = "FILE_CONFLICTS"; static const std::string POST_BUILD_CHECKS_FAILED_STRING = "POST_BUILD_CHECKS_FAILED"; static const std::string CASCADED_DUE_TO_MISSING_DEPENDENCIES_STRING = "CASCADED_DUE_TO_MISSING_DEPENDENCIES"; + static const std::string EXCLUDED_STRING = "EXCLUDED"; switch (build_result) { @@ -372,8 +401,9 @@ namespace vcpkg::Build case BuildResult::SUCCEEDED: return SUCCEEDED_STRING; case BuildResult::BUILD_FAILED: return BUILD_FAILED_STRING; case BuildResult::POST_BUILD_CHECKS_FAILED: return POST_BUILD_CHECKS_FAILED_STRING; - case BuildResult::CASCADED_DUE_TO_MISSING_DEPENDENCIES: return CASCADED_DUE_TO_MISSING_DEPENDENCIES_STRING; case BuildResult::FILE_CONFLICTS: return FILE_CONFLICTS_STRING; + case BuildResult::CASCADED_DUE_TO_MISSING_DEPENDENCIES: return CASCADED_DUE_TO_MISSING_DEPENDENCIES_STRING; + case BuildResult::EXCLUDED: return EXCLUDED_STRING; default: Checks::unreachable(VCPKG_LINE_INFO); } } @@ -466,13 +496,13 @@ namespace vcpkg::Build const fs::path ports_cmake_script_path = paths.scripts / "get_triplet_environment.cmake"; const fs::path triplet_file_path = paths.triplets / (triplet.canonical_name() + ".cmake"); - const auto cmd_launch_cmake = make_cmake_cmd(cmake_exe_path, - ports_cmake_script_path, - { - {"CMAKE_TRIPLET_FILE", triplet_file_path}, - }); + const auto cmd_launch_cmake = System::make_cmake_cmd(cmake_exe_path, + ports_cmake_script_path, + { + {"CMAKE_TRIPLET_FILE", triplet_file_path}, + }); const auto ec_data = System::cmd_execute_and_capture_output(cmd_launch_cmake); - Checks::check_exit(VCPKG_LINE_INFO, ec_data.exit_code == 0); + Checks::check_exit(VCPKG_LINE_INFO, ec_data.exit_code == 0, ec_data.output); const std::vector<std::string> lines = Strings::split(ec_data.output, "\n"); @@ -528,9 +558,39 @@ namespace vcpkg::Build continue; } + if (variable_name == "VCPKG_CHAINLOAD_TOOLCHAIN_FILE") + { + pre_build_info.external_toolchain_file = + variable_value.empty() ? nullopt : Optional<std::string>{variable_value}; + continue; + } + + if (variable_name == "VCPKG_BUILD_TYPE") + { + if (variable_value.empty()) + pre_build_info.build_type = nullopt; + else if (Strings::case_insensitive_ascii_equals(variable_value, "debug")) + pre_build_info.build_type = ConfigurationType::DEBUG; + else if (Strings::case_insensitive_ascii_equals(variable_value, "release")) + pre_build_info.build_type = ConfigurationType::RELEASE; + else + Checks::exit_with_message( + VCPKG_LINE_INFO, "Unknown setting for VCPKG_BUILD_TYPE: %s", variable_value); + continue; + } + Checks::exit_with_message(VCPKG_LINE_INFO, "Unknown variable name %s", line); } return pre_build_info; } + ExtendedBuildResult::ExtendedBuildResult(BuildResult code) : code(code) {} + ExtendedBuildResult::ExtendedBuildResult(BuildResult code, std::unique_ptr<BinaryControlFile>&& bcf) + : code(code), binary_control_file(std::move(bcf)) + { + } + ExtendedBuildResult::ExtendedBuildResult(BuildResult code, std::vector<PackageSpec>&& unmet_deps) + : code(code), unmet_dependencies(std::move(unmet_deps)) + { + } } diff --git a/toolsrc/src/vcpkg/commands.autocomplete.cpp b/toolsrc/src/vcpkg/commands.autocomplete.cpp index 410bfcd0d..0df7ec5eb 100644 --- a/toolsrc/src/vcpkg/commands.autocomplete.cpp +++ b/toolsrc/src/vcpkg/commands.autocomplete.cpp @@ -121,7 +121,6 @@ namespace vcpkg::Commands::Autocomplete static constexpr CommandEntry COMMANDS[] = { CommandEntry{"install", R"###(^install\s(.*\s|)(\S*)$)###", Install::COMMAND_STRUCTURE}, - CommandEntry{"install", R"###(^install\s(.*\s|)(\S*)$)###", Install::COMMAND_STRUCTURE}, CommandEntry{"edit", R"###(^edit\s(.*\s|)(\S*)$)###", Edit::COMMAND_STRUCTURE}, CommandEntry{"remove", R"###(^remove\s(.*\s|)(\S*)$)###", Remove::COMMAND_STRUCTURE}, CommandEntry{"integrate", R"###(^integrate(\s+)(\S*)$)###", Integrate::COMMAND_STRUCTURE}, @@ -137,11 +136,16 @@ namespace vcpkg::Commands::Autocomplete const bool is_option = Strings::case_insensitive_ascii_starts_with(prefix, "-"); if (is_option) { - results = Util::fmap(command.structure.switches, [](auto&& s) -> std::string { return s; }); + results = + Util::fmap(command.structure.options.switches, [](const CommandSwitch& s) { return s.name; }); + + auto settings = Util::fmap(command.structure.options.settings, [](auto&& s) { return s.name; }); + results.insert(results.end(), settings.begin(), settings.end()); } else { - results = command.structure.valid_arguments(paths); + if (command.structure.valid_arguments != nullptr) + results = command.structure.valid_arguments(paths); } Util::unstable_keep_if(results, [&](const std::string& s) { diff --git a/toolsrc/src/vcpkg/commands.buildexternal.cpp b/toolsrc/src/vcpkg/commands.buildexternal.cpp index 3991beb62..82d03db48 100644 --- a/toolsrc/src/vcpkg/commands.buildexternal.cpp +++ b/toolsrc/src/vcpkg/commands.buildexternal.cpp @@ -7,17 +7,23 @@ namespace vcpkg::Commands::BuildExternal { + const CommandStructure COMMAND_STRUCTURE = { + Help::create_example_string(R"(build_external zlib2 C:\path\to\dir\with\controlfile\)"), + 2, + 2, + {}, + nullptr, + }; + void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths, const Triplet& default_triplet) { - static const std::string EXAMPLE = - Help::create_example_string(R"(build_external zlib2 C:\path\to\dir\with\controlfile\)"); - args.check_exact_arg_count(2, EXAMPLE); - const FullPackageSpec spec = - Input::check_and_get_full_package_spec(args.command_arguments.at(0), default_triplet, EXAMPLE); + const ParsedArguments options = args.parse_arguments(COMMAND_STRUCTURE); + + const FullPackageSpec spec = Input::check_and_get_full_package_spec( + args.command_arguments.at(0), default_triplet, COMMAND_STRUCTURE.example_text); Input::check_triplet(spec.package_spec.triplet(), paths); - const std::unordered_set<std::string> options = args.check_and_get_optional_command_arguments({}); const fs::path port_dir = args.command_arguments.at(1); - Build::Command::perform_and_exit(spec, port_dir, options, paths); + Build::Command::perform_and_exit_ex(spec, port_dir, options, paths); } } diff --git a/toolsrc/src/vcpkg/commands.cache.cpp b/toolsrc/src/vcpkg/commands.cache.cpp index 77f0a20f6..6fd123b7c 100644 --- a/toolsrc/src/vcpkg/commands.cache.cpp +++ b/toolsrc/src/vcpkg/commands.cache.cpp @@ -26,13 +26,19 @@ namespace vcpkg::Commands::Cache return output; } + const CommandStructure COMMAND_STRUCTURE = { + Strings::format( + "The argument should be a substring to search for, or no argument to display all cached libraries.\n%s", + Help::create_example_string("cache png")), + 0, + 1, + {}, + nullptr, + }; + void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths) { - static const std::string EXAMPLE = Strings::format( - "The argument should be a substring to search for, or no argument to display all cached libraries.\n%s", - Help::create_example_string("cache png")); - args.check_max_arg_count(1, EXAMPLE); - args.check_and_get_optional_command_arguments({}); + args.parse_arguments(COMMAND_STRUCTURE); const std::vector<BinaryParagraph> binary_paragraphs = read_all_binary_paragraphs(paths); if (binary_paragraphs.empty()) diff --git a/toolsrc/src/vcpkg/commands.ci.cpp b/toolsrc/src/vcpkg/commands.ci.cpp index ffeaad790..f2e984bf8 100644 --- a/toolsrc/src/vcpkg/commands.ci.cpp +++ b/toolsrc/src/vcpkg/commands.ci.cpp @@ -1,6 +1,5 @@ #include "pch.h" -#include <vcpkg/base/chrono.h> #include <vcpkg/base/files.h> #include <vcpkg/base/system.h> #include <vcpkg/base/util.h> @@ -10,7 +9,6 @@ #include <vcpkg/help.h> #include <vcpkg/input.h> #include <vcpkg/install.h> -#include <vcpkg/paragraphs.h> #include <vcpkg/vcpkglib.h> namespace vcpkg::Commands::CI @@ -19,37 +17,43 @@ namespace vcpkg::Commands::CI using Dependencies::InstallPlanAction; using Dependencies::InstallPlanType; - static std::vector<PackageSpec> load_all_package_specs(Files::Filesystem& fs, - const fs::path& ports_directory, - const Triplet& triplet) - { - auto ports = Paragraphs::load_all_ports(fs, ports_directory); - return Util::fmap(ports, [&](auto&& control_file) -> PackageSpec { - return PackageSpec::from_name_and_triplet(control_file->core_paragraph->name, triplet) - .value_or_exit(VCPKG_LINE_INFO); - }); - } - - static Install::InstallSummary run_ci_on_triplet(const Triplet& triplet, const VcpkgPaths& paths) + static Install::InstallSummary run_ci_on_triplet(const Triplet& triplet, + const VcpkgPaths& paths, + const std::vector<std::string>& ports, + const std::set<std::string>& exclusions_set) { Input::check_triplet(triplet, paths); - const std::vector<PackageSpec> specs = load_all_package_specs(paths.get_filesystem(), paths.ports, triplet); + const std::vector<PackageSpec> specs = PackageSpec::to_package_specs(ports, triplet); StatusParagraphs status_db = database_load_check(paths); const auto& paths_port_file = Dependencies::PathsPortFile(paths); std::vector<InstallPlanAction> install_plan = Dependencies::create_install_plan(paths_port_file, specs, status_db); + + for (InstallPlanAction& plan : install_plan) + { + if (Util::Sets::contains(exclusions_set, plan.spec.name())) + { + plan.plan_type = InstallPlanType::EXCLUDED; + } + } + Checks::check_exit(VCPKG_LINE_INFO, !install_plan.empty(), "Install plan cannot be empty"); - const Build::BuildPackageOptions install_plan_options = {Build::UseHeadVersion::NO, Build::AllowDownloads::YES}; + const Build::BuildPackageOptions install_plan_options = { + Build::UseHeadVersion::NO, + Build::AllowDownloads::YES, + Build::CleanBuildtrees::YES, + }; const std::vector<Dependencies::AnyAction> action_plan = - Util::fmap(install_plan, [](InstallPlanAction& install_action) { + Util::fmap(install_plan, [&install_plan_options](InstallPlanAction& install_action) { + install_action.build_options = install_plan_options; return Dependencies::AnyAction(std::move(install_action)); }); - return Install::perform(action_plan, install_plan_options, Install::KeepGoing::YES, paths, status_db); + return Install::perform(action_plan, Install::KeepGoing::YES, paths, status_db); } struct TripletAndSummary @@ -58,10 +62,33 @@ namespace vcpkg::Commands::CI Install::InstallSummary summary; }; + static const std::string OPTION_EXCLUDE = "--exclude"; + static const std::string OPTION_XUNIT = "--x-xunit"; + + static const std::array<CommandSetting, 2> CI_SETTINGS = {{ + {OPTION_EXCLUDE, "Comma separated list of ports to skip"}, + {OPTION_XUNIT, "File to output results in XUnit format (internal)"}, + }}; + + const CommandStructure COMMAND_STRUCTURE = { + Help::create_example_string("ci x64-windows"), + 0, + SIZE_MAX, + {{}, CI_SETTINGS}, + nullptr, + }; + void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths, const Triplet& default_triplet) { - static const std::string EXAMPLE = Help::create_example_string("ci x64-windows"); - args.check_and_get_optional_command_arguments({}); + const ParsedArguments options = args.parse_arguments(COMMAND_STRUCTURE); + + std::set<std::string> exclusions_set; + auto it_exclusions = options.settings.find(OPTION_EXCLUDE); + if (it_exclusions != options.settings.end()) + { + auto exclusions = Strings::split(it_exclusions->second, ","); + exclusions_set.insert(exclusions.begin(), exclusions.end()); + } std::vector<Triplet> triplets; for (const std::string& triplet : args.command_arguments) @@ -74,10 +101,11 @@ namespace vcpkg::Commands::CI triplets.push_back(default_triplet); } + const std::vector<std::string> ports = Install::get_all_port_names(paths); std::vector<TripletAndSummary> results; for (const Triplet& triplet : triplets) { - Install::InstallSummary summary = run_ci_on_triplet(triplet, paths); + Install::InstallSummary summary = run_ci_on_triplet(triplet, paths, ports, exclusions_set); results.push_back({triplet, std::move(summary)}); } @@ -88,6 +116,18 @@ namespace vcpkg::Commands::CI result.summary.print(); } + auto it_xunit = options.settings.find(OPTION_XUNIT); + if (it_xunit != options.settings.end()) + { + std::string xunit_doc = "<assemblies><assembly><collection>\n"; + + for (auto&& result : results) + xunit_doc += result.summary.xunit_results(); + + xunit_doc += "</collection></assembly></assemblies>\n"; + paths.get_filesystem().write_contents(fs::u8path(it_xunit->second), xunit_doc); + } + Checks::exit_success(VCPKG_LINE_INFO); } } diff --git a/toolsrc/src/vcpkg/commands.contact.cpp b/toolsrc/src/vcpkg/commands.contact.cpp index 421b8a230..8063fe317 100644 --- a/toolsrc/src/vcpkg/commands.contact.cpp +++ b/toolsrc/src/vcpkg/commands.contact.cpp @@ -1,7 +1,10 @@ #include "pch.h" +#include <vcpkg/base/chrono.h> #include <vcpkg/base/system.h> #include <vcpkg/commands.h> +#include <vcpkg/help.h> +#include <vcpkg/userconfig.h> namespace vcpkg::Commands::Contact { @@ -11,12 +14,40 @@ namespace vcpkg::Commands::Contact return S_EMAIL; } + static const CommandSwitch switches[] = {{"--survey", "Launch default browser to the current vcpkg survey"}}; + + const CommandStructure COMMAND_STRUCTURE = { + Help::create_example_string("contact"), + 0, + 0, + {switches, {}}, + nullptr, + }; + void perform_and_exit(const VcpkgCmdArguments& args) { - args.check_exact_arg_count(0); - args.check_and_get_optional_command_arguments({}); + auto parsed_args = args.parse_arguments(COMMAND_STRUCTURE); + + if (Util::Sets::contains(parsed_args.switches, switches[0].name)) + { +#if defined(_WIN32) + auto maybe_now = Chrono::CTime::get_current_date_time(); + if (auto p_now = maybe_now.get()) + { + auto& fs = Files::get_real_filesystem(); + auto config = UserConfig::try_read_data(fs); + config.last_completed_survey = p_now->to_string(); + config.try_write_data(fs); + } +#endif - System::println("Send an email to %s with any feedback.", email()); + System::cmd_execute("start https://aka.ms/NPS_vcpkg"); + System::println("Default browser launched to https://aka.ms/NPS_vcpkg, thank you for your feedback!"); + } + else + { + System::println("Send an email to %s with any feedback.", email()); + } Checks::exit_success(VCPKG_LINE_INFO); } } diff --git a/toolsrc/src/vcpkg/commands.cpp b/toolsrc/src/vcpkg/commands.cpp index 9d969ea28..15b10c7ea 100644 --- a/toolsrc/src/vcpkg/commands.cpp +++ b/toolsrc/src/vcpkg/commands.cpp @@ -13,7 +13,7 @@ namespace vcpkg::Commands Span<const PackageNameAndFunction<CommandTypeA>> get_available_commands_type_a() { static std::vector<PackageNameAndFunction<CommandTypeA>> t = { - {"install", &Install::perform_and_exit}, + PackageNameAndFunction<CommandTypeA>{"install", &Install::perform_and_exit}, {"ci", &CI::perform_and_exit}, {"remove", &Remove::perform_and_exit}, {"build", &Build::Command::perform_and_exit}, diff --git a/toolsrc/src/vcpkg/commands.create.cpp b/toolsrc/src/vcpkg/commands.create.cpp index 85763f25e..44f5f7928 100644 --- a/toolsrc/src/vcpkg/commands.create.cpp +++ b/toolsrc/src/vcpkg/commands.create.cpp @@ -4,23 +4,27 @@ #include <vcpkg/base/system.h> #include <vcpkg/commands.h> #include <vcpkg/help.h> -#include <vcpkg/vcpkglib.h> namespace vcpkg::Commands::Create { + const CommandStructure COMMAND_STRUCTURE = { + Help::create_example_string( + R"###(create zlib2 http://zlib.net/zlib1211.zip "zlib1211-2.zip")###"), + 2, + 3, + {}, + nullptr, + }; + void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths) { - static const std::string EXAMPLE = Help::create_example_string( - R"###(create zlib2 http://zlib.net/zlib1211.zip "zlib1211-2.zip")###"); - args.check_max_arg_count(3, EXAMPLE); - args.check_min_arg_count(2, EXAMPLE); - args.check_and_get_optional_command_arguments({}); + args.parse_arguments(COMMAND_STRUCTURE); const std::string port_name = args.command_arguments.at(0); const std::string url = args.command_arguments.at(1); const fs::path& cmake_exe = paths.get_cmake_exe(); - std::vector<CMakeVariable> cmake_args{{"CMD", "CREATE"}, {"PORT", port_name}, {"URL", url}}; + std::vector<System::CMakeVariable> cmake_args{{"CMD", "CREATE"}, {"PORT", port_name}, {"URL", url}}; if (args.command_arguments.size() >= 3) { diff --git a/toolsrc/src/vcpkg/commands.dependinfo.cpp b/toolsrc/src/vcpkg/commands.dependinfo.cpp index 89c7e0c7f..bb300d96e 100644 --- a/toolsrc/src/vcpkg/commands.dependinfo.cpp +++ b/toolsrc/src/vcpkg/commands.dependinfo.cpp @@ -9,11 +9,17 @@ namespace vcpkg::Commands::DependInfo { + const CommandStructure COMMAND_STRUCTURE = { + Help::create_example_string(R"###(depend-info [pat])###"), + 0, + 1, + {}, + nullptr, + }; + void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths) { - static const std::string EXAMPLE = Help::create_example_string(R"###(depend-info [pat])###"); - args.check_max_arg_count(1, EXAMPLE); - args.check_and_get_optional_command_arguments({}); + args.parse_arguments(COMMAND_STRUCTURE); std::vector<std::unique_ptr<SourceControlFile>> source_control_files = Paragraphs::load_all_ports(paths.get_filesystem(), paths.ports); diff --git a/toolsrc/src/vcpkg/commands.edit.cpp b/toolsrc/src/vcpkg/commands.edit.cpp index 668ec9b1a..e40e394fb 100644 --- a/toolsrc/src/vcpkg/commands.edit.cpp +++ b/toolsrc/src/vcpkg/commands.edit.cpp @@ -34,11 +34,6 @@ namespace vcpkg::Commands::Edit static const std::string OPTION_BUILDTREES = "--buildtrees"; - static const std::array<std::string, 1> SWITCHES = { - OPTION_BUILDTREES, - }; - static const std::array<std::string, 0> SETTINGS; - static std::vector<std::string> valid_arguments(const VcpkgPaths& paths) { auto sources_and_errors = Paragraphs::try_load_all_ports(paths.get_filesystem(), paths.ports); @@ -47,12 +42,15 @@ namespace vcpkg::Commands::Edit [](auto&& pgh) -> std::string { return pgh->core_paragraph->name; }); } + static const std::array<CommandSwitch, 1> EDIT_SWITCHES = {{ + {OPTION_BUILDTREES, "Open editor into the port-specific buildtree subfolder"}, + }}; + const CommandStructure COMMAND_STRUCTURE = { - "edit zlib", + Help::create_example_string("edit zlib"), 1, 1, - SWITCHES, - SETTINGS, + {EDIT_SWITCHES, {}}, &valid_arguments, }; @@ -63,10 +61,7 @@ namespace vcpkg::Commands::Edit auto& fs = paths.get_filesystem(); - static const std::string EXAMPLE = Help::create_example_string("edit zlib"); - args.check_exact_arg_count(1, EXAMPLE); - const std::unordered_set<std::string> options = - args.check_and_get_optional_command_arguments({OPTION_BUILDTREES}); + const ParsedArguments options = args.parse_arguments(COMMAND_STRUCTURE); const std::string port_name = args.command_arguments.at(0); const fs::path portpath = paths.ports / port_name; @@ -95,7 +90,7 @@ namespace vcpkg::Commands::Edit } const fs::path env_editor = *it; - if (options.find(OPTION_BUILDTREES) != options.cend()) + if (Util::Sets::contains(options.switches, OPTION_BUILDTREES)) { const auto buildtrees_current_dir = paths.buildtrees / port_name; diff --git a/toolsrc/src/vcpkg/commands.env.cpp b/toolsrc/src/vcpkg/commands.env.cpp index 9f8ae5207..6e52383d8 100644 --- a/toolsrc/src/vcpkg/commands.env.cpp +++ b/toolsrc/src/vcpkg/commands.env.cpp @@ -7,14 +7,20 @@ namespace vcpkg::Commands::Env { + const CommandStructure COMMAND_STRUCTURE = { + Help::create_example_string("env --triplet x64-windows"), + 0, + 0, + {}, + nullptr, + }; + void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths, const Triplet& default_triplet) { - static const std::string EXAMPLE = Help::create_example_string(R"(env --triplet x64-windows)"); - args.check_exact_arg_count(0, EXAMPLE); - args.check_and_get_optional_command_arguments({}); + args.parse_arguments(COMMAND_STRUCTURE); const auto pre_build_info = Build::PreBuildInfo::from_triplet_file(paths, default_triplet); - const Toolset& toolset = paths.get_toolset(pre_build_info.platform_toolset, pre_build_info.visual_studio_path); + const Toolset& toolset = paths.get_toolset(pre_build_info); System::cmd_execute_clean(Build::make_build_env_cmd(pre_build_info, toolset) + " && cmd"); Checks::exit_success(VCPKG_LINE_INFO); diff --git a/toolsrc/src/vcpkg/commands.hash.cpp b/toolsrc/src/vcpkg/commands.hash.cpp index 4bc58b509..a5940ea1e 100644 --- a/toolsrc/src/vcpkg/commands.hash.cpp +++ b/toolsrc/src/vcpkg/commands.hash.cpp @@ -28,13 +28,18 @@ namespace vcpkg::Commands::Hash System::println(hash); } + const CommandStructure COMMAND_STRUCTURE = { + Strings::format("The argument should be a file path\n%s", + Help::create_example_string("hash boost_1_62_0.tar.bz2")), + 1, + 2, + {}, + nullptr, + }; + void perform_and_exit(const VcpkgCmdArguments& args) { - static const std::string EXAMPLE = Strings::format("The argument should be a file path\n%s", - Help::create_example_string("hash boost_1_62_0.tar.bz2")); - args.check_min_arg_count(1, EXAMPLE); - args.check_max_arg_count(2, EXAMPLE); - args.check_and_get_optional_command_arguments({}); + args.parse_arguments(COMMAND_STRUCTURE); if (args.command_arguments.size() == 1) { diff --git a/toolsrc/src/vcpkg/commands.import.cpp b/toolsrc/src/vcpkg/commands.import.cpp index 119aee022..24394207b 100644 --- a/toolsrc/src/vcpkg/commands.import.cpp +++ b/toolsrc/src/vcpkg/commands.import.cpp @@ -92,12 +92,18 @@ namespace vcpkg::Commands::Import fs.write_contents(control_file_path, Strings::serialize(control_file_data)); } + const CommandStructure COMMAND_STRUCTURE = { + Help::create_example_string( + R"(import C:\path\to\CONTROLfile C:\path\to\includedir C:\path\to\projectdir)"), + 3, + 3, + {}, + nullptr, + }; + void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths) { - static const std::string EXAMPLE = Help::create_example_string( - R"(import C:\path\to\CONTROLfile C:\path\to\includedir C:\path\to\projectdir)"); - args.check_exact_arg_count(3, EXAMPLE); - args.check_and_get_optional_command_arguments({}); + args.parse_arguments(COMMAND_STRUCTURE); const fs::path control_file_path(args.command_arguments[0]); const fs::path include_directory(args.command_arguments[1]); diff --git a/toolsrc/src/vcpkg/commands.integrate.cpp b/toolsrc/src/vcpkg/commands.integrate.cpp index 27e563cfa..66c5eb5a9 100644 --- a/toolsrc/src/vcpkg/commands.integrate.cpp +++ b/toolsrc/src/vcpkg/commands.integrate.cpp @@ -139,7 +139,7 @@ namespace vcpkg::Commands::Integrate static fs::path get_appdata_targets_path() { static const fs::path LOCAL_APP_DATA = - fs::path(System::get_environment_variable("LOCALAPPDATA").value_or_exit(VCPKG_LINE_INFO)); + fs::u8path(System::get_environment_variable("LOCALAPPDATA").value_or_exit(VCPKG_LINE_INFO)); return LOCAL_APP_DATA / "vcpkg" / "vcpkg.user.targets"; } #endif @@ -257,7 +257,7 @@ CMake projects should use: "-DCMAKE_TOOLCHAIN_FILE=%s")", std::error_code ec; const bool was_deleted = fs.remove(path, ec); - Checks::check_exit(VCPKG_LINE_INFO, !ec, "Error: Unable to remove user-wide integration: %d", ec.message()); + Checks::check_exit(VCPKG_LINE_INFO, !ec, "Error: Unable to remove user-wide integration: %s", ec.message()); if (was_deleted) { @@ -333,10 +333,6 @@ With a project open, go to Tools->NuGet Package Manager->Package Manager Console static const std::string PROJECT = "project"; } - static const std::array<std::string, 0> INSTALL_SWITCHES; - - static const std::array<std::string, 0> INSTALL_SETTINGS; - static std::vector<std::string> valid_arguments(const VcpkgPaths&) { return {Subcommand::INSTALL, Subcommand::REMOVE, Subcommand::PROJECT}; @@ -348,18 +344,13 @@ With a project open, go to Tools->NuGet Package Manager->Package Manager Console INTEGRATE_COMMAND_HELPSTRING), 1, 1, - INSTALL_SWITCHES, - INSTALL_SETTINGS, + {}, &valid_arguments, }; void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths) { - static const std::string EXAMPLE = Strings::format("Commands:\n" - "%s", - INTEGRATE_COMMAND_HELPSTRING); - args.check_exact_arg_count(1, EXAMPLE); - args.check_and_get_optional_command_arguments({}); + args.parse_arguments(COMMAND_STRUCTURE); #if defined(_WIN32) if (args.command_arguments[0] == Subcommand::INSTALL) diff --git a/toolsrc/src/vcpkg/commands.list.cpp b/toolsrc/src/vcpkg/commands.list.cpp index d0e8e00b4..1f2387843 100644 --- a/toolsrc/src/vcpkg/commands.list.cpp +++ b/toolsrc/src/vcpkg/commands.list.cpp @@ -24,14 +24,23 @@ namespace vcpkg::Commands::List } } + static const std::array<CommandSwitch, 1> LIST_SWITCHES = {{ + {OPTION_FULLDESC, "Do not truncate long text"}, + }}; + + const CommandStructure COMMAND_STRUCTURE = { + Strings::format( + "The argument should be a substring to search for, or no argument to display all installed libraries.\n%s", + Help::create_example_string("list png")), + 0, + 1, + {LIST_SWITCHES, {}}, + nullptr, + }; + void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths) { - static const std::string EXAMPLE = Strings::format( - "The argument should be a substring to search for, or no argument to display all installed libraries.\n%s", - Help::create_example_string("list png")); - args.check_max_arg_count(1, EXAMPLE); - const std::unordered_set<std::string> options = - args.check_and_get_optional_command_arguments({OPTION_FULLDESC}); + const ParsedArguments options = args.parse_arguments(COMMAND_STRUCTURE); const StatusParagraphs status_paragraphs = database_load_check(paths); std::vector<StatusParagraph*> installed_packages = get_installed_ports(status_paragraphs); @@ -52,7 +61,7 @@ namespace vcpkg::Commands::List { for (const StatusParagraph* status_paragraph : installed_packages) { - do_print(*status_paragraph, options.find(OPTION_FULLDESC) != options.cend()); + do_print(*status_paragraph, Util::Sets::contains(options.switches, OPTION_FULLDESC)); } } else @@ -66,7 +75,7 @@ namespace vcpkg::Commands::List continue; } - do_print(*status_paragraph, options.find(OPTION_FULLDESC) != options.cend()); + do_print(*status_paragraph, Util::Sets::contains(options.switches, OPTION_FULLDESC)); } } diff --git a/toolsrc/src/vcpkg/commands.owns.cpp b/toolsrc/src/vcpkg/commands.owns.cpp index 69079e829..52249187b 100644 --- a/toolsrc/src/vcpkg/commands.owns.cpp +++ b/toolsrc/src/vcpkg/commands.owns.cpp @@ -23,15 +23,20 @@ namespace vcpkg::Commands::Owns } } } + const CommandStructure COMMAND_STRUCTURE = { + Strings::format("The argument should be a pattern to search for. %s", + Help::create_example_string("owns zlib.dll")), + 1, + 1, + {}, + nullptr, + }; void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths) { - static const std::string EXAMPLE = Strings::format("The argument should be a pattern to search for. %s", - Help::create_example_string("owns zlib.dll")); - args.check_exact_arg_count(1, EXAMPLE); - args.check_and_get_optional_command_arguments({}); + args.parse_arguments(COMMAND_STRUCTURE); - StatusParagraphs status_db = database_load_check(paths); + const StatusParagraphs status_db = database_load_check(paths); search_file(paths, args.command_arguments[0], status_db); Checks::exit_success(VCPKG_LINE_INFO); } diff --git a/toolsrc/src/vcpkg/commands.portsdiff.cpp b/toolsrc/src/vcpkg/commands.portsdiff.cpp index a8c043751..6752715e4 100644 --- a/toolsrc/src/vcpkg/commands.portsdiff.cpp +++ b/toolsrc/src/vcpkg/commands.portsdiff.cpp @@ -114,13 +114,18 @@ namespace vcpkg::Commands::PortsDiff VCPKG_LINE_INFO, output.output == VALID_COMMIT_OUTPUT, "Invalid commit id %s", git_commit_id); } + const CommandStructure COMMAND_STRUCTURE = { + Strings::format("The argument should be a branch/tag/hash to checkout.\n%s", + Help::create_example_string("portsdiff mybranchname")), + 1, + 2, + {}, + nullptr, + }; + void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths) { - static const std::string EXAMPLE = Strings::format("The argument should be a branch/tag/hash to checkout.\n%s", - Help::create_example_string("portsdiff mybranchname")); - args.check_min_arg_count(1, EXAMPLE); - args.check_max_arg_count(2, EXAMPLE); - args.check_and_get_optional_command_arguments({}); + args.parse_arguments(COMMAND_STRUCTURE); const fs::path& git_exe = paths.get_git_exe(); @@ -146,14 +151,14 @@ namespace vcpkg::Commands::PortsDiff const std::vector<std::string>& added_ports = setp.only_left; if (!added_ports.empty()) { - System::println("\nThe following %d ports were added:", added_ports.size()); + System::println("\nThe following %zd ports were added:", added_ports.size()); do_print_name_and_version(added_ports, current_names_and_versions); } const std::vector<std::string>& removed_ports = setp.only_right; if (!removed_ports.empty()) { - System::println("\nThe following %d ports were removed:", removed_ports.size()); + System::println("\nThe following %zd ports were removed:", removed_ports.size()); do_print_name_and_version(removed_ports, previous_names_and_versions); } @@ -163,7 +168,7 @@ namespace vcpkg::Commands::PortsDiff if (!updated_ports.empty()) { - System::println("\nThe following %d ports were updated:", updated_ports.size()); + System::println("\nThe following %zd ports were updated:", updated_ports.size()); for (const UpdatedPort& p : updated_ports) { System::println(" - %-14s %-16s", p.port, p.version_diff.to_string()); diff --git a/toolsrc/src/vcpkg/commands.search.cpp b/toolsrc/src/vcpkg/commands.search.cpp index 3ba8707de..01291ddfb 100644 --- a/toolsrc/src/vcpkg/commands.search.cpp +++ b/toolsrc/src/vcpkg/commands.search.cpp @@ -79,18 +79,29 @@ namespace vcpkg::Commands::Search } } + static std::array<CommandSwitch, 2> SEARCH_SWITCHES = {{ + {OPTION_GRAPH, "Open editor into the port-specific buildtree subfolder"}, + {OPTION_FULLDESC, "Do not truncate long text"}, + }}; + + const CommandStructure COMMAND_STRUCTURE = { + Strings::format( + "The argument should be a substring to search for, or no argument to display all libraries.\n%s", + Help::create_example_string("search png")), + 0, + 1, + {SEARCH_SWITCHES, {}}, + nullptr, + }; + void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths) { - static const std::string EXAMPLE = Strings::format( - "The argument should be a substring to search for, or no argument to display all libraries.\n%s", - Help::create_example_string("search png")); - args.check_max_arg_count(1, EXAMPLE); - const std::unordered_set<std::string> options = - args.check_and_get_optional_command_arguments({OPTION_GRAPH, OPTION_FULLDESC}); + const ParsedArguments options = args.parse_arguments(COMMAND_STRUCTURE); + const bool full_description = Util::Sets::contains(options.switches, OPTION_FULLDESC); auto source_paragraphs = Paragraphs::load_all_ports(paths.get_filesystem(), paths.ports); - if (options.find(OPTION_GRAPH) != options.cend()) + if (Util::Sets::contains(options.switches, OPTION_GRAPH)) { const std::string graph_as_string = create_graph_as_string(source_paragraphs); System::println(graph_as_string); @@ -101,12 +112,10 @@ namespace vcpkg::Commands::Search { for (const auto& source_control_file : source_paragraphs) { - do_print(*source_control_file->core_paragraph, options.find(OPTION_FULLDESC) != options.cend()); + do_print(*source_control_file->core_paragraph, full_description); for (auto&& feature_paragraph : source_control_file->feature_paragraphs) { - do_print(source_control_file->core_paragraph->name, - *feature_paragraph, - options.find(OPTION_FULLDESC) != options.cend()); + do_print(source_control_file->core_paragraph->name, *feature_paragraph, full_description); } } } @@ -120,10 +129,10 @@ namespace vcpkg::Commands::Search { auto&& sp = *source_control_file->core_paragraph; - bool contains_name = icontains(sp.name, args_zero); + const bool contains_name = icontains(sp.name, args_zero); if (contains_name || icontains(sp.description, args_zero)) { - do_print(sp, options.find(OPTION_FULLDESC) != options.cend()); + do_print(sp, full_description); } for (auto&& feature_paragraph : source_control_file->feature_paragraphs) @@ -131,7 +140,7 @@ namespace vcpkg::Commands::Search if (contains_name || icontains(feature_paragraph->name, args_zero) || icontains(feature_paragraph->description, args_zero)) { - do_print(sp.name, *feature_paragraph, options.find(OPTION_FULLDESC) != options.cend()); + do_print(sp.name, *feature_paragraph, full_description); } } } diff --git a/toolsrc/src/vcpkg/commands.version.cpp b/toolsrc/src/vcpkg/commands.version.cpp index 403c355b5..3f44cf1a2 100644 --- a/toolsrc/src/vcpkg/commands.version.cpp +++ b/toolsrc/src/vcpkg/commands.version.cpp @@ -2,6 +2,7 @@ #include <vcpkg/base/system.h> #include <vcpkg/commands.h> +#include <vcpkg/help.h> #include <vcpkg/metrics.h> #define STRINGIFY(...) #__VA_ARGS__ @@ -61,11 +62,17 @@ namespace vcpkg::Commands::Version } } } + const CommandStructure COMMAND_STRUCTURE = { + Help::create_example_string("version"), + 0, + 0, + {}, + nullptr, + }; void perform_and_exit(const VcpkgCmdArguments& args) { - args.check_exact_arg_count(0); - args.check_and_get_optional_command_arguments({}); + args.parse_arguments(COMMAND_STRUCTURE); System::println("Vcpkg package management program version %s\n" "\n" diff --git a/toolsrc/src/vcpkg/dependencies.cpp b/toolsrc/src/vcpkg/dependencies.cpp index 02b2ec785..6f599afd4 100644 --- a/toolsrc/src/vcpkg/dependencies.cpp +++ b/toolsrc/src/vcpkg/dependencies.cpp @@ -112,33 +112,41 @@ namespace vcpkg::Dependencies std::vector<PackageSpec> AnyParagraph::dependencies(const Triplet& triplet) const { - auto to_package_specs = [&](const std::vector<std::string>& dependencies_as_string) { - return Util::fmap(dependencies_as_string, [&](const std::string s) { - return PackageSpec::from_name_and_triplet(s, triplet).value_or_exit(VCPKG_LINE_INFO); - }); - }; - - if (auto p = this->status_paragraph.get()) + if (const auto p = this->status_paragraph.get()) { - return to_package_specs(p->package.depends); + return PackageSpec::to_package_specs(p->package.depends, triplet); } - if (auto p = this->binary_control_file.get()) + if (const auto p = this->binary_control_file.get()) { auto deps = Util::fmap_flatten(p->features, [](const BinaryParagraph& pgh) { return pgh.depends; }); - deps.insert(deps.end(), p->core_paragraph.depends.begin(), p->core_paragraph.depends.end()); - return to_package_specs(deps); + deps.insert(deps.end(), p->core_paragraph.depends.cbegin(), p->core_paragraph.depends.cend()); + return PackageSpec::to_package_specs(deps, triplet); } - if (auto p = this->source_paragraph.get()) + if (const auto p = this->source_paragraph.get()) { - return to_package_specs(filter_dependencies(p->depends, triplet)); + return PackageSpec::to_package_specs(filter_dependencies(p->depends, triplet), triplet); } Checks::exit_with_message(VCPKG_LINE_INFO, "Cannot get dependencies because there was none of: source/binary/status paragraphs"); } + std::string to_output_string(RequestType request_type, + const CStringView s, + const Build::BuildPackageOptions& options) + { + const char* const from_head = options.use_head_version == Build::UseHeadVersion::YES ? " (from HEAD)" : ""; + + switch (request_type) + { + case RequestType::AUTO_SELECTED: return Strings::format(" * %s%s", s, from_head); + case RequestType::USER_REQUESTED: return Strings::format(" %s%s", s, from_head); + default: Checks::unreachable(VCPKG_LINE_INFO); + } + } + std::string to_output_string(RequestType request_type, const CStringView s) { switch (request_type) @@ -611,10 +619,38 @@ namespace vcpkg::Dependencies { Cluster& spec_cluster = graph.get(spec.spec()); spec_cluster.request_type = RequestType::USER_REQUESTED; - auto res = mark_plus(spec.feature(), spec_cluster, graph, graph_plan); + if (spec.feature() == "*") + { + if (auto p_scf = spec_cluster.source_control_file.value_or(nullptr)) + { + for (auto&& feature : p_scf->feature_paragraphs) + { + auto res = mark_plus(feature->name, spec_cluster, graph, graph_plan); + + Checks::check_exit(VCPKG_LINE_INFO, + res == MarkPlusResult::SUCCESS, + "Error: Unable to locate feature %s", + spec); + } + + auto res = mark_plus("core", spec_cluster, graph, graph_plan); + + Checks::check_exit( + VCPKG_LINE_INFO, res == MarkPlusResult::SUCCESS, "Error: Unable to locate feature %s", spec); + } + else + { + Checks::exit_with_message( + VCPKG_LINE_INFO, "Error: Unable to handle '*' because can't find CONTROL for %s", spec.spec()); + } + } + else + { + auto res = mark_plus(spec.feature(), spec_cluster, graph, graph_plan); - Checks::check_exit( - VCPKG_LINE_INFO, res == MarkPlusResult::SUCCESS, "Error: Unable to locate feature %s", spec); + Checks::check_exit( + VCPKG_LINE_INFO, res == MarkPlusResult::SUCCESS, "Error: Unable to locate feature %s", spec); + } graph_plan.install_graph.add_vertex(ClusterPtr{&spec_cluster}); } diff --git a/toolsrc/src/vcpkg/export.cpp b/toolsrc/src/vcpkg/export.cpp index f0a3b23d0..32cb6f03e 100644 --- a/toolsrc/src/vcpkg/export.cpp +++ b/toolsrc/src/vcpkg/export.cpp @@ -4,6 +4,7 @@ #include <vcpkg/base/util.h> #include <vcpkg/commands.h> #include <vcpkg/dependencies.h> +#include <vcpkg/export.h> #include <vcpkg/export.ifw.h> #include <vcpkg/help.h> #include <vcpkg/input.h> @@ -68,6 +69,8 @@ namespace vcpkg::Export { static constexpr std::array<ExportPlanType, 2> ORDER = {ExportPlanType::ALREADY_BUILT, ExportPlanType::PORT_AVAILABLE_BUT_NOT_BUILT}; + static constexpr Build::BuildPackageOptions build_options = {Build::UseHeadVersion::NO, + Build::AllowDownloads::YES}; for (const ExportPlanType plan_type : ORDER) { @@ -80,7 +83,7 @@ namespace vcpkg::Export std::vector<const ExportPlanAction*> cont = it->second; std::sort(cont.begin(), cont.end(), &ExportPlanAction::compare_by_name); const std::string as_string = Strings::join("\n", cont, [](const ExportPlanAction* p) { - return Dependencies::to_output_string(p->request_type, p->spec.to_string()); + return Dependencies::to_output_string(p->request_type, p->spec.to_string(), build_options); }); switch (plan_type) @@ -255,51 +258,57 @@ namespace vcpkg::Export std::vector<PackageSpec> specs; }; + static const std::string OPTION_DRY_RUN = "--dry-run"; + static const std::string OPTION_RAW = "--raw"; + static const std::string OPTION_NUGET = "--nuget"; + static const std::string OPTION_IFW = "--ifw"; + static const std::string OPTION_ZIP = "--zip"; + static const std::string OPTION_SEVEN_ZIP = "--7zip"; + static const std::string OPTION_NUGET_ID = "--nuget-id"; + static const std::string OPTION_NUGET_VERSION = "--nuget-version"; + static const std::string OPTION_IFW_REPOSITORY_URL = "--ifw-repository-url"; + static const std::string OPTION_IFW_PACKAGES_DIR_PATH = "--ifw-packages-directory-path"; + static const std::string OPTION_IFW_REPOSITORY_DIR_PATH = "--ifw-repository-directory-path"; + static const std::string OPTION_IFW_CONFIG_FILE_PATH = "--ifw-configuration-file-path"; + static const std::string OPTION_IFW_INSTALLER_FILE_PATH = "--ifw-installer-file-path"; + + static const std::array<CommandSwitch, 6> EXPORT_SWITCHES = {{ + {OPTION_DRY_RUN, "Do not actually export"}, + {OPTION_RAW, "Export to an uncompressed directory"}, + {OPTION_NUGET, "Export a NuGet package"}, + {OPTION_IFW, "Export to an IFW-based installer"}, + {OPTION_ZIP, "Export to a zip file"}, + {OPTION_SEVEN_ZIP, "Export to a 7zip (.7z) file"}, + }}; + static const std::array<CommandSetting, 7> EXPORT_SETTINGS = {{ + {OPTION_NUGET_ID, "Specify the id for the exported NuGet package"}, + {OPTION_NUGET_VERSION, "Specify the version for the exported NuGet package"}, + {OPTION_IFW_REPOSITORY_URL, "Specify the remote repository URL for the online installer"}, + {OPTION_IFW_PACKAGES_DIR_PATH, "Specify the temporary directory path for the repacked packages"}, + {OPTION_IFW_REPOSITORY_DIR_PATH, "Specify the directory path for the exported repository"}, + {OPTION_IFW_CONFIG_FILE_PATH, "Specify the temporary file path for the installer configuration"}, + {OPTION_IFW_INSTALLER_FILE_PATH, "Specify the file path for the exported installer"}, + }}; + + const CommandStructure COMMAND_STRUCTURE = { + Help::create_example_string("export zlib zlib:x64-windows boost --nuget"), + 0, + SIZE_MAX, + {EXPORT_SWITCHES, EXPORT_SETTINGS}, + nullptr, + }; + static ExportArguments handle_export_command_arguments(const VcpkgCmdArguments& args, const Triplet& default_triplet) { ExportArguments ret; - static const std::string OPTION_DRY_RUN = "--dry-run"; - static const std::string OPTION_RAW = "--raw"; - static const std::string OPTION_NUGET = "--nuget"; - static const std::string OPTION_IFW = "--ifw"; - static const std::string OPTION_ZIP = "--zip"; - static const std::string OPTION_SEVEN_ZIP = "--7zip"; - static const std::string OPTION_NUGET_ID = "--nuget-id"; - static const std::string OPTION_NUGET_VERSION = "--nuget-version"; - static const std::string OPTION_IFW_REPOSITORY_URL = "--ifw-repository-url"; - static const std::string OPTION_IFW_PACKAGES_DIR_PATH = "--ifw-packages-directory-path"; - static const std::string OPTION_IFW_REPOSITORY_DIR_PATH = "--ifw-repository-directory-path"; - static const std::string OPTION_IFW_CONFIG_FILE_PATH = "--ifw-configuration-file-path"; - static const std::string OPTION_IFW_INSTALLER_FILE_PATH = "--ifw-installer-file-path"; + const auto options = args.parse_arguments(COMMAND_STRUCTURE); // input sanitization - static const std::string EXAMPLE = Help::create_example_string("export zlib zlib:x64-windows boost --nuget"); - args.check_min_arg_count(1, EXAMPLE); - ret.specs = Util::fmap(args.command_arguments, [&](auto&& arg) { - return Input::check_and_get_package_spec(arg, default_triplet, EXAMPLE); + return Input::check_and_get_package_spec(arg, default_triplet, COMMAND_STRUCTURE.example_text); }); - - const auto options = args.check_and_get_optional_command_arguments( - { - OPTION_DRY_RUN, - OPTION_RAW, - OPTION_NUGET, - OPTION_IFW, - OPTION_ZIP, - OPTION_SEVEN_ZIP, - }, - { - OPTION_NUGET_ID, - OPTION_NUGET_VERSION, - OPTION_IFW_REPOSITORY_URL, - OPTION_IFW_PACKAGES_DIR_PATH, - OPTION_IFW_REPOSITORY_DIR_PATH, - OPTION_IFW_CONFIG_FILE_PATH, - OPTION_IFW_INSTALLER_FILE_PATH, - }); ret.dry_run = options.switches.find(OPTION_DRY_RUN) != options.switches.cend(); ret.raw = options.switches.find(OPTION_RAW) != options.switches.cend(); ret.nuget = options.switches.find(OPTION_NUGET) != options.switches.cend(); @@ -311,7 +320,7 @@ namespace vcpkg::Export { System::println(System::Color::error, "Must provide at least one export type: --raw --nuget --ifw --zip --7zip"); - System::print(EXAMPLE); + System::print(COMMAND_STRUCTURE.example_text); Checks::exit_fail(VCPKG_LINE_INFO); } @@ -360,7 +369,8 @@ namespace vcpkg::Export static void print_next_step_info(const fs::path& prefix) { const fs::path cmake_toolchain = prefix / "scripts" / "buildsystems" / "vcpkg.cmake"; - const CMakeVariable cmake_variable = CMakeVariable("CMAKE_TOOLCHAIN_FILE", cmake_toolchain.generic_string()); + const System::CMakeVariable cmake_variable = + System::CMakeVariable("CMAKE_TOOLCHAIN_FILE", cmake_toolchain.generic_string()); System::println("\n" "To use the exported libraries in CMake projects use:" "\n" diff --git a/toolsrc/src/vcpkg/globalstate.cpp b/toolsrc/src/vcpkg/globalstate.cpp index 43230fa4b..123c77d46 100644 --- a/toolsrc/src/vcpkg/globalstate.cpp +++ b/toolsrc/src/vcpkg/globalstate.cpp @@ -4,7 +4,9 @@ namespace vcpkg { - Util::LockGuarded<Chrono::ElapsedTime> GlobalState::timer; + Util::LockGuarded<Chrono::ElapsedTimer> GlobalState::timer; + Util::LockGuarded<std::string> GlobalState::g_surveydate; + std::atomic<bool> GlobalState::debugging(false); std::atomic<bool> GlobalState::feature_packages(false); diff --git a/toolsrc/src/vcpkg/help.cpp b/toolsrc/src/vcpkg/help.cpp index 2a0578211..c83f0277b 100644 --- a/toolsrc/src/vcpkg/help.cpp +++ b/toolsrc/src/vcpkg/help.cpp @@ -2,15 +2,68 @@ #include <vcpkg/base/system.h> #include <vcpkg/commands.h> +#include <vcpkg/export.h> +#include <vcpkg/help.h> +#include <vcpkg/install.h> +#include <vcpkg/remove.h> namespace vcpkg::Help { - void help_topics() + struct Topic + { + using topic_function = void (*)(const VcpkgPaths& paths); + + constexpr Topic(CStringView n, topic_function fn) : name(n), print(fn) {} + + CStringView name; + topic_function print; + }; + + template<const CommandStructure& S> + static void command_topic_fn(const VcpkgPaths&) + { + display_usage(S); + } + + static void integrate_topic_fn(const VcpkgPaths&) + { + System::print("Commands:\n" + "%s", + Commands::Integrate::INTEGRATE_COMMAND_HELPSTRING); + } + + static void help_topics(const VcpkgPaths&); + + const CommandStructure COMMAND_STRUCTURE = { + Help::create_example_string("help"), + 0, + 1, + {}, + nullptr, + }; + + static constexpr std::array<Topic, 12> topics = {{ + {"create", command_topic_fn<Commands::Create::COMMAND_STRUCTURE>}, + {"edit", command_topic_fn<Commands::Edit::COMMAND_STRUCTURE>}, + {"env", command_topic_fn<Commands::Env::COMMAND_STRUCTURE>}, + {"export", command_topic_fn<Export::COMMAND_STRUCTURE>}, + {"help", command_topic_fn<Help::COMMAND_STRUCTURE>}, + {"install", command_topic_fn<Install::COMMAND_STRUCTURE>}, + {"integrate", integrate_topic_fn}, + {"list", command_topic_fn<Commands::List::COMMAND_STRUCTURE>}, + {"owns", command_topic_fn<Commands::Owns::COMMAND_STRUCTURE>}, + {"remove", command_topic_fn<Remove::COMMAND_STRUCTURE>}, + {"search", command_topic_fn<Commands::Search::COMMAND_STRUCTURE>}, + {"topics", help_topics}, + }}; + + static void help_topics(const VcpkgPaths&) { System::println("Available help topics:\n" " triplet\n" - " integrate\n" - " export"); + " integrate" + "%s", + Strings::join("", topics, [](const Topic& topic) { return std::string("\n ") + topic.name; })); } void help_topic_valid_triplet(const VcpkgPaths& paths) @@ -22,21 +75,6 @@ namespace vcpkg::Help } } - void help_topic_export() - { - System::println("Summary:\n" - " vcpkg export [options] <pkgs>...\n" - "\n" - "Options:\n" - " --7zip Export to a 7zip (.7z) file\n" - " --dry-run Do not actually export\n" - " --nuget Export a NuGet package\n" - " --nuget-id=<id> Specify the id for the exported NuGet package\n" - " --nuget-version=<ver> Specify the version for the exported NuGet package\n" - " --raw Export to an uncompressed directory\n" - " --zip Export to a zip file"); - } - void print_usage() { System::println( @@ -86,15 +124,9 @@ namespace vcpkg::Help return cs; } - void print_example(const std::string& command_and_arguments) - { - System::println(create_example_string(command_and_arguments)); - } - void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths) { - args.check_max_arg_count(1); - args.check_and_get_optional_command_arguments({}); + args.parse_arguments(COMMAND_STRUCTURE); if (args.command_arguments.empty()) { @@ -105,27 +137,18 @@ namespace vcpkg::Help if (topic == "triplet" || topic == "triplets" || topic == "triple") { help_topic_valid_triplet(paths); + Checks::exit_success(VCPKG_LINE_INFO); } - else if (topic == "export") - { - help_topic_export(); - } - else if (topic == "integrate") - { - System::print("Commands:\n" - "%s", - Commands::Integrate::INTEGRATE_COMMAND_HELPSTRING); - } - else if (topic == "topics") - { - help_topics(); - } - else + + auto it_topic = Util::find_if(topics, [&](const Topic& t) { return t.name == topic; }); + if (it_topic != topics.end()) { - System::println(System::Color::error, "Error: unknown topic %s", topic); - help_topics(); - Checks::exit_fail(VCPKG_LINE_INFO); + it_topic->print(paths); + Checks::exit_success(VCPKG_LINE_INFO); } - Checks::exit_success(VCPKG_LINE_INFO); + + System::println(System::Color::error, "Error: unknown topic %s", topic); + help_topics(paths); + Checks::exit_fail(VCPKG_LINE_INFO); } } diff --git a/toolsrc/src/vcpkg/install.cpp b/toolsrc/src/vcpkg/install.cpp index bd924fcba..76dc7a527 100644 --- a/toolsrc/src/vcpkg/install.cpp +++ b/toolsrc/src/vcpkg/install.cpp @@ -247,11 +247,11 @@ namespace vcpkg::Install } using Build::BuildResult; + using Build::ExtendedBuildResult; - BuildResult perform_install_plan_action(const VcpkgPaths& paths, - const InstallPlanAction& action, - const Build::BuildPackageOptions& build_package_options, - StatusParagraphs& status_db) + ExtendedBuildResult perform_install_plan_action(const VcpkgPaths& paths, + const InstallPlanAction& action, + StatusParagraphs& status_db) { const InstallPlanType& plan_type = action.plan_type; const std::string display_name = action.spec.to_string(); @@ -259,7 +259,7 @@ namespace vcpkg::Install GlobalState::feature_packages ? action.displayname() : display_name; const bool is_user_requested = action.request_type == RequestType::USER_REQUESTED; - const bool use_head_version = to_bool(build_package_options.use_head_version); + const bool use_head_version = Util::Enum::to_bool(action.build_options.use_head_version); if (plan_type == InstallPlanType::ALREADY_INSTALLED) { @@ -271,6 +271,19 @@ namespace vcpkg::Install return BuildResult::SUCCEEDED; } + auto aux_install = [&](const std::string& name, const BinaryControlFile& bcf) -> BuildResult { + System::println("Installing package %s... ", name); + const auto install_result = install_package(paths, bcf, &status_db); + switch (install_result) + { + case InstallResult::SUCCESS: + System::println(System::Color::success, "Installing package %s... done", name); + return BuildResult::SUCCEEDED; + case InstallResult::FILE_CONFLICTS: return BuildResult::FILE_CONFLICTS; + default: Checks::unreachable(VCPKG_LINE_INFO); + } + }; + if (plan_type == InstallPlanType::BUILD_AND_INSTALL) { if (use_head_version) @@ -278,14 +291,14 @@ namespace vcpkg::Install else System::println("Building package %s... ", display_name_with_features); - const auto result = [&]() -> Build::ExtendedBuildResult { + auto result = [&]() -> Build::ExtendedBuildResult { if (GlobalState::feature_packages) { const Build::BuildPackageConfig build_config{ *action.any_paragraph.source_control_file.value_or_exit(VCPKG_LINE_INFO), action.spec.triplet(), paths.port_dir(action.spec), - build_package_options, + action.build_options, action.feature_list}; return Build::build_package(paths, build_config, status_db); } @@ -295,7 +308,7 @@ namespace vcpkg::Install action.any_paragraph.source_paragraph.value_or_exit(VCPKG_LINE_INFO), action.spec.triplet(), paths.port_dir(action.spec), - build_package_options}; + action.build_options}; return Build::build_package(paths, build_config, status_db); } }(); @@ -303,23 +316,15 @@ namespace vcpkg::Install if (result.code != Build::BuildResult::SUCCEEDED) { System::println(System::Color::error, Build::create_error_message(result.code, action.spec)); - return result.code; + return result; } System::println("Building package %s... done", display_name_with_features); - const BinaryControlFile bcf = - Paragraphs::try_load_cached_control_package(paths, action.spec).value_or_exit(VCPKG_LINE_INFO); - System::println("Installing package %s... ", display_name_with_features); - const auto install_result = install_package(paths, bcf, &status_db); - switch (install_result) - { - case InstallResult::SUCCESS: - System::println(System::Color::success, "Installing package %s... done", display_name); - return BuildResult::SUCCEEDED; - case InstallResult::FILE_CONFLICTS: return BuildResult::FILE_CONFLICTS; - default: Checks::unreachable(VCPKG_LINE_INFO); - } + auto bcf = std::make_unique<BinaryControlFile>( + Paragraphs::try_load_cached_control_package(paths, action.spec).value_or_exit(VCPKG_LINE_INFO)); + auto code = aux_install(display_name_with_features, *bcf); + return {code, std::move(bcf)}; } if (plan_type == InstallPlanType::INSTALL) @@ -329,29 +334,28 @@ namespace vcpkg::Install System::println( System::Color::warning, "Package %s is already built -- not building from HEAD", display_name); } - System::println("Installing package %s... ", display_name); - const auto install_result = install_package( - paths, action.any_paragraph.binary_control_file.value_or_exit(VCPKG_LINE_INFO), &status_db); - switch (install_result) - { - case InstallResult::SUCCESS: - System::println(System::Color::success, "Installing package %s... done", display_name); - return BuildResult::SUCCEEDED; - case InstallResult::FILE_CONFLICTS: return BuildResult::FILE_CONFLICTS; - default: Checks::unreachable(VCPKG_LINE_INFO); - } + auto code = aux_install(display_name_with_features, + action.any_paragraph.binary_control_file.value_or_exit(VCPKG_LINE_INFO)); + return code; + } + + if (plan_type == InstallPlanType::EXCLUDED) + { + System::println(System::Color::warning, "Package %s is excluded", display_name); + return BuildResult::EXCLUDED; } Checks::unreachable(VCPKG_LINE_INFO); } - static void print_plan(const std::vector<AnyAction>& action_plan, bool is_recursive) + static void print_plan(const std::vector<AnyAction>& action_plan, const bool is_recursive) { std::vector<const RemovePlanAction*> remove_plans; std::vector<const InstallPlanAction*> rebuilt_plans; std::vector<const InstallPlanAction*> only_install_plans; std::vector<const InstallPlanAction*> new_plans; std::vector<const InstallPlanAction*> already_installed_plans; + std::vector<const InstallPlanAction*> excluded; const bool has_non_user_requested_packages = Util::find_if(action_plan, [](const AnyAction& package) -> bool { if (auto iplan = package.install_plan.get()) @@ -382,6 +386,7 @@ namespace vcpkg::Install already_installed_plans.emplace_back(install_action); break; case InstallPlanType::BUILD_AND_INSTALL: new_plans.emplace_back(install_action); break; + case InstallPlanType::EXCLUDED: excluded.emplace_back(install_action); break; default: Checks::unreachable(VCPKG_LINE_INFO); } } @@ -397,39 +402,40 @@ namespace vcpkg::Install std::sort(only_install_plans.begin(), only_install_plans.end(), &InstallPlanAction::compare_by_name); std::sort(new_plans.begin(), new_plans.end(), &InstallPlanAction::compare_by_name); std::sort(already_installed_plans.begin(), already_installed_plans.end(), &InstallPlanAction::compare_by_name); + std::sort(excluded.begin(), excluded.end(), &InstallPlanAction::compare_by_name); + + static auto actions_to_output_string = [](const std::vector<const InstallPlanAction*>& v) { + return Strings::join("\n", v, [](const InstallPlanAction* p) { + return to_output_string(p->request_type, p->displayname(), p->build_options); + }); + }; + + if (excluded.size() > 0) + { + System::println("The following packages are excluded:\n%s", actions_to_output_string(excluded)); + } if (already_installed_plans.size() > 0) { - const std::string already_string = - Strings::join("\n", already_installed_plans, [](const InstallPlanAction* p) { - return to_output_string(p->request_type, p->displayname()); - }); - System::println("The following packages are already installed:\n%s", already_string); + System::println("The following packages are already installed:\n%s", + actions_to_output_string(already_installed_plans)); } if (rebuilt_plans.size() > 0) { - const std::string rebuilt_string = Strings::join("\n", rebuilt_plans, [](const InstallPlanAction* p) { - return to_output_string(p->request_type, p->displayname()); - }); - System::println("The following packages will be rebuilt:\n%s", rebuilt_string); + System::println("The following packages will be rebuilt:\n%s", actions_to_output_string(rebuilt_plans)); } if (new_plans.size() > 0) { - const std::string new_string = Strings::join("\n", new_plans, [](const InstallPlanAction* p) { - return to_output_string(p->request_type, p->displayname()); - }); - System::println("The following packages will be built and installed:\n%s", new_string); + System::println("The following packages will be built and installed:\n%s", + actions_to_output_string(new_plans)); } if (only_install_plans.size() > 0) { - const std::string only_install_string = - Strings::join("\n", only_install_plans, [](const InstallPlanAction* p) { - return to_output_string(p->request_type, p->displayname()); - }); - System::println("The following packages will be directly installed:\n%s", only_install_string); + System::println("The following packages will be directly installed:\n%s", + actions_to_output_string(only_install_plans)); } if (has_non_user_requested_packages) @@ -450,7 +456,7 @@ namespace vcpkg::Install for (const SpecSummary& result : this->results) { - System::println(" %s: %s: %s", result.spec, Build::to_string(result.result), result.timing); + System::println(" %s: %s: %s", result.spec, Build::to_string(result.build_result.code), result.timing); } std::map<BuildResult, int> summary; @@ -461,7 +467,7 @@ namespace vcpkg::Install for (const SpecSummary& r : this->results) { - summary[r.result]++; + summary[r.build_result.code]++; } System::println("\nSUMMARY"); @@ -472,39 +478,38 @@ namespace vcpkg::Install } InstallSummary perform(const std::vector<AnyAction>& action_plan, - const Build::BuildPackageOptions& install_plan_options, const KeepGoing keep_going, const VcpkgPaths& paths, StatusParagraphs& status_db) { std::vector<SpecSummary> results; - const auto timer = Chrono::ElapsedTime::create_started(); + const auto timer = Chrono::ElapsedTimer::create_started(); size_t counter = 0; const size_t package_count = action_plan.size(); for (const auto& action : action_plan) { - const auto build_timer = Chrono::ElapsedTime::create_started(); + const auto build_timer = Chrono::ElapsedTimer::create_started(); counter++; const PackageSpec& spec = action.spec(); const std::string display_name = spec.to_string(); - System::println("Starting package %d/%d: %s", counter, package_count, display_name); + System::println("Starting package %zd/%zd: %s", counter, package_count, display_name); - results.push_back(SpecSummary{spec}); + results.emplace_back(spec, &action); if (const auto install_action = action.install_plan.get()) { - const BuildResult result = - perform_install_plan_action(paths, *install_action, install_plan_options, status_db); - if (result != BuildResult::SUCCEEDED && keep_going == KeepGoing::NO) + auto result = perform_install_plan_action(paths, *install_action, status_db); + + if (result.code != BuildResult::SUCCEEDED && keep_going == KeepGoing::NO) { System::println(Build::create_user_troubleshooting_message(install_action->spec)); Checks::exit_fail(VCPKG_LINE_INFO); } - results.back().result = result; + results.back().build_result = std::move(result); } else if (const auto remove_action = action.remove_plan.get()) { @@ -516,11 +521,11 @@ namespace vcpkg::Install Checks::unreachable(VCPKG_LINE_INFO); } - results.back().timing = build_timer.to_string(); - System::println("Elapsed time for package %s: %s", display_name, build_timer.to_string()); + results.back().timing = build_timer.elapsed(); + System::println("Elapsed time for package %s: %s", display_name, results.back().timing.to_string()); } - return InstallSummary{results, timer.to_string()}; + return InstallSummary{std::move(results), timer.to_string()}; } static const std::string OPTION_DRY_RUN = "--dry-run"; @@ -528,17 +533,20 @@ namespace vcpkg::Install static const std::string OPTION_NO_DOWNLOADS = "--no-downloads"; static const std::string OPTION_RECURSE = "--recurse"; static const std::string OPTION_KEEP_GOING = "--keep-going"; - - static const std::array<std::string, 5> INSTALL_SWITCHES = { - OPTION_DRY_RUN, - OPTION_USE_HEAD_VERSION, - OPTION_NO_DOWNLOADS, - OPTION_RECURSE, - OPTION_KEEP_GOING, - }; - static const std::array<std::string, 0> INSTALL_SETTINGS; - - static std::vector<std::string> valid_arguments(const VcpkgPaths& paths) + static const std::string OPTION_XUNIT = "--x-xunit"; + + static const std::array<CommandSwitch, 5> INSTALL_SWITCHES = {{ + {OPTION_DRY_RUN, "Do not actually build or install"}, + {OPTION_USE_HEAD_VERSION, "Install the libraries on the command line using the latest upstream sources"}, + {OPTION_NO_DOWNLOADS, "Do not download new sources"}, + {OPTION_RECURSE, "Allow removal of packages as part of installation"}, + {OPTION_KEEP_GOING, "Continue installing packages on failure"}, + }}; + static const std::array<CommandSetting, 1> INSTALL_SETTINGS = {{ + {OPTION_XUNIT, "File to output results in XUnit format (Internal use)"}, + }}; + + std::vector<std::string> get_all_port_names(const VcpkgPaths& paths) { auto sources_and_errors = Paragraphs::try_load_all_ports(paths.get_filesystem(), paths.ports); @@ -547,22 +555,99 @@ namespace vcpkg::Install } const CommandStructure COMMAND_STRUCTURE = { - "install zlib zlib:x64-windows curl boost", + Help::create_example_string("install zlib zlib:x64-windows curl boost"), 1, SIZE_MAX, - INSTALL_SWITCHES, - INSTALL_SETTINGS, - &valid_arguments, + {INSTALL_SWITCHES, INSTALL_SETTINGS}, + &get_all_port_names, }; + static void print_cmake_information(const BinaryParagraph& bpgh, const VcpkgPaths& paths) + { + static const std::regex cmake_library_regex(R"(\badd_library\(([^\s\)]+)\s)", std::regex_constants::ECMAScript); + + auto& fs = paths.get_filesystem(); + + auto usage_file = paths.installed / bpgh.spec.triplet().canonical_name() / "share" / bpgh.spec.name() / "usage"; + if (fs.exists(usage_file)) + { + auto maybe_contents = fs.read_contents(usage_file); + if (auto p_contents = maybe_contents.get()) + { + System::println(*p_contents); + } + return; + } + + auto files = fs.read_lines(paths.listfile_path(bpgh)); + if (auto p_lines = files.get()) + { + std::map<std::string, std::vector<std::string>> library_targets; + + for (auto&& suffix : *p_lines) + { + if (Strings::case_insensitive_ascii_find(suffix, "/share/") != suffix.end() && + suffix.substr(suffix.size() - 6) == ".cmake") + { + // File is inside the share folder + auto path = paths.installed / suffix; + auto maybe_contents = fs.read_contents(path); + auto find_package_name = path.parent_path().filename().u8string(); + if (auto p_contents = maybe_contents.get()) + { + std::sregex_iterator next(p_contents->begin(), p_contents->end(), cmake_library_regex); + std::sregex_iterator last; + + while (next != last) + { + auto match = *next; + library_targets[find_package_name].push_back(match[1]); + ++next; + } + } + } + } + + if (library_targets.empty()) + { + } + else + { + System::println("The package %s provides CMake targets:\n", bpgh.spec); + + for (auto&& library_target_pair : library_targets) + { + if (library_target_pair.second.size() <= 4) + { + System::println(" find_package(%s REQUIRED)\n" + " target_link_libraries(main PRIVATE %s)\n", + library_target_pair.first, + Strings::join(" ", library_target_pair.second)); + } + else + { + auto omitted = library_target_pair.second.size() - 4; + library_target_pair.second.erase(library_target_pair.second.begin() + 4, + library_target_pair.second.end()); + System::println(" find_package(%s REQUIRED)\n" + " # Note: %zd targets were omitted\n" + " target_link_libraries(main PRIVATE %s)\n", + library_target_pair.first, + omitted, + Strings::join(" ", library_target_pair.second)); + } + } + } + } + } + void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths, const Triplet& default_triplet) { // input sanitization - static const std::string EXAMPLE = Help::create_example_string("install zlib zlib:x64-windows curl boost"); - args.check_min_arg_count(1, EXAMPLE); + const ParsedArguments options = args.parse_arguments(COMMAND_STRUCTURE); const std::vector<FullPackageSpec> specs = Util::fmap(args.command_arguments, [&](auto&& arg) { - return Input::check_and_get_full_package_spec(arg, default_triplet, EXAMPLE); + return Input::check_and_get_full_package_spec(arg, default_triplet, COMMAND_STRUCTURE.example_text); }); for (auto&& spec : specs) @@ -575,19 +660,20 @@ namespace vcpkg::Install } } - const std::unordered_set<std::string> options = args.check_and_get_optional_command_arguments( - {OPTION_DRY_RUN, OPTION_USE_HEAD_VERSION, OPTION_NO_DOWNLOADS, OPTION_RECURSE, OPTION_KEEP_GOING}); - const bool dry_run = options.find(OPTION_DRY_RUN) != options.cend(); - const bool use_head_version = options.find(OPTION_USE_HEAD_VERSION) != options.cend(); - const bool no_downloads = options.find(OPTION_NO_DOWNLOADS) != options.cend(); - const bool is_recursive = options.find(OPTION_RECURSE) != options.cend(); - const KeepGoing keep_going = to_keep_going(options.find(OPTION_KEEP_GOING) != options.cend()); + const bool dry_run = Util::Sets::contains(options.switches, OPTION_DRY_RUN); + const bool use_head_version = Util::Sets::contains(options.switches, (OPTION_USE_HEAD_VERSION)); + const bool no_downloads = Util::Sets::contains(options.switches, (OPTION_NO_DOWNLOADS)); + const bool is_recursive = Util::Sets::contains(options.switches, (OPTION_RECURSE)); + const KeepGoing keep_going = to_keep_going(Util::Sets::contains(options.switches, OPTION_KEEP_GOING)); // create the plan StatusParagraphs status_db = database_load_check(paths); - const Build::BuildPackageOptions install_plan_options = {Build::to_use_head_version(use_head_version), - Build::to_allow_downloads(!no_downloads)}; + const Build::BuildPackageOptions install_plan_options = { + Util::Enum::to_enum<Build::UseHeadVersion>(use_head_version), + Util::Enum::to_enum<Build::AllowDownloads>(!no_downloads), + Build::CleanBuildtrees::NO, + }; // Note: action_plan will hold raw pointers to SourceControlFiles from this map std::unordered_map<std::string, SourceControlFile> scf_map; @@ -612,6 +698,16 @@ namespace vcpkg::Install install_plan, [](InstallPlanAction& install_action) { return AnyAction(std::move(install_action)); }); } + for (auto&& action : action_plan) + { + if (auto p_install = action.install_plan.get()) + { + p_install->build_options = install_plan_options; + if (p_install->request_type != RequestType::USER_REQUESTED) + p_install->build_options.use_head_version = Build::UseHeadVersion::NO; + } + } + // install plan will be empty if it is already installed - need to change this at status paragraph part Checks::check_exit(VCPKG_LINE_INFO, !action_plan.empty(), "Install plan cannot be empty"); @@ -633,17 +729,96 @@ namespace vcpkg::Install Checks::exit_success(VCPKG_LINE_INFO); } - const InstallSummary summary = perform(action_plan, install_plan_options, keep_going, paths, status_db); + const InstallSummary summary = perform(action_plan, keep_going, paths, status_db); - System::println("\nTotal elapsed time: %s", summary.total_elapsed_time); + System::println("\nTotal elapsed time: %s\n", summary.total_elapsed_time); if (keep_going == KeepGoing::YES) { summary.print(); } + auto it_xunit = options.settings.find(OPTION_XUNIT); + if (it_xunit != options.settings.end()) + { + std::string xunit_doc = "<assemblies><assembly><collection>\n"; + + xunit_doc += summary.xunit_results(); + + xunit_doc += "</collection></assembly></assemblies>\n"; + paths.get_filesystem().write_contents(fs::u8path(it_xunit->second), xunit_doc); + } + + for (auto&& result : summary.results) + { + if (!result.action) continue; + if (auto p_install_action = result.action->install_plan.get()) + { + if (p_install_action->request_type != RequestType::USER_REQUESTED) continue; + auto bpgh = result.get_binary_paragraph(); + if (!bpgh) continue; + print_cmake_information(*bpgh, paths); + } + } + Checks::exit_success(VCPKG_LINE_INFO); } - SpecSummary::SpecSummary(const PackageSpec& spec) : spec(spec), result(BuildResult::NULLVALUE), timing("0") {} + SpecSummary::SpecSummary(const PackageSpec& spec, const Dependencies::AnyAction* action) + : spec(spec), build_result{BuildResult::NULLVALUE, nullptr}, action(action) + { + } + + const BinaryParagraph* SpecSummary::get_binary_paragraph() const + { + if (build_result.binary_control_file) return &build_result.binary_control_file->core_paragraph; + if (action) + if (auto p_install_plan = action->install_plan.get()) + { + if (auto p_bcf = p_install_plan->any_paragraph.binary_control_file.get()) + return &p_bcf->core_paragraph; + else if (auto p_status = p_install_plan->any_paragraph.status_paragraph.get()) + { + return &p_status->package; + } + } + return nullptr; + } + + std::string InstallSummary::xunit_results() const + { + std::string xunit_doc; + for (auto&& result : results) + { + std::string inner_block; + const char* result_string = ""; + switch (result.build_result.code) + { + case BuildResult::POST_BUILD_CHECKS_FAILED: + case BuildResult::FILE_CONFLICTS: + case BuildResult::BUILD_FAILED: + result_string = "Fail"; + inner_block = Strings::format("<failure><message><![CDATA[%s]]></message></failure>", + to_string(result.build_result.code)); + break; + case BuildResult::EXCLUDED: + case BuildResult::CASCADED_DUE_TO_MISSING_DEPENDENCIES: + result_string = "Skip"; + inner_block = + Strings::format("<reason><![CDATA[%s]]></reason>", to_string(result.build_result.code)); + break; + case BuildResult::SUCCEEDED: result_string = "Pass"; break; + default: Checks::exit_fail(VCPKG_LINE_INFO); + } + + xunit_doc += Strings::format(R"(<test name="%s" method="%s" time="%lld" result="%s">%s</test>)" + "\n", + result.spec, + result.spec, + result.timing.as<std::chrono::seconds>().count(), + result_string, + inner_block); + } + return xunit_doc; + } } diff --git a/toolsrc/src/vcpkg/metrics.cpp b/toolsrc/src/vcpkg/metrics.cpp index 8f2575886..a0d40e7d3 100644 --- a/toolsrc/src/vcpkg/metrics.cpp +++ b/toolsrc/src/vcpkg/metrics.cpp @@ -2,6 +2,7 @@ #include <vcpkg/metrics.h> +#include <vcpkg/base/chrono.h> #include <vcpkg/base/files.h> #include <vcpkg/base/strings.h> #include <vcpkg/base/system.h> @@ -15,32 +16,13 @@ namespace vcpkg::Metrics static std::string get_current_date_time() { - struct tm newtime; - std::array<char, 80> date; - date.fill(0); - -#if defined(_WIN32) - struct _timeb timebuffer; - - _ftime_s(&timebuffer); - time_t now = timebuffer.time; - const int milli = timebuffer.millitm; - - const errno_t err = gmtime_s(&newtime, &now); - - if (err) + auto maybe_time = Chrono::CTime::get_current_date_time(); + if (auto ptime = maybe_time.get()) { - return ""; + return ptime->to_string(); } -#else - time_t now; - time(&now); - gmtime_r(&now, &newtime); - const int milli = 0; -#endif - strftime(&date[0], date.size(), "%Y-%m-%dT%H:%M:%S", &newtime); - return std::string(&date[0]) + "." + std::to_string(milli) + "Z"; + return ""; } static std::string generate_random_UUID() @@ -233,12 +215,41 @@ namespace vcpkg::Metrics bool get_compiled_metrics_enabled() { return DISABLE_METRICS == 0; } - std::string get_SQM_user() + static fs::path get_vcpkg_root() + { + return Files::get_real_filesystem().find_file_recursively_up( + fs::stdfs::absolute(System::get_exe_path_of_current_process()), ".vcpkg-root"); + } + + std::string get_MAC_user() { #if defined(_WIN32) - auto hkcu_sqmclient = - System::get_registry_string(HKEY_CURRENT_USER, R"(Software\Microsoft\SQMClient)", "UserId"); - return hkcu_sqmclient.value_or("{}"); + auto getmac = System::cmd_execute_and_capture_output("getmac"); + + if (getmac.exit_code != 0) return "0"; + + std::regex mac_regex("([a-fA-F0-9]{2}(-[a-fA-F0-9]{2}){5})"); + std::sregex_iterator next(getmac.output.begin(), getmac.output.end(), mac_regex); + std::sregex_iterator last; + + while (next != last) + { + auto match = *next; + if (match[0] != "00-00-00-00-00-00") + { + const std::string matchstr = match[0]; + const System::PowershellParameter value("Value", matchstr); + auto hash_result = System::powershell_execute_and_capture_output( + "SHA256Hash", get_vcpkg_root() / "scripts" / "SHA256Hash.ps1", {value}); + Util::erase_remove_if(hash_result, + [](char ch) { return !(ch >= 'A' && ch <= 'F') && !(ch >= '0' && ch <= '9'); }); + hash_result = Strings::ascii_to_lowercase(hash_result); + return hash_result; + } + ++next; + } + + return "0"; #else return "{}"; #endif diff --git a/toolsrc/src/vcpkg/packagespec.cpp b/toolsrc/src/vcpkg/packagespec.cpp index 6e40d70f5..eeb9981af 100644 --- a/toolsrc/src/vcpkg/packagespec.cpp +++ b/toolsrc/src/vcpkg/packagespec.cpp @@ -92,6 +92,14 @@ namespace vcpkg return p; } + std::vector<PackageSpec> PackageSpec::to_package_specs(const std::vector<std::string>& ports, + const Triplet& triplet) + { + return Util::fmap(ports, [&](const std::string s) { + return PackageSpec::from_name_and_triplet(s, triplet).value_or_exit(VCPKG_LINE_INFO); + }); + } + const std::string& PackageSpec::name() const { return this->m_name; } const Triplet& PackageSpec::triplet() const { return this->m_triplet; } diff --git a/toolsrc/src/vcpkg/postbuildlint.buildtype.cpp b/toolsrc/src/vcpkg/postbuildlint.buildtype.cpp index 2baaddb5e..e966ce78a 100644 --- a/toolsrc/src/vcpkg/postbuildlint.buildtype.cpp +++ b/toolsrc/src/vcpkg/postbuildlint.buildtype.cpp @@ -3,6 +3,8 @@ #include <vcpkg/base/checks.h> #include <vcpkg/postbuildlint.buildtype.h> +using vcpkg::Build::ConfigurationType; + namespace vcpkg::PostBuildLint { BuildType BuildType::value_of(const ConfigurationType& config, const Build::LinkageType& linkage) diff --git a/toolsrc/src/vcpkg/postbuildlint.cpp b/toolsrc/src/vcpkg/postbuildlint.cpp index 0063f8d98..2b427737a 100644 --- a/toolsrc/src/vcpkg/postbuildlint.cpp +++ b/toolsrc/src/vcpkg/postbuildlint.cpp @@ -38,27 +38,41 @@ namespace vcpkg::PostBuildLint } }; - Span<const OutdatedDynamicCrt> get_outdated_dynamic_crts(CStringView toolset) + Span<const OutdatedDynamicCrt> get_outdated_dynamic_crts(const Optional<std::string>& toolset_version) { - static const std::vector<OutdatedDynamicCrt> V_NO_MSVCRT = { + static const std::vector<OutdatedDynamicCrt> V_NO_120 = { {"msvcp100.dll", R"(msvcp100\.dll)"}, {"msvcp100d.dll", R"(msvcp100d\.dll)"}, {"msvcp110.dll", R"(msvcp110\.dll)"}, {"msvcp110_win.dll", R"(msvcp110_win\.dll)"}, - {"msvcp120.dll", R"(msvcp120\.dll)"}, - {"msvcp120_clr0400.dll", R"(msvcp120_clr0400\.dll)"}, {"msvcp60.dll", R"(msvcp60\.dll)"}, {"msvcp60.dll", R"(msvcp60\.dll)"}, + {"msvcrt.dll", R"(msvcrt\.dll)"}, {"msvcr100.dll", R"(msvcr100\.dll)"}, {"msvcr100d.dll", R"(msvcr100d\.dll)"}, {"msvcr100_clr0400.dll", R"(msvcr100_clr0400\.dll)"}, {"msvcr110.dll", R"(msvcr110\.dll)"}, - {"msvcr120.dll", R"(msvcr120\.dll)"}, - {"msvcr120_clr0400.dll", R"(msvcr120_clr0400\.dll)"}, {"msvcrt20.dll", R"(msvcrt20\.dll)"}, - {"msvcrt40.dll", R"(msvcrt40\.dll)"}}; + {"msvcrt40.dll", R"(msvcrt40\.dll)"}, + }; + + static const std::vector<OutdatedDynamicCrt> V_NO_MSVCRT = [&]() { + auto ret = V_NO_120; + ret.push_back({"msvcp120.dll", R"(msvcp120\.dll)"}); + ret.push_back({"msvcp120_clr0400.dll", R"(msvcp120_clr0400\.dll)"}); + ret.push_back({"msvcr120.dll", R"(msvcr120\.dll)"}); + ret.push_back({"msvcr120_clr0400.dll", R"(msvcr120_clr0400\.dll)"}); + return ret; + }(); + + const auto tsv = toolset_version.get(); + if (tsv && (*tsv) == "v120") + { + return V_NO_120; + } + // Default case for all version >= VS 2015. return V_NO_MSVCRT; } @@ -74,8 +88,9 @@ namespace vcpkg::PostBuildLint const fs::path include_dir = package_dir / "include"; if (!fs.exists(include_dir) || fs.is_empty(include_dir)) { - System::println(System::Color::warning, - "The folder /include is empty. This indicates the library was not correctly installed."); + System::println( + System::Color::warning, + "The folder /include is empty or not present. This indicates the library was not correctly installed."); return LintStatus::ERROR_DETECTED; } @@ -464,7 +479,7 @@ namespace vcpkg::PostBuildLint } System::println(System::Color::warning, - "Mismatching number of debug and release binaries. Found %d for debug but %d for release.", + "Mismatching number of debug and release binaries. Found %zd for debug but %zd for release.", debug_count, release_count); System::println("Debug binaries"); @@ -638,7 +653,8 @@ namespace vcpkg::PostBuildLint static LintStatus check_outdated_crt_linkage_of_dlls(const std::vector<fs::path>& dlls, const fs::path dumpbin_exe, - const BuildInfo& build_info) + const BuildInfo& build_info, + const PreBuildInfo& pre_build_info) { if (build_info.policies.is_enabled(BuildPolicy::ALLOW_OBSOLETE_MSVCRT)) return LintStatus::SUCCESS; @@ -650,7 +666,7 @@ namespace vcpkg::PostBuildLint System::ExitCodeAndOutput ec_data = System::cmd_execute_and_capture_output(cmd_line); Checks::check_exit(VCPKG_LINE_INFO, ec_data.exit_code == 0, "Running command:\n %s\n failed", cmd_line); - for (const OutdatedDynamicCrt& outdated_crt : get_outdated_dynamic_crts("v141")) + for (const OutdatedDynamicCrt& outdated_crt : get_outdated_dynamic_crts(pre_build_info.platform_toolset)) { if (std::regex_search(ec_data.output.cbegin(), ec_data.output.cend(), outdated_crt.regex)) { @@ -710,7 +726,7 @@ namespace vcpkg::PostBuildLint const auto& fs = paths.get_filesystem(); // for dumpbin - const Toolset& toolset = paths.get_toolset(pre_build_info.platform_toolset, pre_build_info.visual_studio_path); + const Toolset& toolset = paths.get_toolset(pre_build_info); const fs::path package_dir = paths.package_dir(spec); size_t error_count = 0; @@ -742,7 +758,8 @@ namespace vcpkg::PostBuildLint std::vector<fs::path> release_libs = fs.get_files_recursive(release_lib_dir); Util::unstable_keep_if(release_libs, has_extension_pred(fs, ".lib")); - error_count += check_matching_debug_and_release_binaries(debug_libs, release_libs); + if (!pre_build_info.build_type) + error_count += check_matching_debug_and_release_binaries(debug_libs, release_libs); { std::vector<fs::path> libs; @@ -761,7 +778,8 @@ namespace vcpkg::PostBuildLint { case Build::LinkageType::DYNAMIC: { - error_count += check_matching_debug_and_release_binaries(debug_dlls, release_dlls); + if (!pre_build_info.build_type) + error_count += check_matching_debug_and_release_binaries(debug_dlls, release_dlls); error_count += check_lib_files_are_available_if_dlls_are_available( build_info.policies, debug_libs.size(), debug_dlls.size(), debug_lib_dir); @@ -776,7 +794,7 @@ namespace vcpkg::PostBuildLint error_count += check_uwp_bit_of_dlls(pre_build_info.cmake_system_name, dlls, toolset.dumpbin); error_count += check_dll_architecture(pre_build_info.target_architecture, dlls); - error_count += check_outdated_crt_linkage_of_dlls(dlls, toolset.dumpbin, build_info); + error_count += check_outdated_crt_linkage_of_dlls(dlls, toolset.dumpbin, build_info, pre_build_info); break; } case Build::LinkageType::STATIC: @@ -789,15 +807,15 @@ namespace vcpkg::PostBuildLint if (!build_info.policies.is_enabled(BuildPolicy::ONLY_RELEASE_CRT)) { - error_count += - check_crt_linkage_of_libs(BuildType::value_of(ConfigurationType::DEBUG, build_info.crt_linkage), - debug_libs, - toolset.dumpbin); + error_count += check_crt_linkage_of_libs( + BuildType::value_of(Build::ConfigurationType::DEBUG, build_info.crt_linkage), + debug_libs, + toolset.dumpbin); } - error_count += - check_crt_linkage_of_libs(BuildType::value_of(ConfigurationType::RELEASE, build_info.crt_linkage), - release_libs, - toolset.dumpbin); + error_count += check_crt_linkage_of_libs( + BuildType::value_of(Build::ConfigurationType::RELEASE, build_info.crt_linkage), + release_libs, + toolset.dumpbin); break; } default: Checks::unreachable(VCPKG_LINE_INFO); diff --git a/toolsrc/src/vcpkg/remove.cpp b/toolsrc/src/vcpkg/remove.cpp index 6f555b9b8..8ae0bc881 100644 --- a/toolsrc/src/vcpkg/remove.cpp +++ b/toolsrc/src/vcpkg/remove.cpp @@ -6,6 +6,7 @@ #include <vcpkg/dependencies.h> #include <vcpkg/help.h> #include <vcpkg/input.h> +#include <vcpkg/paragraphs.h> #include <vcpkg/remove.h> #include <vcpkg/update.h> #include <vcpkg/vcpkglib.h> @@ -169,14 +170,13 @@ namespace vcpkg::Remove static const std::string OPTION_DRY_RUN = "--dry-run"; static const std::string OPTION_OUTDATED = "--outdated"; - static const std::array<std::string, 5> SWITCHES = { - OPTION_PURGE, - OPTION_NO_PURGE, - OPTION_RECURSE, - OPTION_DRY_RUN, - OPTION_OUTDATED, - }; - static const std::array<std::string, 0> SETTINGS; + static const std::array<CommandSwitch, 5> SWITCHES = {{ + {OPTION_PURGE, "Remove the cached copy of the package (default)"}, + {OPTION_NO_PURGE, "Do not remove the cached copy of the package"}, + {OPTION_RECURSE, "Allow removal of packages not explicitly specified on the command line"}, + {OPTION_DRY_RUN, "Print the packages to be removed, but do not remove them"}, + {OPTION_OUTDATED, "Select all packages with versions that do not match the portfiles"}, + }}; static std::vector<std::string> valid_arguments(const VcpkgPaths& paths) { @@ -187,27 +187,30 @@ namespace vcpkg::Remove } const CommandStructure COMMAND_STRUCTURE = { - "remove zlib zlib:x64-windows curl boost", - 1, + Help::create_example_string("remove zlib zlib:x64-windows curl boost"), + 0, SIZE_MAX, - SWITCHES, - SETTINGS, + {SWITCHES, {}}, &valid_arguments, }; void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths, const Triplet& default_triplet) { - static const std::string EXAMPLE = Help::create_example_string("remove zlib zlib:x64-windows curl boost"); - const std::unordered_set<std::string> options = args.check_and_get_optional_command_arguments( - {OPTION_PURGE, OPTION_NO_PURGE, OPTION_RECURSE, OPTION_DRY_RUN, OPTION_OUTDATED}); + const ParsedArguments options = args.parse_arguments(COMMAND_STRUCTURE); StatusParagraphs status_db = database_load_check(paths); std::vector<PackageSpec> specs; - if (options.find(OPTION_OUTDATED) != options.cend()) + if (Util::Sets::contains(options.switches, OPTION_OUTDATED)) { - args.check_exact_arg_count(0, EXAMPLE); - specs = Util::fmap(Update::find_outdated_packages(paths, status_db), - [](auto&& outdated) { return outdated.spec; }); + if (args.command_arguments.size() != 0) + { + System::println(System::Color::error, "Error: 'remove' accepts either libraries or '--outdated'"); + Checks::exit_fail(VCPKG_LINE_INFO); + } + specs = Util::fmap( + Update::find_outdated_packages( + Paragraphs::load_all_port_names_and_versions(paths.get_filesystem(), paths.ports), status_db), + [](auto&& outdated) { return outdated.spec; }); if (specs.empty()) { @@ -217,26 +220,30 @@ namespace vcpkg::Remove } else { - args.check_min_arg_count(1, EXAMPLE); + if (args.command_arguments.size() < 1) + { + System::println(System::Color::error, "Error: 'remove' accepts either libraries or '--outdated'"); + Checks::exit_fail(VCPKG_LINE_INFO); + } specs = Util::fmap(args.command_arguments, [&](auto&& arg) { - return Input::check_and_get_package_spec(arg, default_triplet, EXAMPLE); + return Input::check_and_get_package_spec(arg, default_triplet, COMMAND_STRUCTURE.example_text); }); for (auto&& spec : specs) Input::check_triplet(spec.triplet(), paths); } - const bool no_purge_was_passed = options.find(OPTION_NO_PURGE) != options.end(); - const bool purge_was_passed = options.find(OPTION_PURGE) != options.end(); + const bool no_purge_was_passed = Util::Sets::contains(options.switches, OPTION_NO_PURGE); + const bool purge_was_passed = Util::Sets::contains(options.switches, OPTION_PURGE); if (purge_was_passed && no_purge_was_passed) { System::println(System::Color::error, "Error: cannot specify both --no-purge and --purge."); - System::print(EXAMPLE); + System::print(COMMAND_STRUCTURE.example_text); Checks::exit_fail(VCPKG_LINE_INFO); } const Purge purge = to_purge(purge_was_passed || !no_purge_was_passed); - const bool is_recursive = options.find(OPTION_RECURSE) != options.cend(); - const bool dry_run = options.find(OPTION_DRY_RUN) != options.cend(); + const bool is_recursive = Util::Sets::contains(options.switches, OPTION_RECURSE); + const bool dry_run = Util::Sets::contains(options.switches, OPTION_DRY_RUN); const std::vector<RemovePlanAction> remove_plan = Dependencies::create_remove_plan(specs, status_db); Checks::check_exit(VCPKG_LINE_INFO, !remove_plan.empty(), "Remove plan cannot be empty"); diff --git a/toolsrc/src/vcpkg/statusparagraphs.cpp b/toolsrc/src/vcpkg/statusparagraphs.cpp index 647ed6d3f..d4afc0427 100644 --- a/toolsrc/src/vcpkg/statusparagraphs.cpp +++ b/toolsrc/src/vcpkg/statusparagraphs.cpp @@ -10,22 +10,6 @@ namespace vcpkg StatusParagraphs::StatusParagraphs(std::vector<std::unique_ptr<StatusParagraph>>&& ps) : paragraphs(std::move(ps)){}; - StatusParagraphs::const_iterator StatusParagraphs::find(const std::string& name, const Triplet& triplet) const - { - return std::find_if(begin(), end(), [&](const std::unique_ptr<StatusParagraph>& pgh) { - const PackageSpec& spec = pgh->package.spec; - return spec.name() == name && spec.triplet() == triplet; - }); - } - - StatusParagraphs::iterator StatusParagraphs::find(const std::string& name, const Triplet& triplet) - { - return std::find_if(begin(), end(), [&](const std::unique_ptr<StatusParagraph>& pgh) { - const PackageSpec& spec = pgh->package.spec; - return spec.name() == name && spec.triplet() == triplet; - }); - } - std::vector<std::unique_ptr<StatusParagraph>*> StatusParagraphs::find_all(const std::string& name, const Triplet& triplet) { @@ -50,6 +34,16 @@ namespace vcpkg }); } + StatusParagraphs::const_iterator StatusParagraphs::find(const std::string& name, + const Triplet& triplet, + const std::string& feature) const + { + return std::find_if(begin(), end(), [&](const std::unique_ptr<StatusParagraph>& pgh) { + const PackageSpec& spec = pgh->package.spec; + return spec.name() == name && spec.triplet() == triplet && pgh->package.feature == feature; + }); + } + StatusParagraphs::const_iterator StatusParagraphs::find_installed(const std::string& name, const Triplet& triplet) const { diff --git a/toolsrc/src/vcpkg/update.cpp b/toolsrc/src/vcpkg/update.cpp index 168949bc1..29baef91e 100644 --- a/toolsrc/src/vcpkg/update.cpp +++ b/toolsrc/src/vcpkg/update.cpp @@ -14,15 +14,20 @@ namespace vcpkg::Update return left.spec.name() < right.spec.name(); } - std::vector<OutdatedPackage> find_outdated_packages(const VcpkgPaths& paths, const StatusParagraphs& status_db) + std::vector<OutdatedPackage> find_outdated_packages(const std::map<std::string, VersionT>& src_names_to_versions, + const StatusParagraphs& status_db) { - const std::map<std::string, VersionT> src_names_to_versions = - Paragraphs::load_all_port_names_and_versions(paths.get_filesystem(), paths.ports); const std::vector<StatusParagraph*> installed_packages = get_installed_ports(status_db); std::vector<OutdatedPackage> output; for (const StatusParagraph* pgh : installed_packages) { + if (!pgh->package.feature.empty()) + { + // Skip feature packages; only consider master packages for needing updates. + continue; + } + const auto it = src_names_to_versions.find(pgh->package.spec.name()); if (it == src_names_to_versions.end()) { @@ -38,16 +43,25 @@ namespace vcpkg::Update return output; } + const CommandStructure COMMAND_STRUCTURE = { + Help::create_example_string("update"), + 0, + 0, + {}, + nullptr, + }; + void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths) { - args.check_exact_arg_count(0); - args.check_and_get_optional_command_arguments({}); + args.parse_arguments(COMMAND_STRUCTURE); System::println("Using local portfile versions. To update the local portfiles, use `git pull`."); const StatusParagraphs status_db = database_load_check(paths); - const auto outdated_packages = - SortedVector<OutdatedPackage>(find_outdated_packages(paths, status_db), &OutdatedPackage::compare_by_name); + const auto outdated_packages = SortedVector<OutdatedPackage>( + find_outdated_packages(Paragraphs::load_all_port_names_and_versions(paths.get_filesystem(), paths.ports), + status_db), + &OutdatedPackage::compare_by_name); if (outdated_packages.empty()) { diff --git a/toolsrc/src/vcpkg/userconfig.cpp b/toolsrc/src/vcpkg/userconfig.cpp new file mode 100644 index 000000000..d13a46f41 --- /dev/null +++ b/toolsrc/src/vcpkg/userconfig.cpp @@ -0,0 +1,83 @@ +#include "pch.h" + +#include <vcpkg/base/files.h> +#include <vcpkg/base/lazy.h> +#include <vcpkg/paragraphs.h> +#include <vcpkg/userconfig.h> + +namespace +{ + static vcpkg::Lazy<fs::path> s_localappdata; + + static const fs::path& get_localappdata() + { + return s_localappdata.get_lazy([]() { + fs::path localappdata; + { + // Config path in AppDataLocal + wchar_t* localappdatapath = nullptr; + if (S_OK != SHGetKnownFolderPath(FOLDERID_LocalAppData, 0, nullptr, &localappdatapath)) __fastfail(1); + localappdata = localappdatapath; + CoTaskMemFree(localappdatapath); + } + return localappdata; + }); + } +} + +namespace vcpkg +{ + UserConfig UserConfig::try_read_data(const Files::Filesystem& fs) + { + UserConfig ret; + + try + { + auto maybe_pghs = Paragraphs::get_paragraphs(fs, get_localappdata() / "vcpkg" / "config"); + if (const auto p_pghs = maybe_pghs.get()) + { + const auto& pghs = *p_pghs; + + std::unordered_map<std::string, std::string> keys; + if (pghs.size() > 0) keys = pghs[0]; + + for (size_t x = 1; x < pghs.size(); ++x) + { + for (auto&& p : pghs[x]) + keys.insert(p); + } + + ret.user_id = keys["User-Id"]; + ret.user_time = keys["User-Since"]; + ret.user_mac = keys["Mac-Hash"]; + ret.last_completed_survey = keys["Survey-Completed"]; + } + } + catch (...) + { + } + + return ret; + } + + void UserConfig::try_write_data(Files::Filesystem& fs) const + { + try + { + std::error_code ec; + fs.create_directory(get_localappdata() / "vcpkg", ec); + fs.write_contents(get_localappdata() / "vcpkg" / "config", + Strings::format("User-Id: %s\n" + "User-Since: %s\n" + "Mac-Hash: %s\n" + "Survey-Completed: %s\n", + user_id, + user_time, + user_mac, + last_completed_survey)); + } + catch (...) + { + } + } +} diff --git a/toolsrc/src/vcpkg/vcpkgcmdarguments.cpp b/toolsrc/src/vcpkg/vcpkgcmdarguments.cpp index 209f6a3f2..671a89892 100644 --- a/toolsrc/src/vcpkg/vcpkgcmdarguments.cpp +++ b/toolsrc/src/vcpkg/vcpkgcmdarguments.cpp @@ -45,11 +45,8 @@ namespace vcpkg option_field = new_setting; } -#if defined(_WIN32) - VcpkgCmdArguments VcpkgCmdArguments::create_from_command_line(const int argc, const wchar_t* const* const argv) -#else - VcpkgCmdArguments VcpkgCmdArguments::create_from_command_line(const int argc, const char* const* const argv) -#endif + VcpkgCmdArguments VcpkgCmdArguments::create_from_command_line(const int argc, + const CommandLineCharType* const* const argv) { std::vector<std::string> v; for (int i = 1; i < argc; ++i) @@ -158,46 +155,83 @@ namespace vcpkg return args; } - ParsedArguments VcpkgCmdArguments::check_and_get_optional_command_arguments( - const std::vector<std::string>& valid_switches, const std::vector<std::string>& valid_settings) const + ParsedArguments VcpkgCmdArguments::parse_arguments(const CommandStructure& command_structure) const { bool failed = false; ParsedArguments output; + const size_t actual_arg_count = command_arguments.size(); + + if (command_structure.minimum_arity == command_structure.maximum_arity) + { + if (actual_arg_count != command_structure.minimum_arity) + { + System::println(System::Color::error, + "Error: '%s' requires %u arguments, but %u were provided.", + this->command, + command_structure.minimum_arity, + actual_arg_count); + failed = true; + } + } + else + { + if (actual_arg_count < command_structure.minimum_arity) + { + System::println(System::Color::error, + "Error: '%s' requires at least %u arguments, but %u were provided", + this->command, + command_structure.minimum_arity, + actual_arg_count); + failed = true; + } + if (actual_arg_count > command_structure.maximum_arity) + { + System::println(System::Color::error, + "Error: '%s' requires at most %u arguments, but %u were provided", + this->command, + command_structure.maximum_arity, + actual_arg_count); + failed = true; + } + } + auto options_copy = this->optional_command_arguments; - for (const std::string& option : valid_switches) + for (auto&& option : command_structure.options.switches) { - const auto it = options_copy.find(option); + const auto it = options_copy.find(option.name); if (it != options_copy.end()) { if (it->second.has_value()) { // Having a string value indicates it was passed like '--a=xyz' - System::println(System::Color::error, "The option '%s' does not accept an argument.", option); + System::println( + System::Color::error, "Error: The option '%s' does not accept an argument.", option.name); failed = true; } else { - output.switches.insert(option); + output.switches.insert(option.name); options_copy.erase(it); } } } - for (const std::string& option : valid_settings) + for (auto&& option : command_structure.options.settings) { - const auto it = options_copy.find(option); + const auto it = options_copy.find(option.name); if (it != options_copy.end()) { if (!it->second.has_value()) { // Not having a string value indicates it was passed like '--a' - System::println(System::Color::error, "The option '%s' must be passed an argument.", option); + System::println( + System::Color::error, "Error: The option '%s' must be passed an argument.", option.name); failed = true; } else { - output.settings.emplace(option, it->second.value_or_exit(VCPKG_LINE_INFO)); + output.settings.emplace(option.name, it->second.value_or_exit(VCPKG_LINE_INFO)); options_copy.erase(it); } } @@ -210,83 +244,38 @@ namespace vcpkg { System::println(" %s", option.first); } - System::println("\nValid options are:", this->command); - for (auto&& option : valid_switches) - { - System::println(" %s", option); - } - for (auto&& option : valid_settings) - { - System::println(" %s=...", option); - } - System::println(" --triplet <t>"); - System::println(" --vcpkg-root <path>"); + System::println(); + failed = true; + } + if (failed) + { + display_usage(command_structure); Checks::exit_fail(VCPKG_LINE_INFO); } - if (failed) Checks::exit_fail(VCPKG_LINE_INFO); return output; } - void VcpkgCmdArguments::check_max_arg_count(const size_t expected_arg_count) const - { - return check_max_arg_count(expected_arg_count, ""); - } - - void VcpkgCmdArguments::check_min_arg_count(const size_t expected_arg_count) const + void display_usage(const CommandStructure& command_structure) { - return check_min_arg_count(expected_arg_count, ""); - } - - void VcpkgCmdArguments::check_exact_arg_count(const size_t expected_arg_count) const - { - return check_exact_arg_count(expected_arg_count, ""); - } - - void VcpkgCmdArguments::check_max_arg_count(const size_t expected_arg_count, const std::string& example_text) const - { - const size_t actual_arg_count = command_arguments.size(); - if (actual_arg_count > expected_arg_count) + if (!command_structure.example_text.empty()) { - System::println(System::Color::error, - "Error: `%s` requires at most %u arguments, but %u were provided", - this->command, - expected_arg_count, - actual_arg_count); - System::print(example_text); - Checks::exit_fail(VCPKG_LINE_INFO); + System::println("%s", command_structure.example_text); } - } - void VcpkgCmdArguments::check_min_arg_count(const size_t expected_arg_count, const std::string& example_text) const - { - const size_t actual_arg_count = command_arguments.size(); - if (actual_arg_count < expected_arg_count) + System::println("Options:"); + for (auto&& option : command_structure.options.switches) { - System::println(System::Color::error, - "Error: `%s` requires at least %u arguments, but %u were provided", - this->command, - expected_arg_count, - actual_arg_count); - System::print(example_text); - Checks::exit_fail(VCPKG_LINE_INFO); + System::println(" %-40s %s", option.name, option.short_help_text); } - } - - void VcpkgCmdArguments::check_exact_arg_count(const size_t expected_arg_count, - const std::string& example_text) const - { - const size_t actual_arg_count = command_arguments.size(); - if (actual_arg_count != expected_arg_count) + for (auto&& option : command_structure.options.settings) { - System::println(System::Color::error, - "Error: `%s` requires %u arguments, but %u were provided", - this->command, - expected_arg_count, - actual_arg_count); - System::print(example_text); - Checks::exit_fail(VCPKG_LINE_INFO); + System::println(" %-40s %s", (option.name + "=..."), option.short_help_text); } + System::println(" %-40s %s", "--triplet <t>", "Set the default triplet for unqualified packages"); + System::println(" %-40s %s", + "--vcpkg-root <path>", + "Specify the vcpkg directory to use instead of current directory or tool directory"); } } diff --git a/toolsrc/src/vcpkg/vcpkglib.cpp b/toolsrc/src/vcpkg/vcpkglib.cpp index 38b130f6f..5b2cec4d0 100644 --- a/toolsrc/src/vcpkg/vcpkglib.cpp +++ b/toolsrc/src/vcpkg/vcpkglib.cpp @@ -212,29 +212,7 @@ namespace vcpkg return installed_files; } - CMakeVariable::CMakeVariable(const CStringView varname, const char* varvalue) - : s(Strings::format(R"("-D%s=%s")", varname, varvalue)) - { - } - CMakeVariable::CMakeVariable(const CStringView varname, const std::string& varvalue) - : CMakeVariable(varname, varvalue.c_str()) - { - } - CMakeVariable::CMakeVariable(const CStringView varname, const fs::path& path) - : CMakeVariable(varname, path.generic_u8string()) - { - } - - std::string make_cmake_cmd(const fs::path& cmake_exe, - const fs::path& cmake_script, - const std::vector<CMakeVariable>& pass_variables) - { - const std::string cmd_cmake_pass_variables = Strings::join(" ", pass_variables, [](auto&& v) { return v.s; }); - return Strings::format( - R"("%s" %s -P "%s")", cmake_exe.u8string(), cmd_cmake_pass_variables, cmake_script.generic_u8string()); - } - - std::string shorten_text(const std::string& desc, size_t length) + std::string shorten_text(const std::string& desc, const size_t length) { Checks::check_exit(VCPKG_LINE_INFO, length >= 3); auto simple_desc = std::regex_replace(desc, std::regex("\\s+"), " "); diff --git a/toolsrc/src/vcpkg/vcpkgpaths.cpp b/toolsrc/src/vcpkg/vcpkgpaths.cpp index ef9e383bc..324ca29d1 100644 --- a/toolsrc/src/vcpkg/vcpkgpaths.cpp +++ b/toolsrc/src/vcpkg/vcpkgpaths.cpp @@ -4,6 +4,7 @@ #include <vcpkg/base/files.h> #include <vcpkg/base/system.h> #include <vcpkg/base/util.h> +#include <vcpkg/build.h> #include <vcpkg/metrics.h> #include <vcpkg/packagespec.h> #include <vcpkg/vcpkgpaths.h> @@ -62,6 +63,23 @@ namespace vcpkg return nullopt; } + static std::vector<std::string> keep_data_lines(const std::string& data_blob) + { + static const std::regex DATA_LINE_REGEX(R"(<sol>::(.+?)(?=::<eol>))"); + + std::vector<std::string> data_lines; + + const std::sregex_iterator it(data_blob.cbegin(), data_blob.cend(), DATA_LINE_REGEX); + const std::sregex_iterator end; + for (std::sregex_iterator i = it; i != end; ++i) + { + const std::smatch match = *i; + data_lines.push_back(match[1].str()); + } + + return data_lines; + } + static fs::path fetch_dependency(const fs::path& scripts_folder, const std::string& tool_name, const fs::path& expected_downloaded_path, @@ -74,24 +92,15 @@ namespace vcpkg tool_name, version_as_string); const fs::path script = scripts_folder / "fetchDependency.ps1"; - const System::ExitCodeAndOutput rc = - System::powershell_execute_and_capture_output(script, Strings::format("-Dependency %s", tool_name)); - if (rc.exit_code) - { - System::println(System::Color::error, - "Launching powershell failed or was denied when trying to fetch %s version %s.\n" - "(No sufficient installed version was found)", - tool_name, - version_as_string); - { - auto locked_metrics = Metrics::g_metrics.lock(); - locked_metrics->track_property("error", "powershell install failed"); - locked_metrics->track_property("dependency", tool_name); - } - Checks::exit_with_code(VCPKG_LINE_INFO, rc.exit_code); - } + const std::string title = "Fetching %s version %s (No sufficient installed version was found)"; + const System::PowershellParameter dependency_param("Dependency", tool_name); + const std::string output = System::powershell_execute_and_capture_output(title, script, {dependency_param}); - const fs::path actual_downloaded_path = Strings::trimmed(rc.output); + const std::vector<std::string> dependency_path = keep_data_lines(output); + Checks::check_exit( + VCPKG_LINE_INFO, dependency_path.size() == 1, "Expected dependency path, but got %s", output); + + const fs::path actual_downloaded_path = Strings::trim(std::string{dependency_path.at(0)}); std::error_code ec; const auto eq = fs::stdfs::equivalent(expected_downloaded_path, actual_downloaded_path, ec); Checks::check_exit(VCPKG_LINE_INFO, @@ -104,14 +113,20 @@ namespace vcpkg static fs::path get_cmake_path(const fs::path& downloads_folder, const fs::path& scripts_folder) { - static constexpr std::array<int, 3> EXPECTED_VERSION = {3, 9, 4}; +#if defined(_WIN32) + static constexpr std::array<int, 3> EXPECTED_VERSION = {3, 10, 0}; +#else + static constexpr std::array<int, 3> EXPECTED_VERSION = {3, 5, 1}; +#endif static const std::string VERSION_CHECK_ARGUMENTS = "--version"; - const fs::path downloaded_copy = downloads_folder / "cmake-3.9.4-win32-x86" / "bin" / "cmake.exe"; const std::vector<fs::path> from_path = Files::find_from_PATH("cmake"); std::vector<fs::path> candidate_paths; + const fs::path downloaded_copy = downloads_folder / "cmake-3.10.0-win32-x86" / "bin" / "cmake.exe"; +#if defined(_WIN32) candidate_paths.push_back(downloaded_copy); +#endif candidate_paths.insert(candidate_paths.end(), from_path.cbegin(), from_path.cend()); #if defined(_WIN32) candidate_paths.push_back(System::get_program_files_platform_bitness() / "CMake" / "bin" / "cmake.exe"); @@ -150,14 +165,20 @@ namespace vcpkg fs::path get_git_path(const fs::path& downloads_folder, const fs::path& scripts_folder) { - static constexpr std::array<int, 3> EXPECTED_VERSION = {2, 14, 2}; +#if defined(_WIN32) + static constexpr std::array<int, 3> EXPECTED_VERSION = {2, 15, 0}; +#else + static constexpr std::array<int, 3> EXPECTED_VERSION = {2, 7, 4}; +#endif static const std::string VERSION_CHECK_ARGUMENTS = "--version"; - const fs::path downloaded_copy = downloads_folder / "MinGit-2.14.2.3-32-bit" / "cmd" / "git.exe"; const std::vector<fs::path> from_path = Files::find_from_PATH("git"); + const fs::path downloaded_copy = downloads_folder / "MinGit-2.15.0-32-bit" / "cmd" / "git.exe"; std::vector<fs::path> candidate_paths; +#if defined(_WIN32) candidate_paths.push_back(downloaded_copy); +#endif candidate_paths.insert(candidate_paths.end(), from_path.cbegin(), from_path.cend()); #if defined(_WIN32) candidate_paths.push_back(System::get_program_files_platform_bitness() / "git" / "cmd" / "git.exe"); @@ -259,7 +280,6 @@ namespace vcpkg const std::vector<std::string>& VcpkgPaths::get_available_triplets() const { return this->available_triplets.get_lazy([this]() -> std::vector<std::string> { - std::vector<std::string> output; for (auto&& path : this->get_filesystem().get_files_non_recursive(this->triplets)) { @@ -323,15 +343,21 @@ namespace vcpkg static std::vector<VisualStudioInstance> get_visual_studio_instances(const VcpkgPaths& paths) { const fs::path script = paths.scripts / "findVisualStudioInstallationInstances.ps1"; - const System::ExitCodeAndOutput ec_data = System::powershell_execute_and_capture_output(script); - Checks::check_exit( - VCPKG_LINE_INFO, ec_data.exit_code == 0, "Could not run script to detect Visual Studio instances"); + const std::string output = + System::powershell_execute_and_capture_output("Detecting Visual Studio instances", script); - const std::vector<std::string> instances_as_strings = Strings::split(ec_data.output, "::<eol>"); - Checks::check_exit( - VCPKG_LINE_INFO, !instances_as_strings.empty(), "Could not detect any Visual Studio instances.\n"); - - std::vector<VisualStudioInstance> output; + const std::vector<std::string> instances_as_strings = keep_data_lines(output); + Checks::check_exit(VCPKG_LINE_INFO, + !instances_as_strings.empty(), + "Could not detect any Visual Studio instances.\n" + "Powershell script:\n" + " %s\n" + "returned:\n" + "%s", + script.generic_string(), + output); + + std::vector<VisualStudioInstance> instances; for (const std::string& instance_as_string : instances_as_strings) { const std::vector<std::string> split = Strings::split(instance_as_string, "::"); @@ -341,10 +367,10 @@ namespace vcpkg "Expected: PreferenceWeight::ReleaseType::Version::PathToVisualStudio\n" "Actual : %s\n", instance_as_string); - output.push_back({split.at(3), split.at(2), split.at(1), split.at(0)}); + instances.push_back({split.at(3), split.at(2), split.at(1), split.at(0)}); } - return output; + return instances; } static std::vector<Toolset> find_toolset_instances(const VcpkgPaths& paths) @@ -357,6 +383,7 @@ namespace vcpkg std::vector<fs::path> paths_examined; std::vector<Toolset> found_toolsets; + std::vector<Toolset> excluded_toolsets; const std::vector<VisualStudioInstance> vs_instances = get_visual_studio_instances(paths); const bool v140_is_available = Util::find_if(vs_instances, [&](const VisualStudioInstance& vs_instance) { @@ -413,17 +440,28 @@ namespace vcpkg paths_examined.push_back(dumpbin_path); if (fs.exists(dumpbin_path)) { - found_toolsets.push_back(Toolset{ - vs_instance.root_path, dumpbin_path, vcvarsall_bat, {}, V_141, supported_architectures}); + const Toolset v141toolset = Toolset{ + vs_instance.root_path, dumpbin_path, vcvarsall_bat, {}, V_141, supported_architectures}; + + auto english_language_pack = dumpbin_path.parent_path() / "1033"; + + if (!fs.exists(english_language_pack)) + { + excluded_toolsets.push_back(v141toolset); + break; + } + + found_toolsets.push_back(v141toolset); if (v140_is_available) { - found_toolsets.push_back(Toolset{vs_instance.root_path, - dumpbin_path, - vcvarsall_bat, - {"-vcvars_ver=14.0"}, - V_140, - supported_architectures}); + const Toolset v140toolset = Toolset{vs_instance.root_path, + dumpbin_path, + vcvarsall_bat, + {"-vcvars_ver=14.0"}, + V_140, + supported_architectures}; + found_toolsets.push_back(v140toolset); } break; @@ -433,44 +471,66 @@ namespace vcpkg continue; } - if (major_version == "14") + if (major_version == "14" || major_version == "12") { const fs::path vcvarsall_bat = vs_instance.root_path / "VC" / "vcvarsall.bat"; paths_examined.push_back(vcvarsall_bat); if (fs.exists(vcvarsall_bat)) { - const fs::path vs2015_dumpbin_exe = vs_instance.root_path / "VC" / "bin" / "dumpbin.exe"; - paths_examined.push_back(vs2015_dumpbin_exe); + const fs::path vs_dumpbin_exe = vs_instance.root_path / "VC" / "bin" / "dumpbin.exe"; + paths_examined.push_back(vs_dumpbin_exe); - const fs::path vs2015_bin_dir = vcvarsall_bat.parent_path() / "bin"; + const fs::path vs_bin_dir = vcvarsall_bat.parent_path() / "bin"; std::vector<ToolsetArchOption> supported_architectures; - if (fs.exists(vs2015_bin_dir / "vcvars32.bat")) + if (fs.exists(vs_bin_dir / "vcvars32.bat")) supported_architectures.push_back({"x86", CPU::X86, CPU::X86}); - if (fs.exists(vs2015_bin_dir / "amd64\\vcvars64.bat")) + if (fs.exists(vs_bin_dir / "amd64\\vcvars64.bat")) supported_architectures.push_back({"x64", CPU::X64, CPU::X64}); - if (fs.exists(vs2015_bin_dir / "x86_amd64\\vcvarsx86_amd64.bat")) + if (fs.exists(vs_bin_dir / "x86_amd64\\vcvarsx86_amd64.bat")) supported_architectures.push_back({"x86_amd64", CPU::X86, CPU::X64}); - if (fs.exists(vs2015_bin_dir / "x86_arm\\vcvarsx86_arm.bat")) + if (fs.exists(vs_bin_dir / "x86_arm\\vcvarsx86_arm.bat")) supported_architectures.push_back({"x86_arm", CPU::X86, CPU::ARM}); - if (fs.exists(vs2015_bin_dir / "amd64_x86\\vcvarsamd64_x86.bat")) + if (fs.exists(vs_bin_dir / "amd64_x86\\vcvarsamd64_x86.bat")) supported_architectures.push_back({"amd64_x86", CPU::X64, CPU::X86}); - if (fs.exists(vs2015_bin_dir / "amd64_arm\\vcvarsamd64_arm.bat")) + if (fs.exists(vs_bin_dir / "amd64_arm\\vcvarsamd64_arm.bat")) supported_architectures.push_back({"amd64_arm", CPU::X64, CPU::ARM}); - if (fs.exists(vs2015_dumpbin_exe)) + if (fs.exists(vs_dumpbin_exe)) { - found_toolsets.push_back({vs_instance.root_path, - vs2015_dumpbin_exe, - vcvarsall_bat, - {}, - V_140, - supported_architectures}); + const Toolset toolset = {vs_instance.root_path, + vs_dumpbin_exe, + vcvarsall_bat, + {}, + major_version == "14" ? V_140 : V_120, + supported_architectures}; + + auto english_language_pack = vs_dumpbin_exe.parent_path() / "1033"; + + if (!fs.exists(english_language_pack)) + { + excluded_toolsets.push_back(toolset); + break; + } + + found_toolsets.push_back(toolset); } } } } + if (!excluded_toolsets.empty()) + { + System::println( + System::Color::warning, + "Warning: The following VS instances are exluded because the English language pack is unavailable."); + for (const Toolset& toolset : excluded_toolsets) + { + System::println(" %s", toolset.visual_studio_root_path.u8string()); + } + System::println(System::Color::warning, "Please install the English language pack."); + } + if (found_toolsets.empty()) { System::println(System::Color::error, "Could not locate a complete toolset."); @@ -485,16 +545,36 @@ namespace vcpkg return found_toolsets; } - const Toolset& VcpkgPaths::get_toolset(const Optional<std::string>& toolset_version, - const Optional<fs::path>& visual_studio_path) const + const Toolset& VcpkgPaths::get_toolset(const Build::PreBuildInfo& prebuildinfo) const { + if (prebuildinfo.external_toolchain_file) + { + static Toolset external_toolset = []() -> Toolset { + Toolset ret; + ret.dumpbin = ""; + ret.supported_architectures = { + ToolsetArchOption{"", System::get_host_processor(), System::get_host_processor()}}; +#if defined(_WIN32) + ret.vcvarsall = "cmd"; + ret.vcvarsall_options = {"/c", "echo done"}; +#else + ret.vcvarsall = "true"; + ret.vcvarsall_options = {}; +#endif + ret.version = "external"; + ret.visual_studio_root_path = ""; + return ret; + }(); + return external_toolset; + } + // Invariant: toolsets are non-empty and sorted with newest at back() const std::vector<Toolset>& vs_toolsets = this->toolsets.get_lazy([this]() { return find_toolset_instances(*this); }); std::vector<const Toolset*> candidates = Util::element_pointers(vs_toolsets); - const auto tsv = toolset_version.get(); - const auto vsp = visual_studio_path.get(); + const auto tsv = prebuildinfo.platform_toolset.get(); + const auto vsp = prebuildinfo.visual_studio_path.get(); if (tsv && vsp) { @@ -528,6 +608,7 @@ namespace vcpkg vs_root_path.generic_string()); } + Checks::check_exit(VCPKG_LINE_INFO, !candidates.empty(), "No suitable Visual Studio instances were found"); return *candidates.front(); } diff --git a/toolsrc/src/vcpkg/versiont.cpp b/toolsrc/src/vcpkg/versiont.cpp index 1c52d674a..91f7e23ef 100644 --- a/toolsrc/src/vcpkg/versiont.cpp +++ b/toolsrc/src/vcpkg/versiont.cpp @@ -7,13 +7,16 @@ namespace vcpkg { VersionT::VersionT() : value("0.0.0") {} VersionT::VersionT(const std::string& value) : value(value) {} - std::string VersionT::to_string() const { return value; } - bool operator==(const VersionT& left, const VersionT& right) { return left.value == right.value; } - bool operator!=(const VersionT& left, const VersionT& right) { return left.value != right.value; } - std::string to_printf_arg(const VersionT& version) { return version.value; } + const std::string& VersionT::to_string() const { return value; } + bool operator==(const VersionT& left, const VersionT& right) { return left.to_string() == right.to_string(); } + bool operator!=(const VersionT& left, const VersionT& right) { return left.to_string() != right.to_string(); } + std::string to_printf_arg(const VersionT& version) { return version.to_string(); } VersionDiff::VersionDiff() : left(), right() {} VersionDiff::VersionDiff(const VersionT& left, const VersionT& right) : left(left), right(right) {} - std::string VersionDiff::to_string() const { return Strings::format("%s -> %s", left.value, right.value); } + std::string VersionDiff::to_string() const + { + return Strings::format("%s -> %s", left.to_string(), right.to_string()); + } } diff --git a/toolsrc/vcpkg.sln b/toolsrc/vcpkg.sln index c97756c21..c2df757fc 100644 --- a/toolsrc/vcpkg.sln +++ b/toolsrc/vcpkg.sln @@ -11,6 +11,51 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vcpkgmetricsuploader", "vcp EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vcpkgtest", "vcpkgtest\vcpkgtest.vcxproj", "{F27B8DB0-1279-4AF8-A2E3-1D49C4F0220D}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "scripts", "scripts", "{F5893B21-EA71-4432-84D6-5FB0E0461A2A}" + ProjectSection(SolutionItems) = preProject + ..\scripts\bootstrap.ps1 = ..\scripts\bootstrap.ps1 + ..\scripts\fetchDependency.ps1 = ..\scripts\fetchDependency.ps1 + ..\scripts\findAnyMSBuildWithCppPlatformToolset.ps1 = ..\scripts\findAnyMSBuildWithCppPlatformToolset.ps1 + ..\scripts\findFileRecursivelyUp.ps1 = ..\scripts\findFileRecursivelyUp.ps1 + ..\scripts\findVisualStudioInstallationInstances.ps1 = ..\scripts\findVisualStudioInstallationInstances.ps1 + ..\scripts\get_triplet_environment.cmake = ..\scripts\get_triplet_environment.cmake + ..\scripts\getProgramFiles32bit.ps1 = ..\scripts\getProgramFiles32bit.ps1 + ..\scripts\getProgramFilesPlatformBitness.ps1 = ..\scripts\getProgramFilesPlatformBitness.ps1 + ..\scripts\getWindowsSDK.ps1 = ..\scripts\getWindowsSDK.ps1 + ..\scripts\internalCI.ps1 = ..\scripts\internalCI.ps1 + ..\scripts\ports.cmake = ..\scripts\ports.cmake + ..\scripts\SHA256Hash.ps1 = ..\scripts\SHA256Hash.ps1 + ..\scripts\VcpkgPowershellUtils.ps1 = ..\scripts\VcpkgPowershellUtils.ps1 + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "cmake", "cmake", "{A0122231-04D5-420B-81CA-7960946E5E65}" + ProjectSection(SolutionItems) = preProject + ..\scripts\cmake\vcpkg_acquire_msys.cmake = ..\scripts\cmake\vcpkg_acquire_msys.cmake + ..\scripts\cmake\vcpkg_apply_patches.cmake = ..\scripts\cmake\vcpkg_apply_patches.cmake + ..\scripts\cmake\vcpkg_build_cmake.cmake = ..\scripts\cmake\vcpkg_build_cmake.cmake + ..\scripts\cmake\vcpkg_build_msbuild.cmake = ..\scripts\cmake\vcpkg_build_msbuild.cmake + ..\scripts\cmake\vcpkg_build_qmake.cmake = ..\scripts\cmake\vcpkg_build_qmake.cmake + ..\scripts\cmake\vcpkg_common_functions.cmake = ..\scripts\cmake\vcpkg_common_functions.cmake + ..\scripts\cmake\vcpkg_configure_cmake.cmake = ..\scripts\cmake\vcpkg_configure_cmake.cmake + ..\scripts\cmake\vcpkg_configure_meson.cmake = ..\scripts\cmake\vcpkg_configure_meson.cmake + ..\scripts\cmake\vcpkg_configure_qmake.cmake = ..\scripts\cmake\vcpkg_configure_qmake.cmake + ..\scripts\cmake\vcpkg_copy_pdbs.cmake = ..\scripts\cmake\vcpkg_copy_pdbs.cmake + ..\scripts\cmake\vcpkg_copy_tool_dependencies.cmake = ..\scripts\cmake\vcpkg_copy_tool_dependencies.cmake + ..\scripts\cmake\vcpkg_download_distfile.cmake = ..\scripts\cmake\vcpkg_download_distfile.cmake + ..\scripts\cmake\vcpkg_execute_required_process.cmake = ..\scripts\cmake\vcpkg_execute_required_process.cmake + ..\scripts\cmake\vcpkg_execute_required_process_repeat.cmake = ..\scripts\cmake\vcpkg_execute_required_process_repeat.cmake + ..\scripts\cmake\vcpkg_extract_source_archive.cmake = ..\scripts\cmake\vcpkg_extract_source_archive.cmake + ..\scripts\cmake\vcpkg_find_acquire_program.cmake = ..\scripts\cmake\vcpkg_find_acquire_program.cmake + ..\scripts\cmake\vcpkg_fixup_cmake_targets.cmake = ..\scripts\cmake\vcpkg_fixup_cmake_targets.cmake + ..\scripts\cmake\vcpkg_from_bitbucket.cmake = ..\scripts\cmake\vcpkg_from_bitbucket.cmake + ..\scripts\cmake\vcpkg_from_github.cmake = ..\scripts\cmake\vcpkg_from_github.cmake + ..\scripts\cmake\vcpkg_get_program_files_32_bit.cmake = ..\scripts\cmake\vcpkg_get_program_files_32_bit.cmake + ..\scripts\cmake\vcpkg_get_program_files_platform_bitness.cmake = ..\scripts\cmake\vcpkg_get_program_files_platform_bitness.cmake + ..\scripts\cmake\vcpkg_get_windows_sdk.cmake = ..\scripts\cmake\vcpkg_get_windows_sdk.cmake + ..\scripts\cmake\vcpkg_install_cmake.cmake = ..\scripts\cmake\vcpkg_install_cmake.cmake + ..\scripts\cmake\vcpkg_install_meson.cmake = ..\scripts\cmake\vcpkg_install_meson.cmake + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|x64 = Debug|x64 @@ -55,4 +100,10 @@ Global GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {A0122231-04D5-420B-81CA-7960946E5E65} = {F5893B21-EA71-4432-84D6-5FB0E0461A2A} + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {DEDCC7AF-0FE6-4387-9FFE-495D6C1AEE1B} + EndGlobalSection EndGlobal diff --git a/toolsrc/vcpkg/vcpkg.vcxproj b/toolsrc/vcpkg/vcpkg.vcxproj index fd8e5d33e..d15e8dd44 100644 --- a/toolsrc/vcpkg/vcpkg.vcxproj +++ b/toolsrc/vcpkg/vcpkg.vcxproj @@ -138,6 +138,9 @@ <ItemGroup> <ClCompile Include="..\src\vcpkg.cpp" /> </ItemGroup> + <ItemGroup> + <Text Include="..\VERSION.txt" /> + </ItemGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <ImportGroup Label="ExtensionTargets"> </ImportGroup> diff --git a/toolsrc/vcpkg/vcpkg.vcxproj.filters b/toolsrc/vcpkg/vcpkg.vcxproj.filters index ca9723bbf..45a6238f6 100644 --- a/toolsrc/vcpkg/vcpkg.vcxproj.filters +++ b/toolsrc/vcpkg/vcpkg.vcxproj.filters @@ -19,4 +19,9 @@ <Filter>Source Files</Filter> </ClCompile> </ItemGroup> + <ItemGroup> + <Text Include="..\VERSION.txt"> + <Filter>Source Files</Filter> + </Text> + </ItemGroup> </Project>
\ No newline at end of file diff --git a/toolsrc/vcpkglib/vcpkglib.vcxproj b/toolsrc/vcpkglib/vcpkglib.vcxproj index ae332e015..9a7ad6dc0 100644 --- a/toolsrc/vcpkglib/vcpkglib.vcxproj +++ b/toolsrc/vcpkglib/vcpkglib.vcxproj @@ -178,6 +178,7 @@ <ClInclude Include="..\include\vcpkg\statusparagraphs.h" /> <ClInclude Include="..\include\vcpkg\triplet.h" /> <ClInclude Include="..\include\vcpkg\update.h" /> + <ClInclude Include="..\include\vcpkg\userconfig.h" /> <ClInclude Include="..\include\vcpkg\vcpkgcmdarguments.h" /> <ClInclude Include="..\include\vcpkg\vcpkglib.h" /> <ClInclude Include="..\include\vcpkg\vcpkgpaths.h" /> @@ -240,6 +241,7 @@ <ClCompile Include="..\src\vcpkg\statusparagraphs.cpp" /> <ClCompile Include="..\src\vcpkg\triplet.cpp" /> <ClCompile Include="..\src\vcpkg\update.cpp" /> + <ClCompile Include="..\src\vcpkg\userconfig.cpp" /> <ClCompile Include="..\src\vcpkg\vcpkgcmdarguments.cpp" /> <ClCompile Include="..\src\vcpkg\vcpkglib.cpp" /> <ClCompile Include="..\src\vcpkg\vcpkgpaths.cpp" /> diff --git a/toolsrc/vcpkglib/vcpkglib.vcxproj.filters b/toolsrc/vcpkglib/vcpkglib.vcxproj.filters index e902bffbb..966fc7fb9 100644 --- a/toolsrc/vcpkglib/vcpkglib.vcxproj.filters +++ b/toolsrc/vcpkglib/vcpkglib.vcxproj.filters @@ -192,6 +192,9 @@ <ClCompile Include="..\src\vcpkg\base\system.cpp"> <Filter>Source Files\vcpkg\base</Filter> </ClCompile> + <ClCompile Include="..\src\vcpkg\userconfig.cpp"> + <Filter>Source Files\vcpkg</Filter> + </ClCompile> </ItemGroup> <ItemGroup> <ClInclude Include="..\include\pch.h"> @@ -332,5 +335,8 @@ <ClInclude Include="..\include\vcpkg\export.ifw.h"> <Filter>Header Files\vcpkg</Filter> </ClInclude> + <ClInclude Include="..\include\vcpkg\userconfig.h"> + <Filter>Header Files\vcpkg</Filter> + </ClInclude> </ItemGroup> </Project>
\ No newline at end of file diff --git a/toolsrc/vcpkgtest/vcpkgtest.vcxproj b/toolsrc/vcpkgtest/vcpkgtest.vcxproj index d25748124..166216c45 100644 --- a/toolsrc/vcpkgtest/vcpkgtest.vcxproj +++ b/toolsrc/vcpkgtest/vcpkgtest.vcxproj @@ -20,16 +20,30 @@ </ItemGroup> <ItemGroup> <ClCompile Include="..\src\tests.arguments.cpp" /> + <ClCompile Include="..\src\tests.chrono.cpp" /> <ClCompile Include="..\src\tests.dependencies.cpp" /> <ClCompile Include="..\src\tests.packagespec.cpp" /> <ClCompile Include="..\src\tests.paragraph.cpp" /> - <ClCompile Include="..\src\tests.installplan.cpp" /> + <ClCompile Include="..\src\tests.pch.cpp"> + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader> + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader> + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader> + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader> + </ClCompile> + <ClCompile Include="..\src\tests.plan.cpp" /> + <ClCompile Include="..\src\tests.statusparagraphs.cpp" /> + <ClCompile Include="..\src\tests.update.cpp" /> + <ClCompile Include="..\src\tests.utils.cpp" /> </ItemGroup> <ItemGroup> <ProjectReference Include="..\vcpkglib\vcpkglib.vcxproj"> <Project>{b98c92b7-2874-4537-9d46-d14e5c237f04}</Project> </ProjectReference> </ItemGroup> + <ItemGroup> + <ClInclude Include="..\include\tests.pch.h" /> + <ClInclude Include="..\include\tests.utils.h" /> + </ItemGroup> <PropertyGroup Label="Globals"> <ProjectGuid>{F27B8DB0-1279-4AF8-A2E3-1D49C4F0220D}</ProjectGuid> <Keyword>Win32Proj</Keyword> @@ -92,13 +106,13 @@ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" /> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <ClCompile> - <PrecompiledHeader>NotUsing</PrecompiledHeader> + <PrecompiledHeader>Use</PrecompiledHeader> <WarningLevel>Level3</WarningLevel> <Optimization>Disabled</Optimization> <AdditionalIncludeDirectories>..\include;$(VCInstallDir)UnitTest\include;$(VsInstallRoot)\VC\Auxiliary\VS\UnitTest\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <PreprocessorDefinitions>WIN32;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> <UseFullPaths>true</UseFullPaths> - <PrecompiledHeaderFile /> + <PrecompiledHeaderFile>tests.pch.h</PrecompiledHeaderFile> <AdditionalOptions>/std:c++latest %(AdditionalOptions)</AdditionalOptions> <MultiProcessorCompilation>true</MultiProcessorCompilation> <MinimalRebuild>false</MinimalRebuild> @@ -110,13 +124,13 @@ </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <ClCompile> - <PrecompiledHeader>NotUsing</PrecompiledHeader> + <PrecompiledHeader>Use</PrecompiledHeader> <WarningLevel>Level4</WarningLevel> <Optimization>Disabled</Optimization> <AdditionalIncludeDirectories>..\include;$(VCInstallDir)UnitTest\include;$(VsInstallRoot)\VC\Auxiliary\VS\UnitTest\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> <UseFullPaths>true</UseFullPaths> - <PrecompiledHeaderFile /> + <PrecompiledHeaderFile>tests.pch.h</PrecompiledHeaderFile> <AdditionalOptions>/std:c++latest %(AdditionalOptions)</AdditionalOptions> <MultiProcessorCompilation>true</MultiProcessorCompilation> <MinimalRebuild>false</MinimalRebuild> @@ -129,14 +143,14 @@ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <ClCompile> <WarningLevel>Level3</WarningLevel> - <PrecompiledHeader>NotUsing</PrecompiledHeader> + <PrecompiledHeader>Use</PrecompiledHeader> <Optimization>MaxSpeed</Optimization> <FunctionLevelLinking>true</FunctionLevelLinking> <IntrinsicFunctions>true</IntrinsicFunctions> <AdditionalIncludeDirectories>..\include;$(VCInstallDir)UnitTest\include;$(VsInstallRoot)\VC\Auxiliary\VS\UnitTest\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <PreprocessorDefinitions>WIN32;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> <UseFullPaths>true</UseFullPaths> - <PrecompiledHeaderFile /> + <PrecompiledHeaderFile>tests.pch.h</PrecompiledHeaderFile> <AdditionalOptions>/std:c++latest %(AdditionalOptions)</AdditionalOptions> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> @@ -150,14 +164,14 @@ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <ClCompile> <WarningLevel>Level3</WarningLevel> - <PrecompiledHeader>NotUsing</PrecompiledHeader> + <PrecompiledHeader>Use</PrecompiledHeader> <Optimization>MaxSpeed</Optimization> <FunctionLevelLinking>true</FunctionLevelLinking> <IntrinsicFunctions>true</IntrinsicFunctions> <AdditionalIncludeDirectories>..\include;$(VCInstallDir)UnitTest\include;$(VsInstallRoot)\VC\Auxiliary\VS\UnitTest\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> <UseFullPaths>true</UseFullPaths> - <PrecompiledHeaderFile /> + <PrecompiledHeaderFile>tests.pch.h</PrecompiledHeaderFile> <AdditionalOptions>/std:c++latest %(AdditionalOptions)</AdditionalOptions> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> diff --git a/toolsrc/vcpkgtest/vcpkgtest.vcxproj.filters b/toolsrc/vcpkgtest/vcpkgtest.vcxproj.filters index 42691c614..422f9298e 100644 --- a/toolsrc/vcpkgtest/vcpkgtest.vcxproj.filters +++ b/toolsrc/vcpkgtest/vcpkgtest.vcxproj.filters @@ -15,9 +15,6 @@ </Filter> </ItemGroup> <ItemGroup> - <ClCompile Include="..\src\tests.installplan.cpp"> - <Filter>Source Files</Filter> - </ClCompile> <ClCompile Include="..\src\tests.arguments.cpp"> <Filter>Source Files</Filter> </ClCompile> @@ -30,5 +27,31 @@ <ClCompile Include="..\src\tests.paragraph.cpp"> <Filter>Source Files</Filter> </ClCompile> + <ClCompile Include="..\src\tests.statusparagraphs.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\src\tests.plan.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\src\tests.update.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\src\tests.pch.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\src\tests.utils.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\src\tests.chrono.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> + <ClInclude Include="..\include\tests.pch.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\include\tests.utils.h"> + <Filter>Header Files</Filter> + </ClInclude> </ItemGroup> </Project>
\ No newline at end of file |
