Skip to content

Commit

Permalink
Merge pull request #72 from fourdollars/dfsg
Browse files Browse the repository at this point in the history
Dfsg
  • Loading branch information
hao-yao authored Aug 31, 2023
2 parents 113ca90 + 8b0eb49 commit 9a8bef2
Show file tree
Hide file tree
Showing 12 changed files with 171 additions and 128 deletions.
80 changes: 47 additions & 33 deletions .github/workflows/build-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,57 +2,71 @@ name: Build tests

on:
push:
branches:
- main

pull_request:

jobs:
build:
strategy:
matrix:
version: [ipu6epmtl, ipu6ep, ipu6]
version: [ipu6epmtl, ipu6ep, ipu6, hal]
os: ["ubuntu:22.04", "ubuntu:20.04"]
runs-on: ubuntu-latest
container: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- name: Build test for ${{ matrix.version }} on ${{ matrix.os }}
timeout-minutes: 10
with:
repository: intel/ipu6-camera-bins
ref: dfsg
path: bins

- name: Install from intel/ipu6-camera-bins
run: |
cd "${GITHUB_WORKSPACE}/bins"
cat README.md | \
awk 'BEGIN { \
FS="/"; \
} \
/^```/ { \
getline; \
if ($1 == "# Runtime files") { \
while ($1 != "```") { \
print $0; \
getline; \
} \
} \
}' | \
sed 's,ipu6-camera-bins/,./,' | \
sh -x
- uses: actions/checkout@v3
with:
path: hal

