Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
84 changes: 63 additions & 21 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,50 +1,92 @@
set(CMAKE_POLICY_VERSION_MINIMUM 3.5)
cmake_minimum_required(VERSION 3.25)

set(REPO_NAME asam_cmp_modules)
set(REPO_OPTION_PREFIX ASAM_CMP)

if (MSVC)
add_compile_options(/bigobj)
endif()
list(APPEND CMAKE_MESSAGE_CONTEXT ${REPO_NAME})
add_subdirectory(cmake)

project(${REPO_NAME} VERSION 1.0.0)
opendaq_read_file_contents("${CMAKE_CURRENT_LIST_DIR}/module_version" module_version)
opendaq_get_version_major_minor_patch("${module_version}" ${REPO_OPTION_PREFIX}_VERSION)

if (POLICY CMP0135)
cmake_policy(SET CMP0135 NEW)
endif()
project(${REPO_NAME} VERSION ${${REPO_OPTION_PREFIX}_VERSION} LANGUAGES CXX)

opendaq_common_early_setup()

if (POLICY CMP0077)
cmake_policy(SET CMP0077 NEW)
if (PROJECT_IS_TOP_LEVEL)
message(STATUS "Building ${REPO_NAME} version ${${REPO_OPTION_PREFIX}_VERSION} standalone")
else()
message(STATUS "Building ${REPO_NAME} version ${${REPO_OPTION_PREFIX}_VERSION} as submodule")
endif()

opendaq_setup_common_build_options()
opendaq_setup_project_specific_build_options(${REPO_OPTION_PREFIX})

option(${REPO_OPTION_PREFIX}_BUILD_CAPTURE_MODULE "Enable ASAM CMP Capture Module" ON)
option(${REPO_OPTION_PREFIX}_BUILD_DATA_SINK "Enable ASAM CMP Data Sink" ON)
option(${REPO_OPTION_PREFIX}_ENABLE_EXAMPLE "Enable Example" ON)
option(${REPO_OPTION_PREFIX}_ENABLE_EXAMPLE "Enable Example" ${PROJECT_IS_TOP_LEVEL})
option(${REPO_OPTION_PREFIX}_ENABLE_TESTS "Enable ${REPO_NAME} testing" ${PROJECT_IS_TOP_LEVEL})

set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
list(APPEND CMAKE_MESSAGE_CONTEXT ${REPO_NAME})
set(CMAKE_MESSAGE_CONTEXT_SHOW ON CACHE BOOL "Show CMake message context")

list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")

add_definitions(-DFMT_HEADER_ONLY)

include(AsamCommonUtils)
setup_repo(${REPO_OPTION_PREFIX})
opendaq_common_compile_targets_settings()
opendaq_setup_compiler_flags(${REPO_OPTION_PREFIX})

if (${REPO_OPTION_PREFIX}_ENABLE_TESTS)
message(STATUS "Unit tests in ${REPO_NAME} are ENABLED")
set(OPENDAQ_ENABLE_TEST_UTILS ON CACHE BOOL "Enable testing utils library")
enable_testing()
else()
message(STATUS "Unit tests in ${REPO_NAME} are DISABLED")
endif()

if (MSVC)
add_compile_options($<$<COMPILE_LANGUAGE:C,CXX>:/bigobj>)
add_compile_options($<$<COMPILE_LANGUAGE:C,CXX>:/wd4244>)
add_compile_options($<$<COMPILE_LANGUAGE:C,CXX>:/wd4100>)
endif()

add_definitions(-DFMT_HEADER_ONLY)

if (${REPO_OPTION_PREFIX}_ENABLE_EXAMPLE)
set(DAQMODULES_REF_DEVICE_MODULE ON)
set(DAQMODULES_REF_FB_MODULE ON)

add_subdirectory(examples)
endif()

# TODO: move add_subdirectory(external) after openDAQ SDK fetch once TBBAS-3072 is resolved
add_subdirectory(external)

if (NOT TARGET "${OPENDAQ_SDK_TARGET_NAMESPACE}::${OPENDAQ_SDK_TARGET_NAME}")
if (PROJECT_IS_TOP_LEVEL)
find_package(${OPENDAQ_SDK_NAME} GLOBAL)
endif()
if (NOT ${OPENDAQ_SDK_NAME}_FOUND)
include(FetchContent)
set(OPENDAQ_ENABLE_TESTS OFF CACHE BOOL "")

opendaq_read_file_contents("${CMAKE_CURRENT_LIST_DIR}/opendaq_ref" OPENDAQ_REF)
opendaq_get_custom_fetch_content_params(${OPENDAQ_SDK_NAME} FC_PARAMS)

FetchContent_Declare(
${OPENDAQ_SDK_NAME}
GIT_REPOSITORY https://github.com/openDAQ/openDAQ.git
GIT_TAG ${OPENDAQ_REF}
GIT_PROGRESS ON
${FC_PARAMS}
)
FetchContent_MakeAvailable(${OPENDAQ_SDK_NAME})
else()
message(STATUS "Found installed ${OPENDAQ_SDK_NAME} version: ${${OPENDAQ_SDK_NAME}_VERSION}")
set(OPENDAQ_PACKAGE_VERSION "${${OPENDAQ_SDK_NAME}_VERSION}" CACHE INTERNAL "${OPENDAQ_SDK_NAME} SDK version")
endif()
endif()

add_subdirectory(shared)
add_subdirectory(modules)
if (${REPO_OPTION_PREFIX}_ENABLE_EXAMPLE)
add_subdirectory(examples)
endif()

# Set CPack variables
set(CPACK_COMPONENTS_ALL RUNTIME)
Expand All @@ -64,4 +106,4 @@ elseif (UNIX AND NOT APPLE)
endif()

# Include CPack for packaging
include(CPack)
include(CPack)
167 changes: 0 additions & 167 deletions cmake/AsamCommonUtils.cmake

This file was deleted.

12 changes: 12 additions & 0 deletions cmake/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
set(CMAKE_FOLDER "cmake")
list(APPEND CMAKE_MESSAGE_CONTEXT cmake)

message(STATUS "Import functions and macro from opendaq-cmake-utils repo")
include(FetchContent)
FetchContent_Declare(
opendaq-cmake-utils
GIT_REPOSITORY https://github.com/openDAQ/opendaq-cmake-utils.git
GIT_TAG v1.0.0
GIT_PROGRESS ON
)
FetchContent_MakeAvailable(opendaq-cmake-utils)
Loading