From d938bd95b15f6214b1a415e61e86ef835c349098 Mon Sep 17 00:00:00 2001 From: Steffen Vogel Date: Sun, 14 Jun 2020 22:11:58 +0200 Subject: [PATCH] cmake: fixups for inclusion into VILLASnode --- fpga/CMakeLists.txt | 19 ++++++++++++++++++- fpga/lib/CMakeLists.txt | 10 ++-------- fpga/tests/CMakeLists.txt | 8 ++++---- 3 files changed, 24 insertions(+), 13 deletions(-) diff --git a/fpga/CMakeLists.txt b/fpga/CMakeLists.txt index 1cb70a547..2531ea8f9 100644 --- a/fpga/CMakeLists.txt +++ b/fpga/CMakeLists.txt @@ -29,9 +29,16 @@ project(VILLASfpga set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/cmake) +# Several CMake settings/defaults set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Werror") +if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME) + set(TOPLEVEL_PROJECT ON) +else() + set(TOPLEVEL_PROJECT OFF) +endif() + # GPU library is optional, check for CUDA presence include(CheckLanguage) check_language(CUDA) @@ -42,14 +49,24 @@ else() message("No CUDA support, not building GPU library") endif() +include(FindPkgConfig) + +pkg_check_modules(JANSSON REQUIRED IMPORTED_TARGET jansson) +pkg_check_modules(XIL REQUIRED IMPORTED_TARGET libxil) + +find_package(Threads) + include_directories(thirdparty/CLI11) include_directories(thirdparty/rang) -add_subdirectory(common) add_subdirectory(lib) add_subdirectory(src) add_subdirectory(tests) +if(NOT CMAKE_PROJECT_NAME STREQUAL "villas-node") + add_subdirectory(common) +endif() + # Project settings set(PROJECT_NAME "VILLASfpga") set(PROJECT_DESCRIPTION "Host library for configuring and communicating with VILLASfpga") diff --git a/fpga/lib/CMakeLists.txt b/fpga/lib/CMakeLists.txt index 08db15e33..c22f299e9 100644 --- a/fpga/lib/CMakeLists.txt +++ b/fpga/lib/CMakeLists.txt @@ -46,13 +46,6 @@ set(SOURCES set_source_files_properties(ips/rtds2gpu/xrtds2gpu.c PROPERTIES COMPILE_FLAGS -Wno-int-to-pointer-cast) -include(FindPkgConfig) - -pkg_check_modules(JANSSON jansson) -pkg_check_modules(XIL libxil) - -find_package(Threads) - add_library(villas-fpga SHARED ${SOURCES}) target_link_libraries(villas-fpga PUBLIC villas-common) @@ -64,7 +57,8 @@ target_compile_definitions(villas-fpga PRIVATE target_include_directories(villas-fpga PUBLIC - ../include + ${PROJECT_BINARY_DIR}/include + ${PROJECT_SOURCE_DIR}/include ${XIL_INCLUDE_DIRS} ${JANSSON_INCLUDE_DIRS} ) diff --git a/fpga/tests/CMakeLists.txt b/fpga/tests/CMakeLists.txt index 7d6050cde..6738b76a0 100644 --- a/fpga/tests/CMakeLists.txt +++ b/fpga/tests/CMakeLists.txt @@ -34,22 +34,22 @@ set(SOURCES # hls.cpp # intc.cpp -add_executable(unit-tests ${SOURCES}) +add_executable(unit-tests-fpga ${SOURCES}) if (CMAKE_CUDA_COMPILER) enable_language(CUDA) - target_sources(unit-tests PRIVATE + target_sources(unit-tests-fpga PRIVATE gpu.cpp rtds2gpu.cpp gpu_kernels.cu) endif () find_package(Criterion REQUIRED) -target_include_directories(unit-tests PUBLIC +target_include_directories(unit-tests-fpga PUBLIC ../include ${CRITERION_INCLUDE_DIRECTORIES} ) -target_link_libraries(unit-tests PUBLIC +target_link_libraries(unit-tests-fpga PUBLIC villas-fpga ${CRITERION_LIBRARIES} )