Created
May 1, 2019 17:12
-
-
Save yunqu/3a3b061c9c254d2172497e022d6e0fcc to your computer and use it in GitHub Desktop.
CMake for PYNQ package
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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