Skip to content

Replace SCons with CMake#74

Draft
tj90241 wants to merge 1 commit into
avadhpatel:masterfrom
tj90241:scons-2-cmake
Draft

Replace SCons with CMake#74
tj90241 wants to merge 1 commit into
avadhpatel:masterfrom
tj90241:scons-2-cmake

Conversation

@tj90241
Copy link
Copy Markdown
Contributor

@tj90241 tj90241 commented Feb 13, 2022

  • Remove SCons and replace it with a CMake-driven build
    system. The immediate benefit of this is that we no
    longer need to maintain any build scaffolding for qemu,
    as we just use their configure/Makefiles/etc.

  • Purge qemu out of tree, and instead leverage it as a
    submodule. The submodule being used has git history for
    qemu and MARSS-specific changes so that it's easier to
    understand the changes made for MARSS.

This is preliminary work: we'll need to document the (at
least, temporary) requirements such as jq...

When checking out this branch and forever more, one must
run git submodule update --init --recursive to fetch the
qemu submodule.

Builds can be then done in a separate directory:

mkdir -p build && cd build
cmake ..
make -j9

Signed-off-by: Tyler J. Stachecki stachecki.tyler@gmail.com

@tj90241
Copy link
Copy Markdown
Contributor Author

tj90241 commented Feb 13, 2022

Currently have to copy ROM images into the build dir, still need to fix...

git submodule update --init --recursive
mkdir -p build && cd build
cmake ..
make -j9
cp -R ../qemu/pc-bios/* share/qemu/

I also have to double-check that qemu-system-x86_64 gets relinked when libptlsim.a changes - I don't think that's the case right now.

There's also a variety of new tools and packages that might be needed, includiing jq, libfdt-dev, and others.

  * Remove SCons and replace it with a CMake-driven build
    system. The immediate benefit of this is that we no
    longer need to maintain any build scaffolding for qemu,
    as we just use their configure/Makefiles/etc.

  * Purge qemu out of tree, and instead leverage it as a
    submodule. The submodule being used has git history for
    qemu and MARSS-specific changes so that it's easier to
    understand the changes made for MARSS.

This is preliminary work: we'll need to document the (at
least, temporary) requirements such as jq...

When checking out this branch and forever more, one must
run `git submodule update --init --recursive` to fetch the
`qemu` submodule.

Builds can be then done in a separate directory:
```
mkdir -p build && cd build
cmake ..
make -j9
```

Signed-off-by: Tyler J. Stachecki <stachecki.tyler@gmail.com>
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.

1 participant