diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 25559c938..e21a1bd10 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -7,8 +7,9 @@ on: branches: [ master, dev ] env: - LLVM_RELEASE_VERSION: 18 - + LLVM_RELEASE_VERSION_WINDOWS: 18 + LLVM_RELEASE_VERSION_MAC: 18 + LLVM_RELEASE_VERSION_LINUX: 17 jobs: build-msvc: @@ -208,7 +209,7 @@ jobs: fail-fast: false matrix: build_type: [Release, Debug] - llvm_version: [15, 16, 17, 18, 19] + llvm_version: [15, 16, 17, 19] steps: - uses: actions/checkout@v4 @@ -234,9 +235,8 @@ jobs: sudo add-apt-repository "deb http://apt.llvm.org/focal/ llvm-toolchain-focal-${{matrix.llvm_version}} main" sudo apt-get update sudo apt-get install -y -t llvm-toolchain-focal-${{matrix.llvm_version}} libpolly-${{matrix.llvm_version}}-dev \ - clang-${{matrix.llvm_version}} llvm-${{matrix.llvm_version}} libllvm-${{matrix.llvm_version}} \ - lld-${{matrix.llvm_version}} liblld-${{matrix.llvm_version}}-dev libmlir-${{matrix.llvm_version}} \ - libmlir-${{matrix.llvm_version}}-dev mlir-${{matrix.llvm_version}}-tools + clang-${{matrix.llvm_version}} llvm-${{matrix.llvm_version}} libllvm${{matrix.llvm_version}} \ + lld-${{matrix.llvm_version}} liblld-${{matrix.llvm_version}}-dev else sudo add-apt-repository "deb http://apt.llvm.org/focal/ llvm-toolchain-focal main" sudo apt-get install -y -t llvm-toolchain-focal libpolly-${{matrix.llvm_version}}-dev \ @@ -328,7 +328,7 @@ jobs: python3 src/tester.py ../build/c3c test_suite/ - name: bundle_output - if: matrix.llvm_version == env.LLVM_RELEASE_VERSION + if: matrix.llvm_version == env.LLVM_RELEASE_VERSION_LINUX run: | mkdir linux cp -r lib linux @@ -337,7 +337,7 @@ jobs: tar czf c3-linux-${{matrix.build_type}}.tar.gz linux - name: upload artifacts - if: matrix.llvm_version == env.LLVM_RELEASE_VERSION + if: matrix.llvm_version == env.LLVM_RELEASE_VERSION_LINUX uses: actions/upload-artifact@v3 with: name: c3-linux-${{matrix.build_type}} @@ -519,7 +519,7 @@ jobs: python3 src/tester.py ../build/c3c test_suite/ - name: bundle_output - if: matrix.llvm_version == env.LLVM_RELEASE_VERSION + if: matrix.llvm_version == env.LLVM_RELEASE_VERSION_MAC run: | mkdir macos cp -r lib macos @@ -528,7 +528,7 @@ jobs: zip -r c3-macos-${{matrix.build_type}}.zip macos - name: upload artifacts - if: matrix.llvm_version == env.LLVM_RELEASE_VERSION + if: matrix.llvm_version == env.LLVM_RELEASE_VERSION_MAC uses: actions/upload-artifact@v3 with: name: c3-macos-${{matrix.build_type}} diff --git a/src/build/libraries.c b/src/build/libraries.c index b5eba71f5..c8a677af3 100644 --- a/src/build/libraries.c +++ b/src/build/libraries.c @@ -24,6 +24,7 @@ const char *manifest_target_keys[][2] = { {"dependencies", "List of C3 libraries to also include for this target."}, {"exec", "Scripts to also run for the target."}, {"linked-libraries", "Libraries linked by the linker for this target, overriding global settings."}, + {"linked-libs", "Libraries linked by the linker for this target, overriding global settings - deprecated."}, {"link-args", "Linker arguments for this target."}, {"linkflags", "Linker arguments for this target - deprecated."}, }; @@ -59,17 +60,24 @@ static inline void parse_library_type(Library *library, LibraryTarget ***target_ static inline void parse_library_target(Library *library, LibraryTarget *target, const char *target_name, JSONObject *object) { - const char **link_flags = get_string_array(library->dir, target_name, object, "linkflags", false); - if (link_flags) + target->link_flags = get_string_array(library->dir, target_name, object, "linkflags", false); + if (target->link_flags) { eprintf("Library %s is using the deprecated `linkflags` parameter.", library->provides); } else { - link_flags = get_string_array(library->dir, target_name, object, "link-args", false); + target->link_flags = get_string_array(library->dir, target_name, object, "link-args", false); + } + target->linked_libs = get_string_array(library->dir, target_name, object, "linked-libs", false); + if (target->linked_libs) + { + eprintf("Library %s is using the deprecated `linked-libs` parameter.", library->provides); + } + else + { + target->linked_libs = get_string_array(library->dir, target_name, object, "linked-libraries", false); } - target->link_flags = link_flags; - target->linked_libs = get_string_array(library->dir, target_name, object, "linked-libraries", false); target->dependencies = get_string_array(library->dir, target_name, object, "dependencies", false); target->execs = get_string_array(library->dir, target_name, object, "exec", false); target->cc = get_string(library->dir, target_name, object, "cc", library->cc);