Skip to content

Conversation

@xARSENICx
Copy link

  • Changes comply with the maintainer guide.
  • The name of the port matches an existing name for this component on https://repology.org/ if possible, and/or is strongly associated with that component on search engines. (universal on Repology)
  • Optional dependencies are resolved in exactly one way. For example, if the component is built with CMake, all find_package calls are REQUIRED, are satisfied by vcpkg.json's declared dependencies, or disabled with CMAKE_DISABLE_FIND_PACKAGE_Xxx.
  • The versioning scheme in vcpkg.json matches what upstream says.
  • The license declaration in vcpkg.json matches what upstream says.
  • The installed "copyright" file matches what upstream says.
  • The source code of the component installed comes from an authoritative source.
  • The generated "usage text" is accurate. See adding-usage for context.
  • The version database is fixed by rerunning ./vcpkg x-add-version --all and committing the result.
  • Only one version is in the new port's versions file.
  • Only one version is added to each modified port's versions file.

Notes:

  • Fixes [New Port Request] Universal #49880 ([New Port Request] Universal).
  • Added fix-install-path.patch to resolve an issue where the upstream CMakeLists.txt attempts to install headers from include/universal while the source structure is include/sw/universal.
  • Disabled tests (-DUNIVERSAL_ENABLE_TESTS=OFF) and verbose build output to ensure a clean build.
  • This port provides header-only libraries, installed to include/universal.

@xARSENICx
Copy link
Author

@microsoft-github-policy-service agree

@xARSENICx xARSENICx marked this pull request as draft February 11, 2026 22:15
@atharvRsharma
Copy link

atharvRsharma commented Feb 12, 2026

hey i was trying this out, does your impl fully install properly? i had some errors related to lines 4-5 for cmakelists.txt, it couldnt find the files due to the test folder not being exported to the final release folder, did you have any similar issues?

@xARSENICx
Copy link
Author

Yep it worked for me. I am unsure about the build fails. I hope someone from the core team can help me out here.


vcpkg_cmake_config_fixup(
PACKAGE_NAME universal
CONFIG_PATH share/universal
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From the CI (see generated artifacts): The config file is installed to:

-- Installing: D:/p/universal_x64-windows/CMake/universal-config.cmake

Therefore it should be

Suggested change
CONFIG_PATH share/universal
CONFIG_PATH CMake

vcpkg_cmake_install()

vcpkg_cmake_config_fixup(
PACKAGE_NAME universal
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As this equal to the port name, this is not necessary.

@BillyONeal I think universal is a really generic library name. Maybe rename this port to stillwater-universal? In this case line would be still necessary.

vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO stillwater-sc/universal
REF v3.96
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
REF v3.96
REF "v${VERSION}"

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

file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") No newline at end of file
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you add a line break at end of file (same for the usage file). Looks better in GitHub here ;-)

)

file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove this line, as share is not installed (as this port write the cmake export files to CMake instead).

CONFIG_PATH share/universal
)

file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Uppercase, as I see in the CI logs:

-- Installing: D:/p/universal_x64-windows/debug/Include/universal
-- Installing: D:/p/universal_x64-windows/debug/Include/universal/adapters
-- Installing: D:/p/universal_x64-windows/debug/Include/universal/adapters/adapt_integer_and_posit.hpp
Suggested change
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/Include")

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually the headers must go to <prefix>/include for proper vcpkg install layout. Do not assume a case-insensitive file system.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[New Port Request] Universal

4 participants