@@ -17,22 +17,22 @@ else()
1717endif ()
1818
1919if (NOT CMAKE_BUILD_TYPE )
20- set (
21- CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "Build type" FORCE
22- )
20+ set (CMAKE_BUILD_TYPE
21+ RelWithDebInfo
22+ CACHE STRING "Build type" FORCE )
2323 message (STATUS "Setting default build type to " ${CMAKE_BUILD_TYPE} )
2424endif (NOT CMAKE_BUILD_TYPE )
2525
2626option (MLC_HIDE_PRIVATE_SYMBOLS "Hide private symbols" ON )
2727
28- if (MLC_LLM_INSTALL_STATIC_LIB)
28+ if (MLC_LLM_INSTALL_STATIC_LIB)
2929 set (BUILD_STATIC_RUNTIME ON )
3030endif ()
3131
3232set (MLC_VISIBILITY_FLAG "" )
33- if (MLC_HIDE_PRIVATE_SYMBOLS)
33+ if (MLC_HIDE_PRIVATE_SYMBOLS)
3434 set (HIDE_PRIVATE_SYMBOLS ON )
35- if (NOT MSVC )
35+ if (NOT MSVC )
3636 set (MLC_VISIBILITY_FLAG "-fvisibility=hidden" )
3737 endif ()
3838 message (STATUS "Hide private symbols" )
@@ -54,13 +54,13 @@ set(USE_PROFILER OFF)
5454set (USE_GTEST OFF )
5555set (USE_LIBBACKTRACE OFF )
5656set (BUILD_DUMMY_LIBTVM ON )
57- if (NOT DEFINED TVM_SOURCE_DIR)
57+ if (NOT DEFINED TVM_SOURCE_DIR)
5858 if (DEFINED ENV{TVM_SOURCE_DIR})
5959 set (TVM_SOURCE_DIR "$ENV{TVM_SOURCE_DIR} " )
6060 else ()
6161 set (TVM_SOURCE_DIR 3rdparty/tvm)
6262 endif (DEFINED ENV{TVM_SOURCE_DIR})
63- endif (NOT DEFINED TVM_SOURCE_DIR)
63+ endif (NOT DEFINED TVM_SOURCE_DIR)
6464message (STATUS "TVM_SOURCE_DIR: ${TVM_SOURCE_DIR} " )
6565add_subdirectory (${TVM_SOURCE_DIR} tvm EXCLUDE_FROM_ALL )
6666
@@ -75,15 +75,13 @@ list(FILTER XGRAMMAR_SRCS EXCLUDE REGEX "${XGRAMMAR_PATH}/cpp/pybind/.*\\.cc")
7575list (APPEND MLC_LLM_SRCS ${XGRAMMAR_SRCS} )
7676add_library (mlc_llm_objs OBJECT ${MLC_LLM_SRCS} )
7777
78- set (
79- MLC_LLM_INCLUDES
80- ${TVM_SOURCE_DIR} /include
81- ${TVM_SOURCE_DIR} /3rdparty/dlpack/include
82- ${TVM_SOURCE_DIR} /3rdparty/dmlc-core/include
83- ${TVM_SOURCE_DIR} /3rdparty/picojson
84- )
78+ set (MLC_LLM_INCLUDES
79+ ${TVM_SOURCE_DIR} /include ${TVM_SOURCE_DIR} /3rdparty/dlpack/include
80+ ${TVM_SOURCE_DIR} /3rdparty/dmlc-core/include
81+ ${TVM_SOURCE_DIR} /3rdparty/picojson)
8582
86- set (MLC_LLM_COMPILE_DEFS ${MLC_LLM_COMPILE_DEFS} DMLC_USE_LOGGING_LIBRARY=<tvm/runtime/logging.h>)
83+ set (MLC_LLM_COMPILE_DEFS ${MLC_LLM_COMPILE_DEFS}
84+ DMLC_USE_LOGGING_LIBRARY=<tvm/runtime/logging.h>)
8785set (MLC_LLM_COMPILE_DEFS ${MLC_LLM_COMPILE_DEFS} __STDC_FORMAT_MACROS=1)
8886set (MLC_LLM_COMPILE_DEFS ${MLC_LLM_COMPILE_DEFS} PICOJSON_USE_INT64)
8987set (MLC_LLM_COMPILE_DEFS ${MLC_LLM_COMPILE_DEFS} XGRAMMAR_ENABLE_LOG_DEBUG=0)
@@ -97,41 +95,46 @@ target_include_directories(mlc_llm_objs PRIVATE ${XGRAMMAR_PATH}/include)
9795
9896add_library (mlc_llm SHARED $<TARGET_OBJECTS:mlc_llm_objs>)
9997add_library (mlc_llm_static STATIC $<TARGET_OBJECTS:mlc_llm_objs>)
100- add_dependencies (mlc_llm_static tokenizers_cpp sentencepiece-static tokenizers_c tvm_runtime)
98+ add_dependencies (mlc_llm_static tokenizers_cpp sentencepiece-static
99+ tokenizers_c tvm_runtime)
101100set_target_properties (mlc_llm_static PROPERTIES OUTPUT_NAME mlc_llm)
102101
103102target_link_libraries (mlc_llm PUBLIC tvm_runtime)
104103target_link_libraries (mlc_llm PRIVATE tokenizers_cpp)
105104
106- find_library (
107- FLASH_ATTN_LIBRARY flash_attn
108- HINTS ${TVM_SOURCE_DIR} /*/3rdparty/libflash_attn/src
109- )
105+ find_library (FLASH_ATTN_LIBRARY flash_attn
106+ HINTS ${TVM_SOURCE_DIR} /*/3rdparty/libflash_attn/src)
110107
111- if (FLASH_ATTN_LIBRARY STREQUAL "FLASH_ATTN_LIBRARY-NOTFOUND" )
112- message (WARNING "Cannot find libflash_attn. The model must not have been built with --use-flash-attn-mqa option." )
113- else ()
108+ if (FLASH_ATTN_LIBRARY STREQUAL "FLASH_ATTN_LIBRARY-NOTFOUND" )
109+ message (
110+ WARNING
111+ "Cannot find libflash_attn. The model must not have been built with --use-flash-attn-mqa option."
112+ )
113+ else ()
114114 target_link_libraries (mlc_llm PUBLIC -Wl,--no -as-needed ${FLASH_ATTN_LIBRARY} )
115115endif ()
116116
117117if (CMAKE_BUILD_TYPE STREQUAL "Debug" )
118- target_compile_definitions (mlc_llm PRIVATE "TVM_LOG_DEBUG" )
119- target_compile_definitions (mlc_llm_objs PRIVATE "TVM_LOG_DEBUG" )
120- target_compile_definitions (mlc_llm_static PRIVATE "TVM_LOG_DEBUG" )
118+ target_compile_definitions (mlc_llm PRIVATE "TVM_LOG_DEBUG" )
119+ target_compile_definitions (mlc_llm_objs PRIVATE "TVM_LOG_DEBUG" )
120+ target_compile_definitions (mlc_llm_static PRIVATE "TVM_LOG_DEBUG" )
121121endif ()
122122
123- if (BUILD_CPP_TEST)
123+ if (BUILD_CPP_TEST)
124124 message (STATUS "Building cpp unittests" )
125125 add_subdirectory (3rdparty/googletest)
126- file (GLOB_RECURSE MLC_LLM_TEST_SRCS ${PROJECT_SOURCE_DIR} /tests/cpp/*unittest.cc)
126+ file (GLOB_RECURSE MLC_LLM_TEST_SRCS
127+ ${PROJECT_SOURCE_DIR} /tests/cpp/*unittest.cc)
127128 add_executable (mlc_llm_cpp_tests ${MLC_LLM_TEST_SRCS} )
128129 target_include_directories (mlc_llm_cpp_tests PRIVATE ${MLC_LLM_INCLUDES} )
129- target_include_directories (mlc_llm_cpp_tests PRIVATE ${PROJECT_SOURCE_DIR} /cpp)
130- target_include_directories (mlc_llm_cpp_tests PRIVATE ${gtest_SOURCE_DIR} /include ${gtest_SOURCE_DIR} )
130+ target_include_directories (mlc_llm_cpp_tests
131+ PRIVATE ${PROJECT_SOURCE_DIR} /cpp)
132+ target_include_directories (
133+ mlc_llm_cpp_tests PRIVATE ${gtest_SOURCE_DIR} /include ${gtest_SOURCE_DIR} )
131134 target_link_libraries (mlc_llm_cpp_tests PUBLIC mlc_llm gtest gtest_main)
132135endif (BUILD_CPP_TEST)
133136
134- if (CMAKE_SYSTEM_NAME STREQUAL "Android" )
137+ if (CMAKE_SYSTEM_NAME STREQUAL "Android" )
135138 target_link_libraries (mlc_llm PRIVATE log )
136139 target_link_libraries (tokenizers_cpp PRIVATE log )
137140endif ()
@@ -140,42 +143,43 @@ add_library(mlc_llm_module SHARED $<TARGET_OBJECTS:mlc_llm_objs>)
140143target_link_libraries (mlc_llm_module PUBLIC tvm)
141144target_link_libraries (mlc_llm_module PRIVATE tokenizers_cpp)
142145
143- set_property (TARGET mlc_llm_module APPEND PROPERTY LINK_OPTIONS "${MLC_VISIBILITY_FLAG} " )
144- set_property (TARGET mlc_llm APPEND PROPERTY LINK_OPTIONS "${MLC_VISIBILITY_FLAG} " )
146+ set_property (
147+ TARGET mlc_llm_module
148+ APPEND
149+ PROPERTY LINK_OPTIONS "${MLC_VISIBILITY_FLAG} " )
150+ set_property (
151+ TARGET mlc_llm
152+ APPEND
153+ PROPERTY LINK_OPTIONS "${MLC_VISIBILITY_FLAG} " )
145154
146155find_program (CARGO_EXECUTABLE cargo)
147156
148157if (NOT CARGO_EXECUTABLE)
149- message (FATAL_ERROR "Cargo is not found! Please install cargo." )
158+ message (FATAL_ERROR "Cargo is not found! Please install cargo." )
150159endif ()
151160
152- # when this option is on,
153- # we install all static lib deps into lib
154- if (MLC_LLM_INSTALL_STATIC_LIB)
155- install (TARGETS
156- mlc_llm_static
157- tokenizers_cpp
158- sentencepiece-static
159- tvm_runtime
160- LIBRARY DESTINATION lib${LIB_SUFFIX}
161- )
161+ # when this option is on, we install all static lib deps into lib
162+ if (MLC_LLM_INSTALL_STATIC_LIB)
163+ install (TARGETS mlc_llm_static tokenizers_cpp sentencepiece-static tvm_runtime
164+ LIBRARY DESTINATION lib${LIB_SUFFIX} )
162165 # tokenizers need special handling as it builds from rust
163166 if (MSVC )
164167 install (FILES ${CMAKE_CURRENT_BINARY_DIR} /tokenizers/libtokenizers_c.lib
165- DESTINATION lib${LIB_SUFFIX}
166- )
168+ DESTINATION lib${LIB_SUFFIX} )
167169 else ()
168170 install (FILES ${CMAKE_CURRENT_BINARY_DIR} /tokenizers/libtokenizers_c.a
169- DESTINATION lib${LIB_SUFFIX}
170- )
171+ DESTINATION lib${LIB_SUFFIX} )
171172 endif ()
172173else ()
173- install (TARGETS tvm_runtime mlc_llm mlc_llm_module
174- mlc_llm_static
175- tokenizers_cpp
176- sentencepiece-static
177- RUNTIME_DEPENDENCY_SET tokenizers_c
174+ install (
175+ TARGETS tvm_runtime
176+ mlc_llm
177+ mlc_llm_module
178+ mlc_llm_static
179+ tokenizers_cpp
180+ sentencepiece-static
181+ RUNTIME_DEPENDENCY_SET
182+ tokenizers_c
178183 RUNTIME DESTINATION bin
179- LIBRARY DESTINATION lib${LIB_SUFFIX}
180- )
184+ LIBRARY DESTINATION lib${LIB_SUFFIX} )
181185endif ()
0 commit comments