errors · 3.5CMake, while configuring prjxray
Cannot specify include directories for target "yaml-cpp" which is not built by this project
You ran cmake -B build inside prjxray and CMake stopped with this error. If you fix yaml-cpp by hand, the next run fails on googletest, then on abseil.
Why does it happen?
prjxray pulls six smaller projects in as git submodules. A plain git clone leaves those folders empty, and CMake reports them one at a time. Nothing gives you the full list up front.
What is the fix?
Clone with --recursive.
cd ~/fpga
git clone --recursive https://github.com/f4pga/prjxray.git
cd prjxray
git checkout c9f02d8576042325425824647ab5555b1bc77833
git submodule update --init --recursive
If you already have a clone, fill in the submodules instead of cloning again.
git submodule update --init --recursive
Then configure again. On a current CMake you also need the policy flag, which is the next wall.
cmake -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_POLICY_VERSION_MINIMUM=3.5 -DPRJXRAY_BUILD_TESTING=OFF
cmake --build build --target xc7frames2bit -j3
The same flag matters for nextpnr-xilinx: its --recursive clone is what brings the raw chip data that the chip database is generated from.
Section 3.5 of the guide: prjxray.