From a76d5790f4f136df53e458aa3ef440ff0a61f80c Mon Sep 17 00:00:00 2001 From: "J. Caleb Wherry" <337871+calebwherry@users.noreply.github.com> Date: Fri, 29 Sep 2023 17:28:14 -0400 Subject: [PATCH] 17697: Removes no postfix binaries (#17) Binary artifacts without a postfix (copies of default target binary on each platform) are being removed. This functionality was intended to help flipping between variant builds but the right way is to use symlinking in user space, not whole copies of binaries in the deployed artifacts. --- .github/workflows/build-test-package.yml | 70 +++++++++++++------- CMakeLists.txt | 1 - README.md | 4 +- build/cmake/create_no_suffix_artifacts.cmake | 46 ------------- build/cmake/create_static_targets.cmake | 2 +- 5 files changed, 48 insertions(+), 75 deletions(-) delete mode 100644 build/cmake/create_no_suffix_artifacts.cmake diff --git a/.github/workflows/build-test-package.yml b/.github/workflows/build-test-package.yml index 537d28c9..ede61aec 100644 --- a/.github/workflows/build-test-package.yml +++ b/.github/workflows/build-test-package.yml @@ -16,7 +16,7 @@ jobs: build-linux: runs-on: ubuntu-20.04 container: - image: ghcr.io/howsoai/amalgam-build-container-linux:0.13.0 + image: ghcr.io/howsoai/amalgam-build-container-linux:1.0.0 credentials: username: ${{ github.actor }} password: ${{ github.token }} @@ -193,12 +193,10 @@ jobs: - name: Smoke test run: | set -e - BIN=./amalgam/bin - echo -n "amalgam: " && $BIN/amalgam --version - echo -n "amalgam-mt: " && $BIN/amalgam-mt --version - echo -n "amalgam-mt-noavx: " && $BIN/amalgam-mt-noavx --version - echo -n "amalgam-st: " && $BIN/amalgam-st --version - echo -n "amalgam-omp: " && $BIN/amalgam-omp --version + cd ./amalgam/bin + for f in *; do + echo -n "$f: " && "./$f" --version + done smoke-test-linux-arm64: needs: ['build-linux'] @@ -222,11 +220,10 @@ jobs: commands: | set -e PATH=$PATH:/usr/aarch64-linux-gnu - BIN=./amalgam/bin - echo -n "amalgam: " && $BIN/amalgam --version - echo -n "amalgam-mt: " && $BIN/amalgam-mt --version - echo -n "amalgam-st: " && $BIN/amalgam-st --version - echo -n "amalgam-omp: " && $BIN/amalgam-omp --version + cd ./amalgam/bin + for f in *; do + echo -n "$f: " && "./$f" --version + done smoke-test-linux-arm64_8a: needs: ['build-linux'] @@ -250,9 +247,10 @@ jobs: commands: | set -e PATH=$PATH:/usr/aarch64-linux-gnu - BIN=./amalgam/bin - echo -n "amalgam: " && $BIN/amalgam --version - echo -n "amalgam-st: " && $BIN/amalgam-st --version + cd ./amalgam/bin + for f in *; do + echo -n "$f: " && "./$f" --version + done smoke-test-macos-amd64: needs: ['build-macos'] @@ -268,12 +266,38 @@ jobs: mkdir ./amalgam tar -xvf ./amalgam-${{ inputs.version }}-darwin-amd64.tar.gz -C ./amalgam - # GitHub macos runner does not support AVX + # GitHub macOS runner does not support AVX - name: Smoke test run: | set -e - BIN=./amalgam/bin - echo -n "amalgam-mt-noavx: " && $BIN/amalgam-mt-noavx --version + cd ./amalgam/bin + for f in *noavx*; do + echo -n "$f: " && "./$f" --version + done + + # Turned off until GitHub runners support arm64 macOS + smoke-test-macos-arm64: + if: false + needs: ['build-macos'] + runs-on: macos-latest + steps: + - name: Download Artifact + uses: actions/download-artifact@v3 + with: + name: amalgam-${{ inputs.version }}-darwin-amd64 + + - name: Extract Amalgam + run: | + mkdir ./amalgam + tar -xvf ./amalgam-${{ inputs.version }}-darwin-arm64.tar.gz -C ./amalgam + + - name: Smoke test + run: | + set -e + cd ./amalgam/bin + for f in *; do + echo -n "$f: " && "./$f" --version + done smoke-test-windows-amd64: needs: ['build-windows'] @@ -292,9 +316,7 @@ jobs: - name: Smoke test run: | set -e - BIN=./amalgam/bin - echo -n "amalgam: " && $BIN/amalgam --version - echo -n "amalgam-mt: " && $BIN/amalgam-mt --version - echo -n "amalgam-mt-noavx: " && $BIN/amalgam-mt-noavx --version - echo -n "amalgam-st: " && $BIN/amalgam-st --version - echo -n "amalgam-omp: " && $BIN/amalgam-omp --version + cd ./amalgam/bin + for f in *; do + echo -n "$f: " && "./$f" --version + done diff --git a/CMakeLists.txt b/CMakeLists.txt index d3c7b204..e6f41395 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -280,7 +280,6 @@ endif() # Additional artifacts/test/etc # -include(create_no_suffix_artifacts) include(create_tests) include(create_package) include(create_static_targets) diff --git a/README.md b/README.md index b878b524..19b54ba1 100644 --- a/README.md +++ b/README.md @@ -73,7 +73,7 @@ Pre-built binaries are provided for specific target systems. They are as statica An interpreter application and shared library (dll/so/dylib) are built for each release. A versioned tarball is created for each target platform in the build matrix: -| Platform | Variants 1,2 | Automated Testing | Notes | +| Platform | Variants 1 | Automated Testing | Notes | |------------------------------|-------------------------------|:------------------:|-------| | Windows amd64 | MT, ST, OMP, MT-NoAVX | :heavy_check_mark: | | | Linux amd64 | MT, ST, OMP, MT-NoAVX, ST-PGC | :heavy_check_mark: | ST-PGC is for testing only, not packaged for release | @@ -107,8 +107,6 @@ An interpreter application and shared library (dll/so/dylib) are built for each * Binary postfix: '-st-pgc' * Interpreter does not use any threads and performs garbage collection at every operation * Very slow by nature, intended only be used for verification during testing or debugging -* 2 Most platforms create a bare binary with no postfix - * These are just clones of their respective MT binary and can be used for better symlinking, cleaner library linking, and simpler CLI usage. #### Build Tools diff --git a/build/cmake/create_no_suffix_artifacts.cmake b/build/cmake/create_no_suffix_artifacts.cmake deleted file mode 100644 index ec83b1ca..00000000 --- a/build/cmake/create_no_suffix_artifacts.cmake +++ /dev/null @@ -1,46 +0,0 @@ -# -# No suffix default targets -# - -# Don't create defaut targets for WASM -if(NOT IS_WASM) - # No suffix app target: - set(NO_SUFFIX_APP_TARGET "${PROJECT_NAME}-mt-app") - if(IS_ARM64_8A) - # No mt target on arm64 8-a so default is based off st. - set(NO_SUFFIX_APP_TARGET "${PROJECT_NAME}-st-app") - endif() - set(NO_SUFFIX_APP_NAME "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}${CMAKE_EXECUTABLE_SUFFIX}") - add_custom_target("create-no-suffix-app" ALL - COMMENT "Creating default named app" - COMMAND ${CMAKE_COMMAND} -E copy_if_different "$" "${NO_SUFFIX_APP_NAME}" - BYPRODUCTS ${NO_SUFFIX_APP_NAME} - ) - set_target_properties("create-no-suffix-app" PROPERTIES FOLDER "OtherBuildTargets") - install(FILES ${NO_SUFFIX_APP_NAME} DESTINATION bin PERMISSIONS ${DEFAULT_INSTALL_PERMISSIONS}) - - # No suffix sharedlib target: - set(NO_SUFFIX_LIB_TARGET "${PROJECT_NAME}-mt-sharedlib") - if(IS_ARM64_8A) - # No mt target on arm64 8-a so default is based off st. - set(NO_SUFFIX_LIB_TARGET "${PROJECT_NAME}-st-sharedlib") - endif() - set(NO_SUFFIX_LIB_NAME "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}${PROJECT_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}") - add_custom_target("create-no-suffix-sharedlib" ALL - COMMENT "Creating default named lib" - COMMAND ${CMAKE_COMMAND} -E copy_if_different "$" "${NO_SUFFIX_LIB_NAME}" - BYPRODUCTS ${NO_SUFFIX_LIB_NAME} - ) - set_target_properties("create-no-suffix-sharedlib" PROPERTIES FOLDER "OtherBuildTargets") - install(FILES ${NO_SUFFIX_LIB_NAME} DESTINATION lib PERMISSIONS ${DEFAULT_INSTALL_PERMISSIONS}) - if(IS_WINDOWS) - set(NO_SUFFIX_LINKER_LIB_NAME "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}amalgam${CMAKE_STATIC_LIBRARY_SUFFIX}") - add_custom_target("create-no-suffix-linkinglib" ALL - COMMENT "Creating default named linking lib" - COMMAND ${CMAKE_COMMAND} -E copy_if_different "$" "${NO_SUFFIX_LINKER_LIB_NAME}" - BYPRODUCTS ${NO_SUFFIX_LINKER_LIB_NAME} - ) - set_target_properties("create-no-suffix-linkinglib" PROPERTIES FOLDER "OtherBuildTargets") - install(FILES ${NO_SUFFIX_LINKER_LIB_NAME} DESTINATION lib PERMISSIONS ${DEFAULT_INSTALL_PERMISSIONS}) - endif() -endif() diff --git a/build/cmake/create_static_targets.cmake b/build/cmake/create_static_targets.cmake index b78a6415..fc6bdeb8 100644 --- a/build/cmake/create_static_targets.cmake +++ b/build/cmake/create_static_targets.cmake @@ -3,7 +3,7 @@ # # Build files: -file(GLOB_RECURSE CONFIG_FILES "build/*") +file(GLOB_RECURSE CONFIG_FILES ".github/*" "build/*") list(APPEND CONFIG_FILES .gitignore CMakeLists.txt