# CMAKE\_OSX\_ARCHITECTURES documentation page leaves a lot to be desired for newbie

**URL:** https://discourse.cmake.org/t/cmake-osx-architectures-documentation-page-leaves-a-lot-to-be-desired-for-newbie/15177
**Category:** Usage
**Tags:** os:macos
**Created:** [September 17, 2025, 6:48pm UTC](https://discourse.cmake.org/t/cmake-osx-architectures-documentation-page-leaves-a-lot-to-be-desired-for-newbie/15177 "2025-09-17T18:48:47Z")
**Posts on this page:** 7
**Page:** 1

<div class="post-metadata">

### Author: ![ipatch](https://discourse.cmake.org/user_avatar/discourse.cmake.org/ipatch/32/961_2.png) [@ipatch](https://discourse.cmake.org/u/ipatch)
#### Post date: [September 17, 2025, 6:48pm UTC](https://discourse.cmake.org/t/cmake-osx-architectures-documentation-page-leaves-a-lot-to-be-desired-for-newbie/15177/1 "2025-09-17T18:48:48Z")

</div>

> dumb question from a dumb person.

when working with cmake i often use the following cmake command, `cmake -L` to print a list of “variables” / “args” i can pass to my cmake based project. so i do a google for `CMAKE_OSX_ARCHITECTURES` or even better i pop open the official cmake documentation and do a search for `CMAKE_OSX_ARCHITECTURES`which gives me the below page,

[https://cmake.org/cmake/help/latest/variable/CMAKE\_OSX\_ARCHITECTURES.html](https://cmake.org/cmake/help/latest/variable/CMAKE_OSX_ARCHITECTURES.html)

so for somebody completely new cmake who god forbid attempts to read the “official” documentation for cmake to troubleshoot working on a cmake based project and they want to find out more information about a cmake var / arg, how does that above page help.

it provides a link to another page that doesn’t provide much if any information that helps with the above said arg / var. i’d figure at the very least in the documentation there would be some values that var / arg could possible be. or even provide a command to show me what those values could be.

the documentation feels rather **utterly** incomplete.

maybe i’m missing something here 🤷‍♂️

---

<div class="post-metadata">

### Author: ![vito.gamberini](https://discourse.cmake.org/user_avatar/discourse.cmake.org/vito.gamberini/32/4376_2.png) [@vito.gamberini](https://discourse.cmake.org/u/vito.gamberini)
#### Post date: [September 30, 2025, 7:01am UTC](https://discourse.cmake.org/t/cmake-osx-architectures-documentation-page-leaves-a-lot-to-be-desired-for-newbie/15177/2 "2025-09-30T07:01:52Z")

</div>

> The OSX\_ARCHITECTURES property sets the target binary architecture for targets on macOS (-arch).

It sets the value passed to the `-arch` flag. That’s it.

Maybe that could be worded a little better, but the confusion I see a lot more often is “OK but what does the `-arch` flag do” or similar for other CMake options, and this now puts the CMake docs in an awkward position. There’s zero chance our docs can maintain parity with compiler manuals, and hardcoding links to compiler manuals into the CMake docs guarantees the links will rot in older versions of our documentation.

No great answer to this kind of problem. Building system software is hard and requires a very wide knowledge base.

---

<div class="post-metadata">

### Author: ![hsattler](https://discourse.cmake.org/letter_avatar_proxy/v4/letter/h/59ef9b/32.png) [@hsattler](https://discourse.cmake.org/u/hsattler)
#### Post date: [September 30, 2025, 8:15am UTC](https://discourse.cmake.org/t/cmake-osx-architectures-documentation-page-leaves-a-lot-to-be-desired-for-newbie/15177/3 "2025-09-30T08:15:54Z")

</div>

Well, it could mention that -arch is a compiler option and that the supported values can be looked up in the compiler documentation.

---

<div class="post-metadata">

### Author: ![vito.gamberini](https://discourse.cmake.org/user_avatar/discourse.cmake.org/vito.gamberini/32/4376_2.png) [@vito.gamberini](https://discourse.cmake.org/u/vito.gamberini)
#### Post date: [September 30, 2025, 8:31am UTC](https://discourse.cmake.org/t/cmake-osx-architectures-documentation-page-leaves-a-lot-to-be-desired-for-newbie/15177/4 "2025-09-30T08:31:18Z")

</div>

AFAIK, `-arch` is not a documented flag beyond its existence. Maybe there’s some buried Apple documentation I’m forgetting about or missing

[https://clang.llvm.org/docs/ClangCommandLineReference.html#cmdoption-clang-arch](https://clang.llvm.org/docs/ClangCommandLineReference.html#cmdoption-clang-arch)

[https://clang.llvm.org/docs/CommandGuide/clang.html#cmdoption-arch](https://clang.llvm.org/docs/CommandGuide/clang.html#cmdoption-arch)

---

<div class="post-metadata">

### Author: ![benthevining](https://discourse.cmake.org/user_avatar/discourse.cmake.org/benthevining/32/1924_2.png) [@benthevining](https://discourse.cmake.org/u/benthevining)
#### Post date: [September 30, 2025, 8:46pm UTC](https://discourse.cmake.org/t/cmake-osx-architectures-documentation-page-leaves-a-lot-to-be-desired-for-newbie/15177/5 "2025-09-30T20:46:16Z")

</div>

What needs to be documented about the `-arch` flag? It’s a simple 1-sentence explanation (“specify the architecture to build for“), but I think that’s pretty sufficient explanation

---

<div class="post-metadata">

### Author: ![imikejackson](https://discourse.cmake.org/user_avatar/discourse.cmake.org/imikejackson/32/301_2.png) [@imikejackson](https://discourse.cmake.org/u/imikejackson)
#### Post date: [October 7, 2025, 2:31pm UTC](https://discourse.cmake.org/t/cmake-osx-architectures-documentation-page-leaves-a-lot-to-be-desired-for-newbie/15177/6 "2025-10-07T14:31:47Z")

</div>

The original poster has a very valid point. Not every developer has the deepest of understanding of CPU architectures let alone what operating system supports which architectures. And to the point about linking to compiler docs and having those links become stale there could be a statement as simple as:

Historically as of macOS (insert some version that is current) the values for -arch are “arm64” and “x86\_64”. Please consult the compile documentation for more details.

We are not asking Kitware or the CMake developers to maintain a second compiler manual at all. But sometimes just the most basic of statements can help new users in immense ways.

Shall I put in the bug report or would @benthevining or @vito.gamberini like to do that?

---

<div class="post-metadata">

### Author: ![vito.gamberini](https://discourse.cmake.org/user_avatar/discourse.cmake.org/vito.gamberini/32/4376_2.png) [@vito.gamberini](https://discourse.cmake.org/u/vito.gamberini)
#### Post date: [October 13, 2025, 7:37am UTC](https://discourse.cmake.org/t/cmake-osx-architectures-documentation-page-leaves-a-lot-to-be-desired-for-newbie/15177/7 "2025-10-13T07:37:18Z")

</div>

> [@benthevining](#):
>
> What needs to be documented about the `-arch` flag?

How it’s different from target and march? The valid values? That you can pass it multiple times to lipo multiple binaries into a universal Mach-O?

Or whatever. I don’t think devs who need `-arch` are actually confused about it but that’s what I would imagine basic reference documentation to be.
