Skip to content

Commit

Permalink
add AIEBU_PYHON flag to enable python build/test (#70)
Browse files Browse the repository at this point in the history
* add AIEBU_PYHON flag to enable python build/test

Signed-off-by: HimanshuChoudhary-Xilinx <Himanshu.Choudhary@amd.com>

* fix

Signed-off-by: HimanshuChoudhary-Xilinx <Himanshu.Choudhary@amd.com>

---------

Signed-off-by: HimanshuChoudhary-Xilinx <Himanshu.Choudhary@amd.com>
  • Loading branch information
HimanshuChoudhary-Xilinx authored Feb 27, 2025
1 parent 305562d commit a6af414
Show file tree
Hide file tree
Showing 6 changed files with 60 additions and 42 deletions.
6 changes: 3 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ jobs:
python -m pip install --upgrade pip
pip install pyyaml jinja2 Markdown pylint colorama gitPython wrapt
cmake -B ${{github.workspace}}/build/Release \
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_BUILD_TYPE=Release -DAIEBU_PYTHON=ON
- name: Save Python Path for ise with CMake
if: runner.os == 'Windows'
Expand All @@ -69,7 +69,8 @@ jobs:
cmake -B ${{github.workspace}}/build/Release `
-DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake `
-DCMAKE_BUILD_TYPE=Release `
-DPython3_EXECUTABLE=${{ env.PYTHON_EXECUTABLE }}
-DPython3_EXECUTABLE=${{ env.PYTHON_EXECUTABLE }} `
-DAIEBU_PYTHON=ON
- name: Build
run: |
Expand Down Expand Up @@ -109,4 +110,3 @@ jobs:
name: aiebu_release_windows
path: ${{github.workspace}}/build/Release/AIEBU-*-win64.zip
retention-days: 7

12 changes: 9 additions & 3 deletions build/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,10 @@ here=$PWD
function compile {
local config=$1
local build=$2
local cmakeflags="-DCMAKE_BUILD_TYPE=$config"
local cmakeflags="-DCMAKE_BUILD_TYPE=$config -DCMAKE_INSTALL_PREFIX=$PWD/$config"
if [[ $build == "python" ]]; then
cmakeflags="$cmakeflags -DAIEBU_PYTHON=ON"
fi

mkdir -p $config
cd $config
Expand All @@ -38,13 +41,16 @@ function compile {
}

build=""
usage() { echo "Usage: $0 [-r]" 1>&2; exit 1; }
usage() { echo "Usage: $0 [-rp]" 1>&2; exit 1; }

while getopts ":rh" o; do
while getopts ":rph" o; do
case "${o}" in
r)
build="aie2"
;;
p)
build="python"
;;
h)
usage
;;
Expand Down
17 changes: 12 additions & 5 deletions build/build22.bat
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,9 @@ IF DEFINED MSVC_PARALLEL_JOBS ( SET LOCAL_MSVC_PARALLEL_JOBS=%MSVC_PARALLEL_JOBS
if [%1] == [-r] (
set AIEBU_BUILD="aie2"
) else (
if [%1] == [-p] (
set AIEBU_BUILD="python"
) else (
if [%1] == [-pkg] (
set CREATE_PACKAGE=1
) else (
Expand Down Expand Up @@ -89,6 +92,7 @@ ECHO [-dbg] - Creates a debug build
ECHO [-opt] - Creates a release build
ECHO [-package] - Packages the release build to a MSI archive.
ECHO [-r] - build only aie2
ECHO [-p] - build python assembler also
ECHO Note: Depends on the WIX application.
GOTO:EOF

Expand Down Expand Up @@ -116,16 +120,15 @@ ECHO CMAKEFLAGS=%CMAKEFLAGS%
MKDIR %BUILDDIR%\WDebug
PUSHD %BUILDDIR%\WDebug

if [%AIEBU_BUILD%] == ["python"] (
set CMAKEFLAGS=%CMAKEFLAGS% -DAIEBU_PYTHON=ON
)

if [%NOCMAKE%] == [0] (
cmake -G "Visual Studio 17 2022" %CMAKEFLAGS% ../../
IF errorlevel 1 (POPD & exit /B %errorlevel%)
)

if not [%AIEBU_BUILD%] == ["aie2"] (
cmake --build . --verbose --config Debug --target cpp-assembler-stubs
IF errorlevel 1 (POPD & exit /B %errorlevel%)
)

cmake --build . --verbose --config Debug
IF errorlevel 1 (POPD & exit /B %errorlevel%)

Expand All @@ -147,6 +150,10 @@ ECHO CMAKEFLAGS=%CMAKEFLAGS%
MKDIR %BUILDDIR%\WRelease
PUSHD %BUILDDIR%\WRelease

if [%AIEBU_BUILD%] == ["python"] (
set CMAKEFLAGS=%CMAKEFLAGS% -DAIEBU_PYTHON=ON
)

if [%NOCMAKE%] == [0] (
cmake -G "Visual Studio 17 2022" %CMAKEFLAGS% ../../
IF errorlevel 1 (POPD & exit /B %errorlevel%)
Expand Down
8 changes: 5 additions & 3 deletions cmake/linux.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@
# Copyright (C) 2025 Advanced Micro Devices, Inc. All rights reserved.
find_package(PkgConfig REQUIRED)

pkg_check_modules(LIBELF REQUIRED libelf)
message("-- Libelf version: ${LIBELF_VERSION}")
if (AIEBU_PYTHON STREQUAL "ON")
pkg_check_modules(LIBELF REQUIRED libelf)
message("-- Libelf version: ${LIBELF_VERSION}")

find_program (READELF eu-readelf REQUIRED)
find_program (READELF eu-readelf REQUIRED)
endif()
add_compile_options(-Wall -Wextra -Werror)
4 changes: 3 additions & 1 deletion cmake/settings.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -103,5 +103,7 @@ endif()
include(cmake/utils.cmake)
include(cmake/boost.cmake)
include(cmake/clang-tidy.cmake)
include(cmake/python.cmake)
if (AIEBU_PYTHON STREQUAL "ON")
include(cmake/python.cmake)
endif()
include(cmake/test.cmake)
55 changes: 28 additions & 27 deletions test/aie2ps-ctrlcode/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -20,43 +20,44 @@ foreach(tfile ${tfiles})
set(samplegold "${sample}.gold")
set(sampledisasm "${sample}.dis.asm")

add_test(NAME ${sample}
COMMAND "${AIEBU_SOURCE_DIR}/src/python/aiebu/control_asm_disasm.py" --disable_dump_map "${tfile}" -o "${sampleelf}"
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})

add_test(NAME ${sample}_cpp
COMMAND "${AIEBU_BINARY_DIR}/opt/xilinx/aiebu/bin/aiebu-asm" -t aie2ps -c "${tfile}" -o "${samplecppelf}"
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})

add_test(NAME ${sample}_elftolegacy
COMMAND "${AIEBU_SOURCE_DIR}/src/python/aiebu/elf_to_legacy.py" "-o" "${sampleouttxt}" "-i" "${sampleelf}"
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
if (AIEBU_PYTHON STREQUAL "ON")
add_test(NAME ${sample}
COMMAND "${AIEBU_SOURCE_DIR}/src/python/aiebu/control_asm_disasm.py" --disable_dump_map "${tfile}" -o "${sampleelf}"
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})

add_test(NAME ${sample}_elftolegacy_cpp
COMMAND "${AIEBU_SOURCE_DIR}/src/python/aiebu/elf_to_legacy.py" "-o" "${samplecppouttxt}" "-i" "${samplecppelf}"
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
add_test(NAME ${sample}_elftolegacy
COMMAND "${AIEBU_SOURCE_DIR}/src/python/aiebu/elf_to_legacy.py" "-o" "${sampleouttxt}" "-i" "${sampleelf}"
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})

add_test(NAME "${sample}_compare"
COMMAND ${CMAKE_COMMAND} -E compare_files "${sampleouttxt}" "${CMAKE_CURRENT_SOURCE_DIR}/${sampletxt}"
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
add_test(NAME ${sample}_elftolegacy_cpp
COMMAND "${AIEBU_SOURCE_DIR}/src/python/aiebu/elf_to_legacy.py" "-o" "${samplecppouttxt}" "-i" "${samplecppelf}"
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})

add_test(NAME "${sample}_compare_cpp"
COMMAND ${CMAKE_COMMAND} -E compare_files "${samplecppouttxt}" "${CMAKE_CURRENT_SOURCE_DIR}/${sampletxt}"
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
add_test(NAME "${sample}_compare"
COMMAND ${CMAKE_COMMAND} -E compare_files "${sampleouttxt}" "${CMAKE_CURRENT_SOURCE_DIR}/${sampletxt}"
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})

add_test(NAME "${sample}_readelf"
COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/run-readelf.sh" "${sampleelf}" "${sampleelftext}"
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
add_test(NAME "${sample}_compare_cpp"
COMMAND ${CMAKE_COMMAND} -E compare_files "${samplecppouttxt}" "${CMAKE_CURRENT_SOURCE_DIR}/${sampletxt}"
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})

add_test(NAME "${sample}_compareelf"
COMMAND ${CMAKE_COMMAND} -E compare_files "${sampleelftext}" "${CMAKE_CURRENT_SOURCE_DIR}/${samplegold}"
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
add_test(NAME "${sample}_readelf"
COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/run-readelf.sh" "${sampleelf}" "${sampleelftext}"
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})

add_test(NAME "${sample}_disassemble"
COMMAND "${AIEBU_SOURCE_DIR}/src/python/aiebu/control_asm_disasm.py" "-d" "${sampleelf}" "-o" "${sampledisasm}"
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
add_test(NAME "${sample}_compareelf"
COMMAND ${CMAKE_COMMAND} -E compare_files "${sampleelftext}" "${CMAKE_CURRENT_SOURCE_DIR}/${samplegold}"
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})

set_tests_properties(${sample} "${sample}_elftolegacy" "${sample}_disassemble" PROPERTIES ENVIRONMENT
"PYTHONPATH=${AIEBU_SOURCE_DIR}")
add_test(NAME "${sample}_disassemble"
COMMAND "${AIEBU_SOURCE_DIR}/src/python/aiebu/control_asm_disasm.py" "-d" "${sampleelf}" "-o" "${sampledisasm}"
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})

set_tests_properties(${sample} "${sample}_elftolegacy" "${sample}_disassemble" PROPERTIES ENVIRONMENT
"PYTHONPATH=${AIEBU_SOURCE_DIR}")
endif()
endforeach()

0 comments on commit a6af414

Please sign in to comment.