Skip to content

Instantly share code, notes, and snippets.

@yunqu
Created May 1, 2019 17:12
Show Gist options
  • Save yunqu/3a3b061c9c254d2172497e022d6e0fcc to your computer and use it in GitHub Desktop.
Save yunqu/3a3b061c9c254d2172497e022d6e0fcc to your computer and use it in GitHub Desktop.
CMake for PYNQ package
PROJECT(PYNQ)
CMAKE_MINIMUM_REQUIRED(VERSION 3.0.0)
SET(PROJECT_DESCRIPTION "https://github.com/Xilinx/PYNQ")
SET(CMAKE_CXX_STANDARD 14)
SET(CMAKE_CXX_STANDARD_REQUIRED ON)
MESSAGE("-- Target system processor: ${CMAKE_SYSTEM_PROCESSOR}")
SET(PYNQ_VERSION_MAJOR 2)
SET(PYNQ_VERSION_MINOR 5)
SET(PYNQ_VERSION_STRING ${PYNQ_VERSION_MAJOR}.${PYNQ_VERSION_MINOR})
MESSAGE("-- PYNQ version: ${PYNQ_VERSION_STRING}")
# find dependencies
FIND_PACKAGE(Git REQUIRED)
FIND_PACKAGE(OpenCV REQUIRED)
FIND_PROGRAM(JUPYTER_NOTEBOOK jupyter-notebook)
IF(NOT JUPYTER_NOTEBOOK)
MESSAGE(FATAL_ERROR "Could not find jupyter-notebook.")
ELSE()
MESSAGE("-- Found jupyter-notebook")
ENDIF()
FIND_LIBRARY(LMSENSORS_LIBRARIES libsensors.so.4)
IF(NOT LMSENSORS_LIBRARIES)
MESSAGE(FATAL_ERROR "Could not find libsensors.so.4.")
ELSE()
MESSAGE("-- Found libsensors.so.4")
ENDIF()
# set environment
IF(CMAKE_PYNQ_JUPYTER_NOTEBOOKS)
SET(ENV{PYNQ_JUPYTER_NOTEBOOKS} ${CMAKE_PYNQ_JUPYTER_NOTEBOOKS})
ELSE()
SET(ENV{PYNQ_JUPYTER_NOTEBOOKS} '/home/xilinx/jupyter_notebooks')
ENDIF()
MESSAGE("-- Environment variable PYNQ_JUPYTER_NOTEBOOKS: $ENV{PYNQ_JUPYTER_NOTEBOOKS}")
IF(CMAKE_PYNQ_PYTHON)
SET(ENV{PYNQ_PYTHON} ${CMAKE_PYNQ_PYTHON})
ELSE()
SET(ENV{PYNQ_JUPYTER_NOTEBOOKS} 'python3.6')
ENDIF()
MESSAGE("-- Environment variable PYNQ_PYTHON: $ENV{PYNQ_PYTHON}")
# generate install rules for libcma
FUNCTION (generateInstallRulesLibcma)
IF(${CMAKE_SYSTEM_PROCESSOR} STREQUAL 'armv7l')
INSTALL(FILES "${CMAKE_CURRENT_SOURCE_DIR}/sdbuild/packages/libsds/libcma/libcma.so.32"
DESTINATION /usr/lib
RENAME libcma.so)
ELSEIF(${CMAKE_SYSTEM_PROCESSOR} STREQUAL 'aarch64')
INSTALL(FILES "${CMAKE_CURRENT_SOURCE_DIR}/sdbuild/packages/libsds/libcma/libcma.so.64"
DESTINATION /usr/lib
RENAME libcma.so)
ENDIF()
ENDFUNCTION()
FIND_LIBRARY(CMA_LIBRARIES libcma.so)
IF(NOT CMA_LIBRARIES)
generateInstallRulesLibcma()
ENDIF()
# generate install rules for pynq package
FUNCTION (generateInstallRulesPynqPackage)
INSTALL(CODE "execute_process(COMMAND $ENV{PYNQ_PYTHON} -m pip install .)")
ENDFUNCTION()
generateInstallRulesPynqPackage()
# generate install rules for jupyter-notebook
FUNCTION (generateInstallRulesJupyterNotebook)
INSTALL(CODE "execute_process(COMMAND echo 'Now you can start/restart your jupyter-notebook.')")
INSTALL(CODE "execute_process(COMMAND echo 'The jupyter dashboard home is set to ENV{PYNQ_JUPYTER_NOTEBOOKS}.')")
ENDFUNCTION()
generateInstallRulesJupyterNotebook()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment