Arquivos
rocm-systems/external/CMakeLists.txt
T
Ammar ELWazir d4df53cdc9 Adding Workflow for building and testing (#21)
* Adding Workflow for building and testing

* Adding run-ci script

* Fixing Project name

* Fixing Github Action

* Fixing Git Version

* Adding CMake installation

* Adding Gtest installation

* Fixing CDash Project name

* Correcting the AmdExtTable

* Fixing issues caused by submodules

* Enable Coverage

* Update tests/CMakeLists.txt

- add placeholder test printing cmake version

* Update CI workflow

- remove CMAKE_PREFIX_PATH and LD_RUNPATH_FLAG env vars
- rename Mi200-Ubuntu22-Doc-Packages job to mi200-ubuntu
- reorder jobs
- remove CMAKE_MODULE_PATH, CMAKE_SHARED_LINKER_FLAGS, CMAKE_INSTALL_RPATH, CMAKE_INSTALL_RPATH_USE_LINK_PATH, CPACK_PACKAGING_INSTALL_PREFIX, CPACK_{OBJCOPY,READELF,STRIP,OBJDUMP}_EXECUTABLE
- Remove build docs step

* Update cmake

- fix code coverage build

* Update submodules

- use rocprofiler_checkout_git_submodule for googletest

---------

Co-authored-by: Jonathan Madsen <jrmadsen@users.noreply.github.com>
2023-08-29 01:45:45 -05:00

90 linhas
2.8 KiB
CMake

#
#
# External dependencies
#
#
include(rocprofiler_utilities)
set(BUILD_TESTING OFF)
if(ROCPROFILER_BUILD_TESTS)
if(ROCPROFILER_BUILD_GTEST)
set(INSTALL_GTEST
OFF
CACHE BOOL "")
set(BUILD_GMOCK
OFF
CACHE BOOL "")
rocprofiler_checkout_git_submodule(
RECURSIVE
RELATIVE_PATH external/googletest
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
REPO_URL https://github.com/google/googletest.git
REPO_BRANCH "main")
add_subdirectory(googletest EXCLUDE_FROM_ALL)
if(NOT TARGET GTest::gtest)
message(FATAL_ERROR "missing GTest::gtest")
endif()
target_link_libraries(rocprofiler-gtest INTERFACE GTest::gtest)
target_include_directories(
rocprofiler-gtest SYSTEM
INTERFACE ${CMAKE_CURRENT_LIST_DIR}/googletest/googletest/include)
mark_as_advanced(INSTALL_GTEST)
mark_as_advanced(BUILD_GMOCK)
mark_as_advanced(GTEST_HAS_ABSL)
else()
find_package(GTest REQUIRED)
target_link_libraries(rocprofiler-gtest INTERFACE GTest::gtest)
endif()
endif()
if(ROCPROFILER_BUILD_GLOG)
# checkout submodule if not already checked out or clone repo if no .gitmodules file
rocprofiler_checkout_git_submodule(
RECURSIVE
RELATIVE_PATH external/glog
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
REPO_URL https://github.com/google/glog.git
REPO_BRANCH "master")
# May want to use GFLAGS in the future
set(WITH_GFLAGS OFF)
set(BUILD_SHARED_LIBS OFF)
add_subdirectory(glog EXCLUDE_FROM_ALL)
target_link_libraries(rocprofiler-glog INTERFACE $<BUILD_INTERFACE:glog::glog>)
target_include_directories(
rocprofiler-glog SYSTEM
INTERFACE $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/external/glog>
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/external/glog/src>)
else()
find_package(glog REQUIRED)
target_link_libraries(rocprofiler-glog INTERFACE glog::glog)
endif()
if(ROCPROFILER_BUILD_FMT)
# checkout submodule if not already checked out or clone repo if no .gitmodules file
rocprofiler_checkout_git_submodule(
RECURSIVE
RELATIVE_PATH external/fmt
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
REPO_URL https://github.com/fmtlib/fmt.git
REPO_BRANCH "master")
set(FMT_TEST OFF)
add_subdirectory(fmt EXCLUDE_FROM_ALL)
target_link_libraries(rocprofiler-fmt INTERFACE $<BUILD_INTERFACE:fmt::fmt>)
target_include_directories(
rocprofiler-fmt SYSTEM
INTERFACE $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/external/fmt/include>)
else()
find_package(fmt REQUIRED)
target_link_libraries(rocprofiler-fmt INTERFACE fmt::fmt)
endif()