CMakeLists: when gzip is available spiOverJtag .bit and .rbf are compressed before installing
This commit is contained in:
parent
fab4d02128
commit
cf61e715cb
|
|
@ -52,6 +52,7 @@ jobs:
|
||||||
sudo apt update -qq
|
sudo apt update -qq
|
||||||
sudo apt install -y \
|
sudo apt install -y \
|
||||||
cmake \
|
cmake \
|
||||||
|
gzip \
|
||||||
libftdi1-2 \
|
libftdi1-2 \
|
||||||
libftdi1-dev \
|
libftdi1-dev \
|
||||||
libhidapi-hidraw0 \
|
libhidapi-hidraw0 \
|
||||||
|
|
|
||||||
|
|
@ -284,12 +284,43 @@ math(EXPR FTDI_VAL "${LIBFTDI_VERSION_MAJOR} * 100 + ${LIBFTDI_VERSION_MINOR}")
|
||||||
add_definitions(-DFTDI_VERSION=${FTDI_VAL})
|
add_definitions(-DFTDI_VERSION=${FTDI_VAL})
|
||||||
|
|
||||||
install(TARGETS openFPGALoader DESTINATION bin)
|
install(TARGETS openFPGALoader DESTINATION bin)
|
||||||
file(GLOB BITS_FILES spiOverJtag/spiOverJtag_*.bit)
|
|
||||||
file(GLOB RBF_FILES spiOverJtag/spiOverJtag_*.rbf)
|
|
||||||
file(GLOB GZ_FILES spiOverJtag/spiOverJtag_*.*.gz)
|
file(GLOB GZ_FILES spiOverJtag/spiOverJtag_*.*.gz)
|
||||||
|
|
||||||
|
# Compress rbf and bit files present into repository
|
||||||
|
# TODO: test compat with Windows and MacOS
|
||||||
|
list(INSERT CMAKE_MODULE_PATH 0 ${PROJECT_SOURCE_DIR}/cmake/Modules)
|
||||||
|
include(FindGZIP)
|
||||||
|
|
||||||
|
if (${CMAKE_SYSTEM_NAME} MATCHES "Linux" AND GZIP_PRG)
|
||||||
|
set(SPIOVERJTAG_DIR "${CMAKE_CURRENT_SOURCE_DIR}/spiOverJtag")
|
||||||
|
file(GLOB BITS_FILES RELATIVE ${SPIOVERJTAG_DIR} spiOverJtag/spiOverJtag_*.bit)
|
||||||
|
file(GLOB RBF_FILES RELATIVE ${SPIOVERJTAG_DIR} spiOverJtag/spiOverJtag_*.rbf)
|
||||||
|
|
||||||
|
STRING(REGEX REPLACE ".bit" ".bit.gz" BIT_GZ_FILES "${BITS_FILES}")
|
||||||
|
STRING(REGEX REPLACE ".rbf" ".rbf.gz" RBF_GZ_FILES "${RBF_FILES}")
|
||||||
|
|
||||||
|
FOREACH(bit ${BITS_FILES} ${RBF_FILES})
|
||||||
|
ADD_CUSTOM_COMMAND(OUTPUT ${bit}.gz
|
||||||
|
COMMAND ${GZIP_PRG} -9 -c ${bit} > ${CMAKE_CURRENT_BINARY_DIR}/${bit}.gz
|
||||||
|
DEPENDS ${SPIOVERJTAG_DIR}/${bit}
|
||||||
|
WORKING_DIRECTORY ${SPIOVERJTAG_DIR}
|
||||||
|
COMMENT "Building ${bit}.gz")
|
||||||
|
list(APPEND GZ_FILES ${CMAKE_CURRENT_BINARY_DIR}/${bit}.gz)
|
||||||
|
ENDFOREACH(bit)
|
||||||
|
|
||||||
|
ADD_CUSTOM_TARGET(bit ALL DEPENDS ${BIT_GZ_FILES} ${RBF_GZ_FILES})
|
||||||
|
else()
|
||||||
|
file(GLOB BITS_FILES spiOverJtag/spiOverJtag_*.bit)
|
||||||
|
file(GLOB RBF_FILES spiOverJtag/spiOverJtag_*.rbf)
|
||||||
|
install(FILES
|
||||||
|
${BITS_FILES}
|
||||||
|
${RBF_FILES}
|
||||||
|
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/openFPGALoader
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
install(FILES
|
install(FILES
|
||||||
${BITS_FILES}
|
|
||||||
${RBF_FILES}
|
|
||||||
${GZ_FILES}
|
${GZ_FILES}
|
||||||
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/openFPGALoader
|
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/openFPGALoader
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
FIND_PROGRAM(GZIP_PRG
|
||||||
|
NAMES gzip
|
||||||
|
PATHS /bin
|
||||||
|
/usr/bin
|
||||||
|
/usr/local/bin
|
||||||
|
${CYGWIN_INSTALL_PATH}/bin
|
||||||
|
${MSYS_INSTALL_PATH}/usr/bin
|
||||||
|
)
|
||||||
|
|
||||||
|
IF(NOT GZIP_PRG)
|
||||||
|
message("Unable to find 'gzip' program")
|
||||||
|
ENDIF(NOT GZIP_PRG)
|
||||||
|
|
||||||
|
|
@ -19,7 +19,7 @@ Alternatively, you could build from source. First: install required libraries:
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
sudo pacman -S git cmake make gcc pkgconf libftdi libusb zlib hidapi
|
sudo pacman -S git cmake make gcc pkgconf libftdi libusb zlib hidapi gzip
|
||||||
|
|
||||||
Build step is similar as Debian
|
Build step is similar as Debian
|
||||||
|
|
||||||
|
|
@ -42,6 +42,7 @@ This application uses ``libftdi1``, so this library must be installed (and, depe
|
||||||
|
|
||||||
sudo apt install \
|
sudo apt install \
|
||||||
git \
|
git \
|
||||||
|
gzip \
|
||||||
libftdi1-2 \
|
libftdi1-2 \
|
||||||
libftdi1-dev \
|
libftdi1-dev \
|
||||||
libhidapi-hidraw0 \
|
libhidapi-hidraw0 \
|
||||||
|
|
@ -156,7 +157,7 @@ Alternatively, if you want to build it by hand:
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
brew install --only-dependencies openfpgaloader
|
brew install --only-dependencies openfpgaloader
|
||||||
brew install cmake pkg-config zlib
|
brew install cmake pkg-config zlib gzip
|
||||||
git clone https://github.com/trabucayre/openFPGALoader
|
git clone https://github.com/trabucayre/openFPGALoader
|
||||||
cd openFPGALoader
|
cd openFPGALoader
|
||||||
mkdir build
|
mkdir build
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@ depends=(
|
||||||
makedepends=(
|
makedepends=(
|
||||||
"${MINGW_PACKAGE_PREFIX}-cc"
|
"${MINGW_PACKAGE_PREFIX}-cc"
|
||||||
"${MINGW_PACKAGE_PREFIX}-cmake"
|
"${MINGW_PACKAGE_PREFIX}-cmake"
|
||||||
|
"${MINGW_PACKAGE_PREFIX}-gzip"
|
||||||
)
|
)
|
||||||
|
|
||||||
source=()
|
source=()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue