Skip to content

Conversation

@JeffGarland
Copy link
Member

When reviewing the take_before repo I found some issues.

# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception

cmake_minimum_required(VERSION 3.25)
cmake_minimum_required(VERSION 3.28...4.2)
Copy link
Member Author

Choose a reason for hiding this comment

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

3.28 is minimum for modules -- we should have that as minimum now

Copy link
Member

@wusatosi wusatosi Jan 4, 2026

Choose a reason for hiding this comment

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

Sorry for commenting on closed PRs, we seems to be pretty aggressive on CMake versions, would this hurt our adaptability?

Copy link
Member

Choose a reason for hiding this comment

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

Maybe-- but I think it's worth it for two reasons:

  • Consumers of these libraries probably need to build with fairly recent compilers/standards anyway because of the fact that these libraries are targeting standardization, so they're more likely to have up to date build tooling
  • CMake has been getting important features recently-- for example, even without modules, we need to require 3.28 because we use FILE_SETs now, which are much cleaner than previous mechanisms

Copy link
Member Author

@JeffGarland JeffGarland Jan 5, 2026

Choose a reason for hiding this comment

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

I'd also mention that most libraries are header only and we ignore the user drops headers into their project method of installing at your own risk. Which is to say, consumers don't necessarily use the cmake at all.

Copy link
Member

Choose a reason for hiding this comment

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

I thought that use case is very "undefined" and not supported?

Copy link
Member Author

Choose a reason for hiding this comment

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

Well I think that's one persons view, not necessarily the consensus. And for me it should be a goal for a header only library to support as it's a frequent way to consume header only libraries. cmake is 100% our standard for bulding, packaging, and ci -- but that shouldn't prevent other common use cases. Let's say I had a Bazel project and I"m going to do the work to integrate it. For header only that means simply copy the files and putting them somewhere and doing and include. We might even want it for our own purposes. If I wanted to make an 'all the views super project' for beman I'd just need to clone the headers...

@coveralls
Copy link

coveralls commented Dec 25, 2025

Coverage Status

coverage: 100.0%. remained the same
when pulling 8a1e4fe on 274-exemplar-various-updates-cmake-etc
into 2fd62a5 on main.

@JeffGarland
Copy link
Member Author

Also, we seem to have an error here -- after repo clone an cookie cutter

-- Detecting CXX compile features - done
CMake Error at src/beman/char_conversion/CMakeLists.txt:19 (find_package):
  By not providing "Findbeman-install-library.cmake" in CMAKE_MODULE_PATH
  this project has asked CMake to find a package configuration file provided
  by "beman-install-library", but CMake did not find one.

  Could not find a package configuration file provided by
  "beman-install-library" with any of the following names:

    beman-install-libraryConfig.cmake
    beman-install-library-config.cmake

  Add the installation prefix of "beman-install-library" to CMAKE_PREFIX_PATH
  or set "beman-install-library_DIR" to a directory containing one of the
  above files.  If "beman-install-library" provides a separate development
  package or SDK, be sure it has been installed.

@wusatosi
Copy link
Member

Can you provide more context on what this is?

Copy link
Member

@neatudarius neatudarius left a comment

Choose a reason for hiding this comment

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

LGTM

@JeffGarland
Copy link
Member Author

Can you provide more context on what this is?

Sure -- basically if you check out examplar and run cookie cutter to change your project name CI will fail when you push. That's because of the missing include for the cmake. Specifically this:

# for find of beman-install-library
include(infra/cmake/beman-install-library-config.cmake)

This was caused by an infra PR that added the library install change.

But also, there's other small changes here that fit the best practices being used in other Beman repos. Changes I made by hand when recently creating another repo.

Note that these things are independent of @ednolan PR which would have been useful to me as well.

@JeffGarland JeffGarland merged commit 2a8725d into main Dec 30, 2025
93 checks passed
@JeffGarland JeffGarland deleted the 274-exemplar-various-updates-cmake-etc branch December 30, 2025 00:29
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.

Exemplar various updates

6 participants