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