1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 04:47:34 +00:00

HackStudio: Change ProjectBuilder dependency declaration logic

Previously when generating the HackStudio CMake build file,
we used all dependency libraries that are specified in
target_link_libraries commands as the dependencies of a library.

The recent addition of LibCryptSHA2 broke things because that library
is not declared with serenity_lib like most other libraries
(it uses special linking properties).
This means that we don't declare it in the CMake file we generate.

To fix this, we now filter the dependencies and only include libraries
that we define in the build CMake file.
This commit is contained in:
Itamar 2022-01-18 20:35:14 +02:00 committed by Andreas Kling
parent 404daa0e33
commit 0367893e53
2 changed files with 50 additions and 14 deletions

View file

@ -37,8 +37,13 @@ private:
String generate_cmake_file_content() const;
ErrorOr<void> update_active_file(StringView active_file);
static void generate_cmake_library_definitions(StringBuilder&);
static void generate_cmake_library_dependencies(StringBuilder&);
struct LibraryInfo {
String path;
Vector<String> dependencies {};
};
static HashMap<String, NonnullOwnPtr<LibraryInfo>> get_defined_libraries();
static void for_each_library_definition(Function<void(String, String)>);
static void for_each_library_dependencies(Function<void(String, Vector<StringView>)>);
static ErrorOr<String> component_name(StringView cmake_file_path);
static ErrorOr<void> verify_cmake_is_installed();