52 lines
1.8 KiB
CMake
52 lines
1.8 KiB
CMake
|
|
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()
|