forked from SergiusTheBest/plog
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
36 lines (34 loc) · 1.71 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# some systems have no shared libraries support, so check it
if(NOT DEFINED TARGET_SUPPORTS_SHARED_LIBS OR TARGET_SUPPORTS_SHARED_LIBS)
add_executable(SharedApp SharedApp/Main.cpp)
target_link_libraries(SharedApp PRIVATE plog::plog)
set_target_properties(SharedApp PROPERTIES FOLDER Samples/Shared)
# define PLOG_GLOBAL to share plog instances across modules (PLOG_EXPORT to export on Windows)
if(WIN32)
target_compile_definitions(SharedApp PRIVATE PLOG_EXPORT)
set_target_properties(SharedApp PROPERTIES ENABLE_EXPORTS 1)
else()
target_compile_definitions(SharedApp PRIVATE PLOG_GLOBAL)
target_link_libraries(SharedApp PRIVATE SharedLib1 SharedLib2)
endif()
add_library(SharedLib1 SHARED SharedLib1/Main.cpp)
target_link_libraries(SharedLib1 PRIVATE plog::plog)
set_target_properties(SharedLib1 PROPERTIES FOLDER Samples/Shared)
# define PLOG_GLOBAL to share plog instances across modules (PLOG_IMPORT to import on Windows)
if(WIN32)
target_compile_definitions(SharedLib1 PRIVATE PLOG_IMPORT)
target_link_libraries(SharedLib1 PRIVATE SharedApp)
else()
target_compile_definitions(SharedLib1 PRIVATE PLOG_GLOBAL)
endif()
add_library(SharedLib2 SHARED SharedLib2/Main.cpp)
target_link_libraries(SharedLib2 PRIVATE plog::plog)
set_target_properties(SharedLib2 PROPERTIES FOLDER Samples/Shared)
# define PLOG_GLOBAL to share plog instances across modules (PLOG_IMPORT to import on Windows)
if(WIN32)
target_compile_definitions(SharedLib2 PRIVATE PLOG_IMPORT)
target_link_libraries(SharedLib2 PRIVATE SharedApp)
else()
target_compile_definitions(SharedLib2 PRIVATE PLOG_GLOBAL)
endif()
endif()