Skip to content

Commit a99fbbc

Browse files
authored
chore(build): Exclude static library in pypi release (#48)
1 parent 07ade88 commit a99fbbc

File tree

3 files changed

+43
-32
lines changed

3 files changed

+43
-32
lines changed

.github/workflows/release.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ on:
77
env:
88
CIBW_BUILD_VERBOSITY: 3
99
CIBW_TEST_COMMAND: "python -c \"import mlc\""
10+
CIBW_ENVIRONMENT: "MLC_RELEASE=1"
1011
MLC_CIBW_VERSION: "2.22.0"
1112
MLC_PYTHON_VERSION: "3.9"
1213
MLC_CIBW_WIN_BUILD: "cp3*-win_amd64"

CMakeLists.txt

Lines changed: 36 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ project(
1313

1414
option(MLC_BUILD_TESTS "Build tests. This option will enable a test target `mlc_tests`." OFF)
1515
option(MLC_BUILD_PY "Build Python bindings." OFF)
16+
option(MLC_BUILD_STATIC "Build static library." OFF)
1617

1718
include(TestBigEndian)
1819
include(${CMAKE_CURRENT_LIST_DIR}/cmake/CPM.cmake)
@@ -45,6 +46,9 @@ set_property(
4546
MLC_IS_BIG_ENDIAN=${MLC_IS_BIG_ENDIAN}
4647
)
4748

49+
# target: `mlc`
50+
add_custom_target(mlc)
51+
4852
# target: `mlc_objs`
4953
add_library(mlc_objs OBJECT
5054
"${CMAKE_CURRENT_SOURCE_DIR}/cpp/c_api.cc"
@@ -80,34 +84,37 @@ target_link_libraries(mlc_objs PUBLIC mlc::mlc_backtrace-static)
8084
target_compile_definitions(mlc_objs PRIVATE MLC_EXPORTS)
8185

8286
# 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)
111118

112119
# target: `mlc-shared`
113120
add_library(mlc-shared SHARED $<TARGET_OBJECTS:mlc_objs>)
@@ -139,10 +146,7 @@ packageProject(
139146
INSTALL_BINDIR lib
140147
CPACK YES
141148
)
142-
143-
# target: `mlc`
144-
add_custom_target(mlc)
145-
add_dependencies(mlc mlc-static mlc-shared)
149+
add_dependencies(mlc mlc-shared)
146150

147151
########## Target: `mlc_py` ##########
148152

pyproject.toml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,14 @@ sdist.include = ["python/mlc/_version.py"]
6262

6363
[tool.scikit-build.cmake.define]
6464
MLC_BUILD_PY = "ON"
65+
MLC_BUILD_STATIC = "ON"
6566
MLC_BUILD_TESTS = "OFF"
6667

68+
[[tool.scikit-build.overrides]]
69+
if.env.MLC_RELEASE = true
70+
inherit.cmake.define = "append"
71+
cmake.define.MLC_BUILD_STATIC = "OFF"
72+
6773
[tool.ruff]
6874
line-length = 100
6975
indent-width = 4

0 commit comments

Comments
 (0)