Skip to content

Place generated files in CMAKE_BINARY_DIR.#3747

Open
teo-tsirpanis wants to merge 1 commit intoaws:mainfrom
teo-tsirpanis:binary-dir-autogen
Open

Place generated files in CMAKE_BINARY_DIR.#3747
teo-tsirpanis wants to merge 1 commit intoaws:mainfrom
teo-tsirpanis:binary-dir-autogen

Conversation

@teo-tsirpanis
Copy link
Contributor

Issue #, if available:

Description of changes:

Note

This is a reopening of #3459, which was closed for reasons unknown to me.

This PR updates the CMake project to place generated files in the binary directory, instead of the source directory. This follows best practices, and unblocks the vcpkg port to support configuring aws-sdk-cpp in parallel.

Check all that applies:

  • Did a review by yourself.
  • Added proper tests to cover this PR. (If tests are not applicable, explain.)
  • Checked if this PR is a breaking (APIs have been changed) change.
  • Checked if this PR will not introduce cross-platform inconsistent behavior.
  • Checked if this PR would require a ReadMe/Wiki update.

Check which platforms you have built SDK on to verify the correctness of this PR.

  • Linux
  • Windows
  • Android
  • MacOS
  • IOS
  • Other Platforms

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@kai-ion
Copy link
Contributor

kai-ion commented Mar 13, 2026

@teo-tsirpanis
I realize I closed this PR earlier, apologies for that. The comment I left was in response to another issue we had.

After taking another look at the original issue, I wanted to follow up on when you said

unblocks the vcpkg port to support configuring aws-sdk-cpp in parallel.

Do we have an example where the current behavior causes a failure? Since the change also touches include paths and install behavior, it would be helpful to understand whether this is addressing a concrete issue.

@teo-tsirpanis
Copy link
Contributor Author

The patch is being used in vcpkg since microsoft/vcpkg#46105 for more than half a year without problems.

Vcpkg builds ports in both debug and release mode, and to save time it configures them by default in parallel. Configuring from the same source tree in parallel doesn't work if a port writes to it, which according to my understanding is an anti-pattern either way.

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.

2 participants