There are a variety of other settings which you can find in CMakeCache.txt in
your build folder or by running
ccmake (or another CMake GUI). Most
DFHack-specific settings begin with
BUILD_ and control which parts of DFHack
Typical usage may look like:
# Plugin development with updated documentation cmake ./ -G Ninja -B builds/debug-info/ -DCMAKE_INSTALL_PREFIX=<path to DF> -DCMAKE_BUILD_TYPE:string=RelWithDebInfo -DBUILD_DOCS:bool=ON -DBUILD_PLUGINS=1 # Core DFHack only cmake ../ -G Ninja -DCMAKE_INSTALL_PREFIX=<path to DF> -DCMAKE_BUILD_TYPE:string=RelWithDebInfo -DBUILD_TESTS -DBUILD_DOCS:0 -DBUILD_PLUGINS=0
For the uninitiated, the generator is what allows cmake to, of course, generate visual studio solution & project files, a makefile, or anything else. Your selection of generator comes down to preference and availability.
To generate visual studio project files, you’ll need to select a particular version of
visual studio, and match that to your system’s generator list viewed with
cmake .. -G "Visual Studio 17 2022"
The generally preferred build system where available.
cmake .. -G Ninja
This is the location where DFHack will be installed.
cmake .. -DCMAKE_INSTALL_PREFIX=<path to df>
The path to df will of course depend on your system. If the directory exists it is
recommended to use
~/.dwarffortress to avoid permission troubles.
This is the type of build you want. This controls what information about symbols and line numbers the debugger will have available to it.
cmake .. -DCMAKE_BUILD_TYPE:string=RelWithDebInfo
Target architecture (32/64-bit)¶
You can set this if you need 32-bit binaries or are looking to be explicit about building 64-bit.
cmake .. -DDFHACK_BUILD_ARCH=32
‘64’ (default option)
This will only be useful if you’re looking to avoid building the library core, as it builds by default.
cmake .. -DBUILD_LIBRARY:bool=OFF cmake .. -DBUILD_LIBRARY=0
Regression testing will be arriving in the future, but for now there are only tests written in lua.
BUILD_TESTING(will build unit tests, in the future)
BUILD_TESTS(installs lua tests)
cmake .. -DBUILD_TESTS:bool=ON cmake .. -DBUILD_TESTS=1
If you’re doing plugin development.
cmake .. -DBUILD_PLUGINS:bool=ON cmake .. -DBUILD_PLUGINS=1
If you need to build documentation. Documentation can be built as HTML, and PDF, but there are also plain text files generated for in-game.
cmake .. -DBUILD_DOCS:bool=ON cmake .. -DBUILD_DOCS=1
The generated documentation is stored in
in the root DFHack folder, and they will both be installed to
hack/docs when you
install DFHack. The html and txt files will intermingle, but will not interfere with