|
Packit |
534379 |
#!/usr/bin/cmake -P
|
|
Packit |
534379 |
## Copyright(c) 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 |
|
|
Packit |
534379 |
macro(opae_external_project_add)
|
|
Packit |
534379 |
set(options EXCLUDE_FROM_ALL NO_ADD_SUBDIRECTORY)
|
|
Packit |
534379 |
set(oneValueArgs PROJECT_NAME GIT_URL GIT_TAG PRESERVE_REPOS)
|
|
Packit |
534379 |
set(multiValueArgs)
|
|
Packit |
534379 |
cmake_parse_arguments(OPAE_EXTERNAL_PROJECT_ADD "${options}"
|
|
Packit |
534379 |
"${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
|
Packit |
534379 |
if(NOT OPAE_EXTERNAL_PROJECT_ADD_GIT_TAG)
|
|
Packit |
534379 |
set(OPAE_EXTERNAL_PROJECT_ADD_GIT_TAG "master")
|
|
Packit |
534379 |
endif(NOT OPAE_EXTERNAL_PROJECT_ADD_GIT_TAG)
|
|
Packit |
534379 |
|
|
Packit |
534379 |
set(${OPAE_EXTERNAL_PROJECT_ADD_PROJECT_NAME}_ROOT
|
|
Packit |
534379 |
${CMAKE_SOURCE_DIR}/external/${OPAE_EXTERNAL_PROJECT_ADD_PROJECT_NAME}
|
|
Packit |
534379 |
CACHE PATH "Root directory to ${OPAE_EXTERNAL_PROJECT_ADD_PROJECT_NAME} external" FORCE)
|
|
Packit |
534379 |
|
|
Packit |
534379 |
set(download_dir
|
|
Packit |
534379 |
${CMAKE_CURRENT_BINARY_DIR}/${OPAE_EXTERNAL_PROJECT_ADD_PROJECT_NAME}/download)
|
|
Packit |
534379 |
file(WRITE ${download_dir}/CMakeLists.txt
|
|
Packit |
534379 |
"cmake_minimum_required(VERSION 2.8.12)\n"
|
|
Packit |
534379 |
"include(ExternalProject)\n"
|
|
Packit |
534379 |
"ExternalProject_Add(${OPAE_EXTERNAL_PROJECT_ADD_PROJECT_NAME}\n"
|
|
Packit |
534379 |
" GIT_REPOSITORY ${OPAE_EXTERNAL_PROJECT_ADD_GIT_URL}\n"
|
|
Packit |
534379 |
" GIT_TAG ${OPAE_EXTERNAL_PROJECT_ADD_GIT_TAG}\n"
|
|
Packit |
534379 |
" SOURCE_DIR ${CMAKE_SOURCE_DIR}/external/${OPAE_EXTERNAL_PROJECT_ADD_PROJECT_NAME}\n"
|
|
Packit |
534379 |
" BINARY_DIR ${CMAKE_BINARY_DIR}/external/${OPAE_EXTERNAL_PROJECT_ADD_PROJECT_NAME}\n"
|
|
Packit |
534379 |
" CONFIGURE_COMMAND \"\"\n"
|
|
Packit |
534379 |
" BUILD_COMMAND \"\"\n"
|
|
Packit |
534379 |
" INSTALL_COMMAND \"\"\n"
|
|
Packit |
534379 |
" TEST_COMMAND \"\"\n"
|
|
Packit |
534379 |
" COMMENT \"adding ${OPAE_EXTERNAL_PROJECT_ADD_PROJECT_NAME}\"\n"
|
|
Packit |
534379 |
")\n"
|
|
Packit |
534379 |
)
|
|
Packit |
534379 |
|
|
Packit |
534379 |
if(NOT EXISTS ${CMAKE_SOURCE_DIR}/external/${OPAE_EXTERNAL_PROJECT_ADD_PROJECT_NAME} OR NOT ${OPAE_EXTERNAL_PROJECT_ADD_PRESERVE_REPOS})
|
|
Packit |
534379 |
execute_process(
|
|
Packit |
534379 |
COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" .
|
|
Packit |
534379 |
RESULT_VARIABLE result
|
|
Packit |
534379 |
WORKING_DIRECTORY ${download_dir})
|
|
Packit |
534379 |
if(result)
|
|
Packit |
534379 |
message(FATAL_ERROR "CMake step for ${OPAE_EXTERNAL_PROJECT_ADD_PROJECT_NAME} failed: ${result}")
|
|
Packit |
534379 |
endif(result)
|
|
Packit |
534379 |
|
|
Packit |
534379 |
execute_process(
|
|
Packit |
534379 |
COMMAND ${CMAKE_COMMAND} --build .
|
|
Packit |
534379 |
RESULT_VARIABLE result
|
|
Packit |
534379 |
WORKING_DIRECTORY ${download_dir})
|
|
Packit |
534379 |
if(result)
|
|
Packit |
534379 |
message(FATAL_ERROR "Build step for ${OPAE_EXTERNAL_PROJECT_ADD_PROJECT_NAME} failed: ${result}")
|
|
Packit |
534379 |
endif(result)
|
|
Packit |
534379 |
endif()
|
|
Packit |
534379 |
|
|
Packit |
534379 |
set(src_dir
|
|
Packit |
534379 |
${CMAKE_SOURCE_DIR}/external/${OPAE_EXTERNAL_PROJECT_ADD_PROJECT_NAME})
|
|
Packit |
534379 |
set(bin_dir
|
|
Packit |
534379 |
${CMAKE_BINARY_DIR}/external/${OPAE_EXTERNAL_PROJECT_ADD_PROJECT_NAME})
|
|
Packit |
534379 |
|
|
Packit |
534379 |
if(NOT ${OPAE_EXTERNAL_PROJECT_ADD_NO_ADD_SUBDIRECTORY} AND EXISTS ${src_dir}/CMakeLists.txt)
|
|
Packit |
534379 |
if(${OPAE_EXTERNAL_PROJECT_ADD_EXCLUDE_FROM_ALL})
|
|
Packit |
534379 |
add_subdirectory(${src_dir} ${bin_dir} EXCLUDE_FROM_ALL)
|
|
Packit |
534379 |
else(${OPAE_EXTERNAL_PROJECT_ADD_EXCLUDE_FROM_ALL})
|
|
Packit |
534379 |
add_subdirectory(${src_dir} ${bin_dir})
|
|
Packit |
534379 |
endif(${OPAE_EXTERNAL_PROJECT_ADD_EXCLUDE_FROM_ALL})
|
|
Packit |
534379 |
endif(NOT ${OPAE_EXTERNAL_PROJECT_ADD_NO_ADD_SUBDIRECTORY} AND EXISTS ${src_dir}/CMakeLists.txt)
|
|
Packit |
534379 |
|
|
Packit |
534379 |
endmacro(opae_external_project_add)
|