Blame opae-libs/CMakeLists.txt

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")