Commit Graph

107 Commits

Author SHA1 Message Date
7f5a35cf4b doc: Add deps install notes for multiprocess
These just mirror the content in src/ipc/libmultiprocess/doc/install.md
2025-04-17 20:26:43 +02:00
6d4214925f cmake: Require Qt 6 to build GUI 2025-04-02 09:11:48 +01:00
1f9b2e150c cmake: Require zip only for deploy target 2025-03-13 11:22:30 +00:00
502d47203e Merge bitcoin/bitcoin#31161: cmake: Set top-level target output locations
568fcdddae scripted-diff: Adjust documentation per top-level target output location (Hennadii Stepanov)
026bb226e9 cmake: Set top-level target output locations (Hennadii Stepanov)

Pull request description:

  This PR sets the target output locations to the `bin` and `lib` subdirectories within the build tree, creating a directory structure that mirrors that of the installed targets.

  This approach is widely adopted by the large projects, such as [LLVM](e146c1867e/lldb/cmake/modules/LLDBStandalone.cmake (L128-L130)):
  ```cmake
  set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
  set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX})
  set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX})
  ```

  The `libsecp256k1` project has also recently [adopted](https://github.com/bitcoin-core/secp256k1/pull/1553) this approach.

  With this PR, all binaries are conveniently located. For example, run:
  ```
  $ ./build/bin/fuzz
  ```
  instead of:
  ```
  $ ./build/src/test/fuzz/fuzz
  ```

  On Windows, all required DLLs are now located in the same directory as the executables, allowing to run `bitcoin-chainstate.exe` (which loads `bitcoinkernel.dll`) without the need to copy DLLs or modify the `PATH` variable.

  The idea was briefly discussed among the build team during the recent CoreDev meeting.

  ---

  **Warning**: This PR changes build locations of newly built executables like `bitcoind` and `test_bitcoin` from `src/` to `bin/` without deleting previously built executables. A clean build is recommended to avoid accidentally running old binaries.

ACKs for top commit:
  theStack:
    Light re-ACK 568fcdddae
  ryanofsky:
    Code review ACK 568fcdddae. Only change since last review was rebasing. I'm ok with this PR in its current form if other developers are happy with it. I just personally think it is inappropriate to \*silently\* break an everyday developer workflow like `git pull; make bitcoind`. I wouldn't have a problem with this PR if it triggered an explicit error, or if the problem was limited to less common workflows like changing cmake options in an existing build.
  TheCharlatan:
    Re-ACK 568fcdddae
  theuni:
    ACK 568fcdddae

Tree-SHA512: 1aa5ecd3cd49bd82f1dcc96c8e171d2d19c58aec8dade4bc329df89311f9e50cbf6cf021d004c58a0e1016c375b0fa348ccd52761bcdd179c2d1e61c105e3b9f
2025-03-12 11:19:00 +08:00
d79dab0fa9 doc: warn against having qt6 installed on macOS 2025-03-07 05:01:46 -05:00
568fcdddae scripted-diff: Adjust documentation per top-level target output location
-BEGIN VERIFY SCRIPT-

ren() { sed -i "s|\<$1\>|$2|g" $( git grep -l "$1" :\(exclude\)./src/secp256k1 ) ; }

ren build/src/bench   build/bin
ren build/src/test    build/bin
ren build/src/qt/test build/bin
ren build/src/qt      build/bin
ren build/src         build/bin
ren build_fuzz/src/test/fuzz build_fuzz/bin

-END VERIFY SCRIPT-
2025-02-20 22:18:57 +00:00
8d203480b3 doc: migrate from pkg-config to pkgconf in macOS build docs
Brew has migrated to using the later:
```bash
brew info pkg-config
==> pkgconf: stable 2.3.0 (bottled), HEAD
Package compiler and linker metadata toolkit
https://github.com/pkgconf/pkgconf
```
2024-11-21 10:28:44 +00:00
953533d021 doc: remove mentions of UPnP 2024-10-25 09:27:29 -04:00
79aa8280b2 doc: drop LLVM install instructions 2024-10-16 14:20:21 +01:00
a0e089a71d build: Bump minimum supported macOS to 13.0
Running Bitcoin Core on unsupported OSes may expose users to security
issues.

macOS Monterey 12 received its final security update (12.7.6) on July
2024. Apple classifies the hardware that can run macOS 12 at most as
"obsolete worldwide".
2024-10-15 10:18:48 +01:00
7e7ec984da doc: Remove mention of natpmp build options 2024-09-30 11:37:56 +02:00
8d7f8fabae doc: fix compiler flags for macOS configuration 2024-09-02 12:53:50 +01:00
3c53e59dcf doc: fixup macOS build docs for CMake 2024-08-28 14:48:23 +01:00
6ce50fd9d0 doc: Update for CMake-based build system
Co-authored-by: Lőrinc <pap.lorinc@gmail.com>
Co-authored-by: pablomartin4btc <pablomartin4btc@gmail.com>
2024-08-16 21:24:08 +01:00
22574046c9 doc: add LLVM instruction for macOS < 13 2024-04-29 10:33:21 +02:00
30bd4b1e4a doc: remove mention of missing bdb being a configure error
This is no-longer the case, unless you're passing additional flags,
which is not the case in this example.
2023-11-15 13:34:50 +00:00
b5790c35f7 build: remove dmg dependencies 2023-09-15 13:47:50 +01:00
34a2f91055 Revert "doc: note that brew installed qt is not supported"
This reverts commit 33b0b26a03.
2022-09-14 13:51:17 +01:00
e09cf64c48 Merge bitcoin/bitcoin#24585: doc: mention that BDB is for the legacy wallet in build-osx.md
57f3f5cecf doc: s/Compiler/Dependency in dependencies.md (fanquake)
bf846779ca doc: cleanup wallet docs in build-osx.md (fanquake)

Pull request description:

  Re-order legacy and descriptor wallet section.
  Installing sqlite isn't required (the version pre-installed on macOS is just as good as what will be installed via `brew`).
  Remove prelude that pointlessly repeats the same info.

  Basically the macOS version of #23446.

  Includes a small fixup from #23565.

ACKs for top commit:
  RandyMcMillan:
    ACK 57f3f5c
  hebasto:
    ACK 57f3f5cecf, I have reviewed the changes and they look OK, I agree they can be merged.

Tree-SHA512: a1ca5f73aa4f4f56de747fd9669bce572c1d7d23925afb47b5d963314df1738762ea26428c040e9c706d288eb7e775227d2387a322cda065885b89c6a619314f
2022-03-17 21:13:39 +01:00
e359ba6b35 doc: Drop a note about Intel-based Macs 2022-03-16 18:09:06 +01:00
bf846779ca doc: cleanup wallet docs in build-osx.md
Re-order legacy and descriptor wallet section.
Installing sqlite isn't required.
Remove prelude that pointlessly reqpeats the same info.
2022-03-16 16:28:28 +00:00
893e18059f doc: rework dependencies.md 2022-03-16 10:18:47 +00:00
e09773d20a build: use a static .tiff for macOS .dmg over generating
Co-authored-by: Pavol Rusnak <pavol@rusnak.io>
2022-01-02 15:38:19 +08:00
33b0b26a03 doc: note that brew installed qt is not supported 2021-05-17 21:36:08 -04:00
07bc22ef10 docs: improve make with parallel jobs description. 2021-05-14 08:45:27 +08:00
c180c911b8 doc: revamp macOS build doc
This pr makes the macOS build docs more informative and adds in the following information:
- Proper descriptions and delineation of required/optional dependencies
- walk-through of optional dependencies
- configuration walk-through
- various other tid-bits of information
2021-03-03 16:09:52 -05:00
bec7f2caf7 doc: install qt5 when building on macOS
Brew has updated such that qt now refers to Qt 6.0.1. If builders
install this, configure will not work pick up qt. For now, install
qt@5 (5.15.2), until required build system and likely source changes
are made.
2021-03-03 12:00:06 +08:00
3e61b8c800 doc: Add explicit macdeployqtplus dependencies install step
This change is required on macOS 11 Big Sur.
2021-01-09 09:37:12 +02:00
ae749d12dd doc: Add libnatpmp stuff 2021-01-07 18:07:10 +02:00
c932e0d67e doc: Update wallet database installation guide for macOS 2020-12-07 13:25:06 +02:00
a52ecc936a build: set minimum supported macOS to 10.14 2020-11-18 21:46:09 +08:00
6c6639ac9f Include sqlite3 in documentation 2020-10-14 11:28:18 -04:00
eb3c6b0912 Merge #18070: doc: add note about brew doctor
63ce882760 doc: link to homebrew's troubleshooting page (Gastón I. Silva)

Pull request description:

  A trivial documentation update.

  When I was following the build steps for mac, I had some errors installing the dependencies. After searching on the Internet, and correcting the errors, I found that `brew doctor` had all the answers I needed. Could have skipped the Internet searches all together.

ACKs for top commit:
  fanquake:
    ACK 63ce882760 - a link to the troubleshooting page seems fine. I wouldn't really want our README to have anything more specific than that.

Tree-SHA512: 12c96cd9c9bd39ada21f3f27cbec3ed4bef4b8e74dec7872c892fc6a92a70418a5cc0882ff449883e91d96c01e1ca7104b076590917f397334c82931ec7fda1c
2020-02-20 20:56:41 +08:00
63ce882760 doc: link to homebrew's troubleshooting page 2020-02-06 09:05:55 -08:00
7e2104433c build: use macOS 10.14 SDK
Co-Authored-By: Carl Dong <accounts@carldong.me>
2020-02-03 19:49:46 +08:00
7d7bf2ff4a build: set minimum supported macOS to 10.12 2019-11-21 11:08:47 -05:00
a4eb839619 doc: remove OpenSSL from build instructions and licensing info 2019-11-18 08:56:48 -05:00
e09913f1c4 doc: specify protobuf as optional in build docs 2019-09-12 20:28:53 +10:00
90b5c4eefb doc: Fix broken link in doc/build-osx.md
This fixes the regression in PR #15964 as noted here:

https://github.com/bitcoin/bitcoin/pull/15964/files#r298798933
2019-06-29 16:32:36 +02:00
dbd137a4ea Improve build-osx formatting 2019-06-14 13:50:12 +02:00
8dfbb5cf23 doc: mention creating application support bitcoin folder on OSX 2019-04-12 09:18:41 -05:00
f24ed6d39f Delete README_osx.md and move its contents into build-osx.md 2019-01-21 20:24:33 +01:00
fa4da3c058 [doc] conf: Remove deprecated options from docs, Other cleanup
* conf: Remove deprecated options from docs
* Remove only mention of MIT/X11
* Link to developer notes in README.md
2018-11-07 13:30:03 -05:00
36c8e68585 Various textual improvements in build docs 2018-10-28 06:01:01 +01:00
e351a16a2a Remove reference to deprecated RPC call in build instructions 2018-09-05 14:21:18 -05:00
a6f16f1b1a Docs: Add disable-wallet section to OSX build instructions 2018-09-05 13:57:47 -05:00
3be70ba400 trivial: Fixed typos and cleaned up language 2018-08-02 21:27:16 +08:00
6c6dbd8af5 doc: mention that macOS 10.10 is now required 2018-07-25 07:30:28 +08:00
af6ac3b677 doc: Remove mention of Qt4 from build docs 2018-06-18 12:22:14 +02:00
989c8990bb Rename “OS X” to the newer “macOS” convention 2018-06-04 13:04:04 +02:00