sitara_depot/utils/FileToSharedMem/CMakeLists.txt

52 lines
1.8 KiB
CMake
Raw Permalink Normal View History

2024-07-01 12:29:22 +03:00
cmake_minimum_required(VERSION 3.17)
project(FileToSharedMem)
# Подключаем исходные файлы проекта.
set(SOURCES
MemMapping.cpp MemMapping.h
)
# Подключаем внешние зависимости.
include(FetchContent)
include(SharedLibraries.cmake)
# Определяем зависимости, являющиеся общими для всех целей.
set(LIST_OF_SHARED_LIBRARIES
cxxopts
)
# Определяем свойства, являющиеся общими для всех целей.
set(LIST_OF_SHARED_PROPERTIES
CXX_STANDARD 20
CXX_STANDARD_REQUIRED ON
CXX_EXTENSIONS OFF
)
add_executable(FileToSharedMem FileToSharedMem.cpp ${SOURCES})
add_executable(DevMem DevMem.cpp ${SOURCES})
# Добавляем корневую директорию для того чтобы избежать инклюдов с ../
target_include_directories(FileToSharedMem PRIVATE ${PROJECT_SOURCE_DIR})
target_include_directories(DevMem PRIVATE ${PROJECT_SOURCE_DIR})
# Подключаем зависимости.
target_link_libraries(FileToSharedMem PRIVATE ${LIST_OF_SHARED_LIBRARIES})
target_link_libraries(DevMem PRIVATE ${LIST_OF_SHARED_LIBRARIES})
# Определяем свойства.
set_target_properties(FileToSharedMem PROPERTIES ${LIST_OF_SHARED_PROPERTIES})
set_target_properties(DevMem PROPERTIES ${LIST_OF_SHARED_PROPERTIES})
# Подключаем зависимости платформы.
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
set(WIN_SHARED_LIBRARIES -Wl,-Bstatic,--whole-archive -static-libgcc -static-libstdc++ -lwinpthread
-Wl,--no-whole-archive wsock32 ws2_32
)
target_link_libraries(FileToSharedMem PRIVATE ${WIN_SHARED_LIBRARIES})
target_link_libraries(DevMem PRIVATE ${WIN_SHARED_LIBRARIES})
endif()