@@ -6,7 +6,7 @@ find_package(fmt REQUIRED)
66find_package (spdlog REQUIRED )
77find_package (cxxopts REQUIRED )
88find_package (jsoncpp REQUIRED )
9- find_package (LLVM REQUIRED )
9+ find_package (LLVM REQUIRED CONFIG )
1010include (CTest )
1111if (WIN32 )
1212 set (WASI_SDK_DIR D:/wasi-sdk/)
@@ -53,7 +53,7 @@ else ()
5353 set (WAMR_BUILD_LIBC_UVWASI 1)
5454 set (CMAKE_MSVC_RUNTIME_LIBRARY "" )
5555 set (CMAKE_GENERATOR_PLATFORM "" )
56- set (CMAKE_CXX_FLAGS "/MD /EHsc" )
56+ set (CMAKE_CXX_FLAGS "/MD /EHsc /DNOMINMAX " )
5757 find_library (DETOURS_LIBRARY detours REQUIRED )
5858 find_path (DETOURS_INCLUDE_DIRS "detours/detours.h" )
5959 find_library (DETOURS_LIBRARY detours REQUIRED )
@@ -101,8 +101,14 @@ set(WAMR_BUILD_JIT 0)
101101set (WAMR_BUILD_DEBUG_INTERP 0)
102102set (WAMR_BUILD_DEBUG_AOT 0)
103103set (WAMR_BUILD_FAST_JIT 0)
104- set (WAMR_BUILD_WASI_NN 1)
105- set (WAMR_BUILD_WASI_NN_ENABLE_GPU 1)
104+ if (WIN32 )
105+ # Disable WASI-NN on Windows due to TensorFlow Lite header compatibility issues
106+ set (WAMR_BUILD_WASI_NN 0)
107+ set (WAMR_BUILD_WASI_NN_ENABLE_GPU 0)
108+ else ()
109+ set (WAMR_BUILD_WASI_NN 1)
110+ set (WAMR_BUILD_WASI_NN_ENABLE_GPU 1)
111+ endif ()
106112set (WAMR_BUILD_LIBC_BUILTIN 1)
107113set (WAMR_BUILD_LIBC_WASI 1)
108114set (WAMR_BUILD_DUMP_CALL_STACK 1)
@@ -123,13 +129,16 @@ set(CMAKE_MACOSX_RPATH True)
123129set (WAMR_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR } /lib/wasm-micro-runtime)
124130
125131include (${WAMR_ROOT_DIR} /build-scripts/runtime_lib.cmake )
126- add_library (vmlib ${WAMR_RUNTIME_LIB_SOURCE} )
132+ add_library (vmlib STATIC ${WAMR_RUNTIME_LIB_SOURCE} )
127133
128134include (${SHARED_DIR} /utils/uncommon/shared_uncommon.cmake )
129135include_directories (${CMAKE_CURRENT_SOURCE_DIR } /include ${CMAKE_CURRENT_SOURCE_DIR } /lib/wasm-micro-runtime/core/iwasm/aot ${CMAKE_CURRENT_SOURCE_DIR } /lib/yalantinglibs/include ${BLAS_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR } /lib/libcrafter/libcrafter/ ${jsoncpp_INCLUDE_DIRS} )
130136
131- set (BUILD_TESTING OFF CACHE BOOL "Disable s2n-tls tests" FORCE )
132- add_subdirectory (lib/s2n-tls )
137+ if (NOT WIN32 )
138+ # s2n-tls is not compatible with Windows
139+ set (BUILD_TESTING OFF CACHE BOOL "Disable s2n-tls tests" FORCE )
140+ add_subdirectory (lib/s2n-tls )
141+ endif ()
133142
134143if (MVVM_BUILD_BENCH)
135144 add_subdirectory (bench )
@@ -150,14 +159,30 @@ set(GPU_CC_SOURCES
150159 src/wamr_gpu_cc_amd.cpp
151160 src/wamr_gpu_cc_intel.cpp
152161)
153- add_library (MVVM_export ${SOURCE_FILES} ${GPU_CC_SOURCES} ${UNCOMMON_SHARED_SOURCE} )
162+ add_library (MVVM_export SHARED ${SOURCE_FILES} ${GPU_CC_SOURCES} ${UNCOMMON_SHARED_SOURCE} )
163+ target_compile_definitions (MVVM_export PRIVATE MVVM_EXPORT_EXPORTS )
154164add_executable (MVVM_restore src/restore.cpp ${UNCOMMON_SHARED_SOURCE} )
155165add_executable (MVVM_checkpoint src/checkpoint.cpp ${UNCOMMON_SHARED_SOURCE} )
156- add_executable (MVVM_profile src/profile.cpp ${UNCOMMON_SHARED_SOURCE} )
166+ if (NOT WIN32 )
167+ # Profile tool uses Unix-specific features
168+ add_executable (MVVM_profile src/profile.cpp ${UNCOMMON_SHARED_SOURCE} )
169+ endif ()
157170include_directories (${LLVM_INCLUDE_DIRS} ${s2n_SOURCE_DIR } /api )
158171add_definitions (${LLVM_DEFINITIONS} )
159- target_link_libraries (MVVM_export fmt::fmt spdlog::spdlog jsoncpp_lib ${BLAS_LIBRARIES} ${OPENSSL_CRYPTO_LIBRARY} ${OPENSSL_SSL_LIBRARY} ZLIB::ZLIB zstd dl )
160- target_link_libraries (MVVM_restore ${LLVM_LIBRARIES} LLVM fmt::fmt spdlog::spdlog cxxopts::cxxopts ${BLAS_LIBRARIES} MVVM_export vmlib s2n tensorflow-lite )
161- target_link_libraries (MVVM_checkpoint ${LLVM_LIBRARIES} LLVM fmt::fmt spdlog::spdlog cxxopts::cxxopts ${BLAS_LIBRARIES} MVVM_export vmlib s2n tensorflow-lite )
162- target_link_libraries (MVVM_profile ${LLVM_LIBRARIES} LLVM fmt::fmt spdlog::spdlog cxxopts::cxxopts ${BLAS_LIBRARIES} MVVM_export vmlib s2n tensorflow-lite )
172+
173+ # Get LLVM components
174+ llvm_map_components_to_libnames (llvm_libs Support Core IRReader )
175+
176+ if (WIN32 )
177+ # Windows specific libraries
178+ target_link_libraries (MVVM_export fmt::fmt spdlog::spdlog jsoncpp_lib ${BLAS_LIBRARIES} ${OPENSSL_CRYPTO_LIBRARY} ${OPENSSL_SSL_LIBRARY} ZLIB::ZLIB $<IF :$<TARGET_EXISTS :zstd ::libzstd_shared >,zstd ::libzstd_shared ,zstd ::libzstd_static >)
179+ target_link_libraries (MVVM_restore ${llvm_libs} fmt::fmt spdlog::spdlog cxxopts::cxxopts ${BLAS_LIBRARIES} MVVM_export vmlib ${WIN_EXTRA_LIBS} )
180+ target_link_libraries (MVVM_checkpoint ${llvm_libs} fmt::fmt spdlog::spdlog cxxopts::cxxopts ${BLAS_LIBRARIES} MVVM_export vmlib ${WIN_EXTRA_LIBS} )
181+ else ()
182+ # Non-Windows platforms
183+ target_link_libraries (MVVM_export fmt::fmt spdlog::spdlog jsoncpp_lib ${BLAS_LIBRARIES} ${OPENSSL_CRYPTO_LIBRARY} ${OPENSSL_SSL_LIBRARY} ZLIB::ZLIB zstd dl )
184+ target_link_libraries (MVVM_restore ${LLVM_LIBRARIES} fmt::fmt spdlog::spdlog cxxopts::cxxopts ${BLAS_LIBRARIES} MVVM_export vmlib s2n tensorflow-lite )
185+ target_link_libraries (MVVM_checkpoint ${LLVM_LIBRARIES} fmt::fmt spdlog::spdlog cxxopts::cxxopts ${BLAS_LIBRARIES} MVVM_export vmlib s2n tensorflow-lite )
186+ target_link_libraries (MVVM_profile ${LLVM_LIBRARIES} fmt::fmt spdlog::spdlog cxxopts::cxxopts ${BLAS_LIBRARIES} MVVM_export vmlib s2n tensorflow-lite )
187+ endif ()
163188add_definitions (-DCXXOPTS_NO_RTTI=1 )
0 commit comments