- name: Install prerequisite packages
run: |
case "${{ matrix.version }}" in
(ipu6)
PLATFORM="ipu_tgl"
;;
(ipu6ep)
PLATFORM="ipu_adl"
;;
(ipu6epmtl)
PLATFORM="ipu_mtl"
;;
(*)
echo "Not support for ${IPU_VER} yet."
exit 1
;;
esac
echo 'APT::Get::Always-Include-Phased-Updates True;' | tee -a /etc/apt/apt.conf
echo 'Acquire::http::User-Agent-Non-Interactive "true";' | tee -a /etc/apt/apt.conf
apt-get update -q
export TZ=Asia/Shanghai
echo "" | apt-get install -qy tzdata
echo "" | apt-get install git build-essential cmake libexpat-dev automake libtool libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libunwind-dev --yes
git clone https://github.com/intel/ipu6-camera-bins -b main --depth 1
cp -rv ipu6-camera-bins/include/"${PLATFORM}" /usr/include/
cp -rv ipu6-camera-bins/lib/"${PLATFORM}" /usr/lib/
rm -fr /usr/lib/"${PLATFORM}"/pkgconfig
cp -rv ipu6-camera-bins/lib/"${PLATFORM}"/pkgconfig/* /usr/lib/pkgconfig/
rm -fr ipu6-camera-bins
mkdir -p ./build/out/install/usr && cd ./build/
cmake -DCMAKE_BUILD_TYPE=Release \
-DIPU_VER="${{ matrix.version }}" \
-DENABLE_VIRTUAL_IPU_PIPE=OFF \
-DUSE_PG_LITE_PIPE=ON \
-DUSE_STATIC_GRAPH=OFF \
-DCMAKE_INSTALL_PREFIX=/usr ..
- name: Build test for ${{ matrix.version }} on ${{ matrix.os }}
timeout-minutes: 10
run: |
cd "${GITHUB_WORKSPACE}/hal"
mkdir build && cd build
if [ "${{ matrix.version }}" = "hal" ]; then
cmake -DCMAKE_BUILD_TYPE=Release \
../src/hal/hal_adaptor;
else
cmake -DCMAKE_BUILD_TYPE=Release \
-DIPU_VER="${{ matrix.version }}" \
-DUSE_PG_LITE_PIPE=ON \
-DUSE_HAL_ADAPTOR=ON \
..
fi
make
make install
72 changes: 47 additions & 25 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -251,16 +251,21 @@ if (${CMAKE_VERSION} VERSION_LESS 3.11)
else()
add_library(camhal SHARED $<TARGET_OBJECTS:camhal_static>)
endif()
if(NOT USE_HAL_ADAPTOR)
set_target_properties(camhal PROPERTIES SOVERSION 0)
set_target_properties(camhal PROPERTIES VERSION "0.0.0")
endif()

add_library(camhal_static STATIC ${LIBCAMHAL_SRCS})

if (NOT CAL_BUILD AND (NOT "${CMAKE_INSTALL_SUB_PATH}" STREQUAL ""))
set(CMAKE_SKIP_RPATH TRUE)
set_target_properties(camhal PROPERTIES LINK_FLAGS
"-Wl,-rpath,/usr/lib/${CMAKE_INSTALL_SUB_PATH}")
add_compile_definitions(SUB_CONFIG_PATH="${CMAKE_INSTALL_SUB_PATH}")
if(NOT DEFINED IPU_VER)
set(CAMHAL_NAME_SUFFIX "-ipu4")
elseif(${IPU_VER} STREQUAL ipu6)
set(CAMHAL_NAME_SUFFIX "")
else()
set(CAMHAL_NAME_SUFFIX "-${IPU_VER}")
endif()
set_target_properties(camhal_static PROPERTIES OUTPUT_NAME "camhal")
set_target_properties(camhal_static PROPERTIES OUTPUT_NAME camhal${CAMHAL_NAME_SUFFIX})

#---------------------------- Link settings ----------------------------
target_link_libraries(camhal ${CMAKE_DL_LIBS})
Expand Down Expand Up @@ -382,37 +387,54 @@ endif() #ENABLE_SANDBOXING
#--------------------------- Install settings ---------------------------
if (NOT CAL_BUILD)
# Install headers
if ("${CMAKE_INSTALL_SUB_PATH}" STREQUAL "")
install(DIRECTORY include/ DESTINATION include/libcamhal)
if (SUPPORT_LIVE_TUNING)
install(FILES modules/livetune/LiveTuning.h DESTINATION include/libcamhal/api)
endif() #SUPPORT_LIVE_TUNING
endif()
install(DIRECTORY include/ DESTINATION include/libcamhal)
if (SUPPORT_LIVE_TUNING)
install(FILES modules/livetune/LiveTuning.h DESTINATION include/libcamhal/api)
endif() #SUPPORT_LIVE_TUNING

# Install configure files, by default ipu4 is used
if(("${IPU_VER}" STREQUAL "") OR ("${IPU_VER}" STREQUAL "ipu4"))
message("Install camera configure files for ipu4")
install(DIRECTORY config/linux/ipu4/ DESTINATION share/defaults/etc/camera/${CMAKE_INSTALL_SUB_PATH})
if("${IPU_VER}" STREQUAL "")
set(CAMHAL_CFG_VARIANT ipu4)
else()
message("Install camera configure files for" ${IPU_VER})
install(DIRECTORY config/linux/${IPU_VER}/ DESTINATION share/defaults/etc/camera/${CMAKE_INSTALL_SUB_PATH})
set(CAMHAL_CFG_VARIANT ${IPU_VER})
endif()
message("Install camera configure files for ${CAMHAL_CFG_VARIANT}")
install(DIRECTORY config/linux/${CAMHAL_CFG_VARIANT}/ DESTINATION share/defaults/etc/camera/${CAMHAL_CFG_VARIANT})
add_definitions("-DCAMERA_DEFAULT_CFG_PATH=\"${CMAKE_INSTALL_PREFIX}/share/defaults/etc/camera/${CAMHAL_CFG_VARIANT}/\"")

# Install libraries
set(CAMHAL_TARGETS camhal)
if (USE_HAL_ADAPTOR)
set(CAMHAL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/libcamhal/plugins)
else()
set(CAMHAL_DESTINATION ${CMAKE_INSTALL_LIBDIR})
set(CAMHAL_TARGETS "${CAMHAL_TARGETS} camhal_static")
endif()
if (${CMAKE_VERSION} VERSION_LESS 3.11)
install(TARGETS camhal camhal_static
LIBRARY DESTINATION lib/${CMAKE_INSTALL_SUB_PATH}
ARCHIVE DESTINATION lib/${CMAKE_INSTALL_SUB_PATH}
)
install(TARGETS ${CAMHAL_TARGETS}
LIBRARY DESTINATION ${CAMHAL_DESTINATION}
ARCHIVE DESTINATION ${CAMHAL_DESTINATION})
else()
install(TARGETS ${CAMHAL_TARGETS} DESTINATION ${CAMHAL_DESTINATION})
endif()
if (USE_HAL_ADAPTOR)
set_target_properties(camhal PROPERTIES PREFIX "")
if("${IPU_VER}" STREQUAL "")
set_target_properties(camhal PROPERTIES OUTPUT_NAME ipu4)
else()
set_target_properties(camhal PROPERTIES OUTPUT_NAME ${IPU_VER})
endif()
else()
install(TARGETS camhal camhal_static DESTINATION lib/${CMAKE_INSTALL_SUB_PATH})
set_target_properties(camhal PROPERTIES OUTPUT_NAME camhal${CAMHAL_NAME_SUFFIX})
endif()

if(NOT USE_HAL_ADAPTOR)
# Install package config file
configure_file(${PROJECT_SOURCE_DIR}/cmake/libcamhal.pc.cmakein
${PROJECT_SOURCE_DIR}/libcamhal.pc @ONLY)
install(FILES libcamhal.pc
DESTINATION ${CMAKE_INSTALL_LIBDIR}/${CMAKE_INSTALL_SUB_PATH}/pkgconfig)
${PROJECT_SOURCE_DIR}/libcamhal${CAMHAL_NAME_SUFFIX}.pc @ONLY)
install(FILES libcamhal${CAMHAL_NAME_SUFFIX}.pc
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
endif()

endif() #NOT CAL_BUILD

Expand Down
25 changes: 4 additions & 21 deletions build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -65,11 +65,6 @@ function print_helper() {
echo
}

standardize_pkg_config_path(){
if [[ ! -f $1 ]]; then echo "file $1 not exsist."; exit 0; fi
sed -i '1c prefix=\/usr' $*
}

function build_target() {
rm -fr build && mkdir -p build && cd build

Expand All @@ -86,24 +81,20 @@ function build_target() {
exit -1
fi

# indicate the install folder of binary package
# export PKG_CONFIG_PATH=~/work/linux/camera_submit/camera/out/install/lib/$target/pkgconfig:$PKG_CONFIG_PATH
export PKG_CONFIG_PATH=/usr/lib/$target/pkgconfig:$PKG_CONFIG_PATH

command cmake -DCMAKE_BUILD_TYPE=Release \
-DIPU_VER=$IPU_VERSION \
-DBUILD_CAMHAL_TESTS=OFF \
-DUSE_PG_LITE_PIPE=ON \
-DCMAKE_INSTALL_PREFIX=$INSTALL_DIR/install \
-DCMAKE_INSTALL_SUB_PATH=$target ..
-DUSE_HAL_ADAPTOR=ON \
..

# make and install
make -j`nproc`
check_result $? "$FUNCNAME: $target"

make install
check_result $? "$FUNCNAME: $target"
standardize_pkg_config_path ${INSTALL_DIR}/install/lib/${target}/pkgconfig/libcamhal.pc
cd ..
}

Expand All @@ -128,24 +119,18 @@ function build_hal_adaptor() {

make install
check_result $? $FUNCNAME
standardize_pkg_config_path ${INSTALL_DIR}/install/lib/pkgconfig/hal_adaptor.pc
}

function build_icamerasrc() {
cd $SOURCE_DIR/icamerasrc/

export CAMHAL_LIBS="-L$INSTALL_DIR/install/lib -lhal_adaptor"
export CAMHAL_CFLAGS="-I$INSTALL_DIR/install/include/hal_adaptor \
-I$INSTALL_DIR/install/include/hal_adaptor/api \
-I$INSTALL_DIR/install/include/hal_adaptor/utils \
-I$INSTALL_DIR/install/include/hal_adaptor/linux"
export CHROME_SLIM_CAMHAL=ON
export PKG_CONFIG_PATH="/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib/pkgconfig:${PKG_CONFIG_PATH}"
export PKG_CONFIG_PATH="${INSTALL_DIR}/install/lib/pkgconfig"

rm -fr config.h.in autom4te.cache/ aclocal.m4 *-libtool config.guess compile \
config.sub configure depcomp install-sh ltmain.sh m4
autoreconf --install
CFLAGS="-O2" CXXFLAGS="-O2" ./configure --with-haladaptor=yes ${CONFIGURE_FLAGS} \
CFLAGS="-O2" CXXFLAGS="-O2" ./configure ${CONFIGURE_FLAGS} \
--prefix=$INSTALL_DIR/install DEFAULT_CAMERA=0
check_result $? $FUNCNAME

Expand All @@ -155,8 +140,6 @@ function build_icamerasrc() {

make install
check_result $? $FUNCNAME
find $INSTALL_DIR/install/ -name "*.la" -exec rm -f "{}" \;
standardize_pkg_config_path ${INSTALL_DIR}/install/lib/pkgconfig/libgsticamerasrc.pc
}

function main () {
Expand Down
44 changes: 26 additions & 18 deletions cmake/FindIA_IMAGING.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -22,37 +22,45 @@ endif()
# Get include and lib paths for IA_IMAGING from pkgconfig
include(FindPackageHandleStandardArgs)

if(NOT DEFINED IPU_VER)
set(IA_IMAGING_PKG_SUFFIX "-ipu4")
elseif(${IPU_VER} STREQUAL ipu6)
set(IA_IMAGING_PKG_SUFFIX "")
else()
set(IA_IMAGING_PKG_SUFFIX "-${IPU_VER}")
endif()

find_package(PkgConfig)
pkg_check_modules(IA_IMAGING ia_imaging)
pkg_check_modules(IA_IMAGING ia_imaging${IA_IMAGING_PKG_SUFFIX})
if(NOT IA_IMAGING_FOUND)
message(FATAL_ERROR "IA_IMAGING not found")
endif()

set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} ${IA_IMAGING_LIBRARY_DIRS})

# Libraries
find_library(IA_CCA_LIB ia_cca)
find_library(IA_AIQ_LIB ia_aiq)
find_library(IA_AIQB_PARSER_LIB ia_aiqb_parser)
find_library(IA_CMC_PARSER_LIB ia_cmc_parser)
find_library(IA_CCA_LIB ia_cca${IA_IMAGING_PKG_SUFFIX})
find_library(IA_AIQ_LIB ia_aiq${IA_IMAGING_PKG_SUFFIX})
find_library(IA_AIQB_PARSER_LIB ia_aiqb_parser${IA_IMAGING_PKG_SUFFIX})
find_library(IA_CMC_PARSER_LIB ia_cmc_parser${IA_IMAGING_PKG_SUFFIX})
if (NOT ENABLE_SANDBOXING)
find_library(IA_LARD_LIB ia_lard)
find_library(IA_LARD_LIB ia_lard${IA_IMAGING_PKG_SUFFIX})
endif() #ENABLE_SANDBOXING
find_library(IA_EXC_LIB ia_exc)
find_library(IA_MKN_LIB ia_mkn)
find_library(IA_EXC_LIB ia_exc${IA_IMAGING_PKG_SUFFIX})
find_library(IA_MKN_LIB ia_mkn${IA_IMAGING_PKG_SUFFIX})
# SENSOR_EMD_DECODER
find_library(IA_EMD_LIB ia_emd_decoder)
find_library(IA_EMD_LIB ia_emd_decoder${IA_IMAGING_PKG_SUFFIX})
# DOL_FEATURE_S
find_library(IA_BCOMP_LIB ia_bcomp)
find_library(IA_BCOMP_LIB ia_bcomp${IA_IMAGING_PKG_SUFFIX})
# DOL_FEATURE_E
find_library(IA_NVM_LIB ia_nvm)
find_library(IA_LOG_LIB ia_log)
find_library(IA_DVS_LIB ia_dvs)
find_library(IA_COORDINATE_LIB ia_coordinate)
find_library(IA_LTM_LIB ia_ltm)
find_library(IA_DVS_LIB ia_dvs)
find_library(IA_ISP_BXT_LIB ia_isp_bxt)
find_library(BXT_IA_PAL_LIB broxton_ia_pal)
find_library(IA_NVM_LIB ia_nvm${IA_IMAGING_PKG_SUFFIX})
find_library(IA_LOG_LIB ia_log${IA_IMAGING_PKG_SUFFIX})
find_library(IA_DVS_LIB ia_dvs${IA_IMAGING_PKG_SUFFIX})
find_library(IA_COORDINATE_LIB ia_coordinate${IA_IMAGING_PKG_SUFFIX})
find_library(IA_LTM_LIB ia_ltm${IA_IMAGING_PKG_SUFFIX})
find_library(IA_DVS_LIB ia_dvs${IA_IMAGING_PKG_SUFFIX})
find_library(IA_ISP_BXT_LIB ia_isp_bxt${IA_IMAGING_PKG_SUFFIX})
find_library(BXT_IA_PAL_LIB broxton_ia_pal${IA_IMAGING_PKG_SUFFIX})
if (USE_PG_LITE_PIPE)
find_library(P2P_LIB_NAME ia_p2p_${IPU_VER})
endif()
Expand Down
12 changes: 10 additions & 2 deletions cmake/FindLIBGCSS.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,24 @@
# Get include and lib paths for LIBGCSS from pkgconfig
include(FindPackageHandleStandardArgs)

if(NOT DEFINED IPU_VER)
set(LIBGCSS_PKG_SUFFIX "-ipu4")
elseif(${IPU_VER} STREQUAL ipu6)
set(LIBGCSS_PKG_SUFFIX "")
else()
set(LIBGCSS_PKG_SUFFIX "-${IPU_VER}")
endif()

find_package(PkgConfig)
pkg_check_modules(LIBGCSS libgcss)
pkg_check_modules(LIBGCSS libgcss${LIBGCSS_PKG_SUFFIX})
if(NOT LIBGCSS_FOUND)
message(FATAL_ERROR "LIBGCSS not found")
endif()

set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} ${LIBGCSS_LIBRARY_DIRS})

# Libraries
find_library(GCSS_LIB gcss)
find_library(GCSS_LIB gcss${LIBGCSS_PKG_SUFFIX})
set(LIBGCSS_LIBS ${GCSS_LIB})

# handle the QUIETLY and REQUIRED arguments and set EXPAT_FOUND to TRUE if
Expand Down
Loading

0 comments on commit 9a8bef2

Please sign in to comment.