@@ -13,6 +13,7 @@ project(
13
13
14
14
option (MLC_BUILD_TESTS "Build tests. This option will enable a test target `mlc_tests`." OFF )
15
15
option (MLC_BUILD_PY "Build Python bindings." OFF )
16
+ option (MLC_BUILD_STATIC "Build static library." OFF )
16
17
17
18
include (TestBigEndian )
18
19
include (${CMAKE_CURRENT_LIST_DIR} /cmake/CPM.cmake )
@@ -45,6 +46,9 @@ set_property(
45
46
MLC_IS_BIG_ENDIAN=${MLC_IS_BIG_ENDIAN}
46
47
)
47
48
49
+ # target: `mlc`
50
+ add_custom_target (mlc )
51
+
48
52
# target: `mlc_objs`
49
53
add_library (mlc_objs OBJECT
50
54
"${CMAKE_CURRENT_SOURCE_DIR} /cpp/c_api.cc"
@@ -80,34 +84,37 @@ target_link_libraries(mlc_objs PUBLIC mlc::mlc_backtrace-static)
80
84
target_compile_definitions (mlc_objs PRIVATE MLC_EXPORTS )
81
85
82
86
# target: `mlc-static`
83
- add_library (mlc-static STATIC $< TARGET_OBJECTS:mlc_objs> )
84
- set_target_properties (
85
- mlc-static PROPERTIES
86
- OUTPUT_NAME "mlc-static"
87
- PREFIX "lib"
88
- RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR} /lib"
89
- ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR} /lib"
90
- LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR} /lib"
91
- MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL"
92
- )
93
- target_include_directories (mlc-static PUBLIC
94
- $< BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /include>
95
- $< INSTALL_INTERFACE:include>
96
- )
97
- target_link_libraries (mlc-static PUBLIC mlc::mlc_backtrace-static )
98
- packageProject (
99
- NAME mlc-static
100
- VERSION ${PROJECT_VERSION}
101
- BINARY_DIR ${PROJECT_BINARY_DIR}
102
- INCLUDE_DIR ${PROJECT_SOURCE_DIR} /include
103
- INCLUDE_DESTINATION include
104
- DEPENDENCIES "mlc-backtrace 0.1.5"
105
- NAMESPACE mlc
106
- RUNTIME_DESTINATION "mlc"
107
- INSTALL_LIBDIR lib
108
- INSTALL_BINDIR lib
109
- CPACK YES
110
- )
87
+ if (MLC_BUILD_STATIC )
88
+ add_library (mlc-static STATIC $< TARGET_OBJECTS:mlc_objs> )
89
+ set_target_properties (
90
+ mlc-static PROPERTIES
91
+ OUTPUT_NAME "mlc-static"
92
+ PREFIX "lib"
93
+ RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR} /lib"
94
+ ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR} /lib"
95
+ LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR} /lib"
96
+ MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL"
97
+ )
98
+ target_include_directories (mlc-static PUBLIC
99
+ $< BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /include>
100
+ $< INSTALL_INTERFACE:include>
101
+ )
102
+ target_link_libraries (mlc-static PUBLIC mlc::mlc_backtrace-static )
103
+ packageProject (
104
+ NAME mlc-static
105
+ VERSION ${PROJECT_VERSION}
106
+ BINARY_DIR ${PROJECT_BINARY_DIR}
107
+ INCLUDE_DIR ${PROJECT_SOURCE_DIR} /include
108
+ INCLUDE_DESTINATION include
109
+ DEPENDENCIES "mlc-backtrace 0.1.5"
110
+ NAMESPACE mlc
111
+ RUNTIME_DESTINATION "mlc"
112
+ INSTALL_LIBDIR lib
113
+ INSTALL_BINDIR lib
114
+ CPACK YES
115
+ )
116
+ add_dependencies (mlc mlc-static )
117
+ endif (MLC_BUILD_STATIC )
111
118
112
119
# target: `mlc-shared`
113
120
add_library (mlc-shared SHARED $< TARGET_OBJECTS:mlc_objs> )
@@ -139,10 +146,7 @@ packageProject(
139
146
INSTALL_BINDIR lib
140
147
CPACK YES
141
148
)
142
-
143
- # target: `mlc`
144
- add_custom_target (mlc )
145
- add_dependencies (mlc mlc-static mlc-shared )
149
+ add_dependencies (mlc mlc-shared )
146
150
147
151
########## Target: `mlc_py` ##########
148
152
0 commit comments