Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fully parameterize the build. #79

Merged
merged 6 commits into from
Feb 11, 2025
Merged

Fully parameterize the build. #79

merged 6 commits into from
Feb 11, 2025

Conversation

stellaraccident
Copy link
Contributor

@stellaraccident stellaraccident commented Feb 11, 2025

  • Options are defined for every library.
  • Dependencies are specified so that it is safe to enable/disable any subset and have the build do the right thing.
  • Updates tests to adapt to feature availability.
  • Updates documentation, removing some obsolete docs and defining the flags.
  • Adds a THEROCK_VERBOSE=OFF flag and hides a lot of chatty (but useful for developers) CMake output behind it.

* Options are defined for every library.
* Dependencies are specified so that it is safe to enable/disable any subset and have the build do the right thing.
* Updates tests to adapt to feature availability.
* Updates documentation, removing some obsolete docs and defining the flags.
CMakeLists.txt Show resolved Hide resolved
CMakeLists.txt Show resolved Hide resolved
cmake/therock_features.cmake Show resolved Hide resolved
compiler/CMakeLists.txt Show resolved Hide resolved
@stellaraccident stellaraccident merged commit 2225897 into main Feb 11, 2025
1 check passed
@stellaraccident stellaraccident deleted the feature_options branch February 11, 2025 18:51
stellaraccident pushed a commit that referenced this pull request Feb 13, 2025
Current errors when building `all`:
```
[build] [1/5  20% :: 0.138] Merging artifact base
[build] FAILED: artifacts/base_dbg/artifact_manifest.txt artifacts/base_dev/artifact_manifest.txt artifacts/base_doc/artifact_manifest.txt artifacts/base_lib/artifact_manifest.txt artifacts/base_run/artifact_manifest.txt artifacts/base_test/artifact_manifest.txt D:/projects/TheRock/build/artifacts/base_dbg/artifact_manifest.txt D:/projects/TheRock/build/artifacts/base_dev/artifact_manifest.txt D:/projects/TheRock/build/artifacts/base_doc/artifact_manifest.txt D:/projects/TheRock/build/artifacts/base_lib/artifact_manifest.txt D:/projects/TheRock/build/artifacts/base_run/artifact_manifest.txt D:/projects/TheRock/build/artifacts/base_test/artifact_manifest.txt 
[build] C:\Windows\system32\cmd.exe /C "cd /D D:\projects\TheRock\build\base && "C:\Program Files\Python312\python.exe" D:/projects/TheRock/build_tools/fileset_tool.py artifact --output-dir D:/projects/TheRock/build/artifacts/base_dbg --root-dir D:/projects/TheRock/build --descriptor D:/projects/TheRock/base/artifact.toml --component dbg --manifest D:/projects/TheRock/build/artifacts/base_dbg/artifact_manifest.txt && "C:\Program Files\Python312\python.exe" D:/projects/TheRock/build_tools/fileset_tool.py artifact --output-dir D:/projects/TheRock/build/artifacts/base_dev --root-dir D:/projects/TheRock/build --descriptor D:/projects/TheRock/base/artifact.toml --component dev --manifest D:/projects/TheRock/build/artifacts/base_dev/artifact_manifest.txt && "C:\Program Files\Python312\python.exe" D:/projects/TheRock/build_tools/fileset_tool.py artifact --output-dir D:/projects/TheRock/build/artifacts/base_doc --root-dir D:/projects/TheRock/build --descriptor D:/projects/TheRock/base/artifact.toml --component doc --manifest D:/projects/TheRock/build/artifacts/base_doc/artifact_manifest.txt && "C:\Program Files\Python312\python.exe" D:/projects/TheRock/build_tools/fileset_tool.py artifact --output-dir D:/projects/TheRock/build/artifacts/base_lib --root-dir D:/projects/TheRock/build --descriptor D:/projects/TheRock/base/artifact.toml --component lib --manifest D:/projects/TheRock/build/artifacts/base_lib/artifact_manifest.txt && "C:\Program Files\Python312\python.exe" D:/projects/TheRock/build_tools/fileset_tool.py artifact --output-dir D:/projects/TheRock/build/artifacts/base_run --root-dir D:/projects/TheRock/build --descriptor D:/projects/TheRock/base/artifact.toml --component run --manifest D:/projects/TheRock/build/artifacts/base_run/artifact_manifest.txt && "C:\Program Files\Python312\python.exe" D:/projects/TheRock/build_tools/fileset_tool.py artifact --output-dir D:/projects/TheRock/build/artifacts/base_test --root-dir D:/projects/TheRock/build --descriptor D:/projects/TheRock/base/artifact.toml --component test --manifest D:/projects/TheRock/build/artifacts/base_test/artifact_manifest.txt"
[build] Traceback (most recent call last):
[build]   File "D:\projects\TheRock\build_tools\fileset_tool.py", line 550, in <module>
[build]     main(sys.argv[1:])
[build]   File "D:\projects\TheRock\build_tools\fileset_tool.py", line 546, in main
[build]     args.func(args)
[proc] The command: "C:\Program Files\CMake\bin\cmake.EXE" --build d:/projects/TheRock/build --config RelWithDebInfo --target all -- exited with code: 1
[build]   File "D:\projects\TheRock\build_tools\fileset_tool.py", line 321, in do_artifact
[build]     pm.add_basedir(basedir)
[build]   File "D:\projects\TheRock\build_tools\fileset_tool.py", line 147, in add_basedir
[build]     scan_children(basedir, "")
[build]   File "D:\projects\TheRock\build_tools\fileset_tool.py", line 136, in scan_children
[build]     with os.scandir(rootpath) as it:
[build]          ^^^^^^^^^^^^^^^^^^^^
[build] FileNotFoundError: [WinError 3] The system cannot find the path specified: 'D:\\projects\\TheRock\\build\\base\\rocm_smi_lib\\stage'
[build] ninja: build stopped: subcommand failed.
```

Due to
https://github.com/nod-ai/TheRock/blob/b31d7fe504df415a5d55a481b81cec8ef3afe0f9/base/CMakeLists.txt#L113-L131
https://github.com/nod-ai/TheRock/blob/b31d7fe504df415a5d55a481b81cec8ef3afe0f9/base/artifact.toml#L5-L13

I see that #79 didn't touch
`base/`. Could `rocm_smi_lib` be an optional feature of the base
component too?
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.

2 participants