|
Packit |
534379 |
## Copyright(c) 2017-2020, Intel Corporation
|
|
Packit |
534379 |
##
|
|
Packit |
534379 |
## Redistribution and use in source and binary forms, with or without
|
|
Packit |
534379 |
## modification, are permitted provided that the following conditions are met:
|
|
Packit |
534379 |
##
|
|
Packit |
534379 |
## * Redistributions of source code must retain the above copyright notice,
|
|
Packit |
534379 |
## this list of conditions and the following disclaimer.
|
|
Packit |
534379 |
## * Redistributions in binary form must reproduce the above copyright notice,
|
|
Packit |
534379 |
## this list of conditions and the following disclaimer in the documentation
|
|
Packit |
534379 |
## and/or other materials provided with the distribution.
|
|
Packit |
534379 |
## * Neither the name of Intel Corporation nor the names of its contributors
|
|
Packit |
534379 |
## may be used to endorse or promote products derived from this software
|
|
Packit |
534379 |
## without specific prior written permission.
|
|
Packit |
534379 |
##
|
|
Packit |
534379 |
## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
Packit |
534379 |
## AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
Packit |
534379 |
## IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
Packit |
534379 |
## ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
Packit |
534379 |
## LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
Packit |
534379 |
## CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
Packit |
534379 |
## SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
Packit |
534379 |
## INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
Packit |
534379 |
## CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
Packit |
534379 |
## ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
Packit |
534379 |
## POSSIBILITY OF SUCH DAMAGE.
|
|
Packit |
534379 |
|
|
Packit |
534379 |
cmake_minimum_required(VERSION 2.8.12)
|
|
Packit |
534379 |
project(opae-libs)
|
|
Packit |
534379 |
|
|
Packit |
534379 |
set(OPAE_VERSION_MAJOR 1 CACHE STRING "OPAE major version" FORCE)
|
|
Packit |
534379 |
set(OPAE_VERSION_MINOR 4 CACHE STRING "OPAE minor version" FORCE)
|
|
Packit |
534379 |
set(OPAE_VERSION_REVISION 1 CACHE STRING "OPAE revision version" FORCE)
|
|
Packit |
534379 |
set(OPAE_VERSION ${OPAE_VERSION_MAJOR}.${OPAE_VERSION_MINOR}.${OPAE_VERSION_REVISION}
|
|
Packit |
534379 |
CACHE STRING "OPAE version" FORCE)
|
|
Packit |
534379 |
|
|
Packit |
534379 |
set(OPAE_LIBS_ROOT ${CMAKE_CURRENT_SOURCE_DIR} CACHE PATH "Root directory of opae-libs project" FORCE)
|
|
Packit |
534379 |
set(OPAE_INCLUDE_PATH ${OPAE_LIBS_ROOT}/include CACHE PATH "Include directory for opae-libs")
|
|
Packit |
534379 |
|
|
Packit |
534379 |
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${OPAE_LIBS_ROOT}/cmake/modules")
|
|
Packit |
534379 |
|
|
Packit |
534379 |
############################################################################
|
|
Packit |
534379 |
## Python Interpreter/Build Env ###########################################
|
|
Packit |
534379 |
############################################################################
|
|
Packit |
534379 |
set(OPAE_PYTHON_VERSION 2.7 CACHE STRING "Python version to use for building/distributing pyopae")
|
|
Packit |
534379 |
set_property(CACHE OPAE_PYTHON_VERSION PROPERTY STRINGS 2.7 3.6 3.5 3.4 3.3)
|
|
Packit |
534379 |
find_package(PythonInterp ${OPAE_PYTHON_VERSION})
|
|
Packit |
534379 |
find_package(PythonLibs ${OPAE_PYTHON_VERSION})
|
|
Packit |
534379 |
|
|
Packit |
534379 |
option(OPAE_BUILD_TESTS "Enable building of OPAE unit tests" OFF)
|
|
Packit |
534379 |
mark_as_advanced(OPAE_BUILD_TESTS)
|
|
Packit |
534379 |
|
|
Packit |
534379 |
include(OPAE)
|
|
Packit |
534379 |
|
|
Packit |
534379 |
get_property(LIB64 GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS)
|
|
Packit |
534379 |
if ("${LIB64}" STREQUAL "TRUE")
|
|
Packit |
534379 |
set(OPAE_LIB_INSTALL_DIR "lib64" CACHE INTERNAL "arch specific library")
|
|
Packit |
534379 |
else()
|
|
Packit |
534379 |
set(OPAE_LIB_INSTALL_DIR "lib" CACHE INTERNAL "arch specific library")
|
|
Packit |
534379 |
endif()
|
|
Packit |
534379 |
|
|
Packit |
534379 |
############################################################################
|
|
Packit |
534379 |
## RPATH Handling ##########################################################
|
|
Packit |
534379 |
############################################################################
|
|
Packit |
534379 |
option(OPAE_INSTALL_RPATH "Enable to create RPATH during install" OFF)
|
|
Packit |
534379 |
mark_as_advanced(OPAE_INSTALL_RPATH)
|
|
Packit |
534379 |
|
|
Packit |
534379 |
set(CMAKE_SKIP_BUILD_RPATH FALSE)
|
|
Packit |
534379 |
if(OPAE_INSTALL_RPATH)
|
|
Packit |
534379 |
set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
|
|
Packit |
534379 |
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${OPAE_LIB_INSTALL_DIR}")
|
|
Packit |
534379 |
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
|
|
Packit |
534379 |
endif()
|
|
Packit |
534379 |
|
|
Packit |
534379 |
############################################################################
|
|
Packit |
534379 |
## Place all executables and libraries under the same directories ##########
|
|
Packit |
534379 |
############################################################################
|
|
Packit |
534379 |
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin CACHE PATH "Exe Build directory" FORCE)
|
|
Packit |
534379 |
set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib CACHE PATH "Lib Build directory" FORCE)
|
|
Packit |
534379 |
|
|
Packit |
534379 |
############################################################################
|
|
Packit |
534379 |
## Conditional Build Steps #################################################
|
|
Packit |
534379 |
############################################################################
|
|
Packit |
534379 |
option(OPAE_BUILD_LIBOPAE_CXX "Enable building of C++ bindings around libopae-c." ON)
|
|
Packit |
534379 |
mark_as_advanced(OPAE_BUILD_LIBOPAE_CXX)
|
|
Packit |
534379 |
|
|
Packit |
534379 |
option(OPAE_BUILD_LIBOPAE_PY "Enable building of Python bindings around libopae-cxx-core." ON)
|
|
Packit |
534379 |
mark_as_advanced(OPAE_BUILD_LIBOPAE_PY)
|
|
Packit |
534379 |
|
|
Packit |
534379 |
option(OPAE_BUILD_PYTHON_DIST "Enable building of Python source and binary distribution" OFF)
|
|
Packit |
534379 |
mark_as_advanced(OPAE_BUILD_PYTHON_DIST)
|
|
Packit |
534379 |
|
|
Packit |
534379 |
option(OPAE_ENABLE_MOCK "Enable building of test infrastructure with mock" OFF)
|
|
Packit |
534379 |
mark_as_advanced(OPAE_ENABLE_MOCK)
|
|
Packit |
534379 |
|
|
Packit |
534379 |
option(OPAE_BUILD_SIM "Enable building of the AFU simulation environment" OFF)
|
|
Packit |
534379 |
mark_as_advanced(OPAE_BUILD_SIM)
|
|
Packit |
534379 |
|
|
Packit |
534379 |
option(OPAE_PRESERVE_REPOS "Disable refresh of external repos" OFF)
|
|
Packit |
534379 |
mark_as_advanced(OPAE_PRESERVE_REPOS)
|
|
Packit |
534379 |
|
|
Packit |
534379 |
if(OPAE_BUILD_TESTS)
|
|
Packit |
534379 |
option(OPAE_TEST_TAG "Desired branch for opae-test" master)
|
|
Packit |
534379 |
mark_as_advanced(OPAE_TEST_TAG)
|
|
Packit |
534379 |
endif(OPAE_BUILD_TESTS)
|
|
Packit |
534379 |
|
|
Packit |
534379 |
if(OPAE_BUILD_SIM)
|
|
Packit |
534379 |
option(OPAE_SIM_TAG "Desired branch for opae-sim" master)
|
|
Packit |
534379 |
mark_as_advanced(OPAE_SIM_TAG)
|
|
Packit |
534379 |
endif(OPAE_BUILD_SIM)
|
|
Packit |
534379 |
|
|
Packit |
534379 |
############################################################################
|
|
Packit |
534379 |
## Add Subdirectories ######################################################
|
|
Packit |
534379 |
############################################################################
|
|
Packit |
534379 |
|
|
Packit |
534379 |
opae_add_subdirectory(external)
|
|
Packit |
534379 |
opae_add_subdirectory(libopae-c)
|
|
Packit |
534379 |
opae_add_subdirectory(libbitstream)
|
|
Packit |
534379 |
opae_add_subdirectory(plugins)
|
|
Packit |
534379 |
|
|
Packit |
534379 |
if(OPAE_BUILD_LIBOPAE_CXX)
|
|
Packit |
534379 |
opae_add_subdirectory(libopaecxx)
|
|
Packit |
534379 |
endif()
|
|
Packit |
534379 |
|
|
Packit |
534379 |
if(OPAE_BUILD_LIBOPAE_PY AND OPAE_BUILD_LIBOPAE_CXX)
|
|
Packit |
534379 |
opae_add_subdirectory(pyopae)
|
|
Packit |
534379 |
endif()
|
|
Packit |
534379 |
|
|
Packit |
534379 |
if(OPAE_BUILD_TESTS)
|
|
Packit |
534379 |
enable_testing()
|
|
Packit |
534379 |
opae_add_subdirectory(tests)
|
|
Packit |
534379 |
endif(OPAE_BUILD_TESTS)
|
|
Packit |
534379 |
|
|
Packit |
534379 |
install(DIRECTORY include/opae
|
|
Packit |
534379 |
DESTINATION include
|
|
Packit |
534379 |
COMPONENT libopaeheaders)
|
|
Packit |
534379 |
|
|
Packit |
534379 |
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake/config/config.h.in"
|
|
Packit |
534379 |
"${CMAKE_BINARY_DIR}/include/config.h")
|