diff --git a/CMakeLists.txt b/CMakeLists.txt index d24fa080ae..90a3f60d34 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -50,6 +50,8 @@ if (EMSCRIPTEN) option(LLAMA_BUILD_HTML "llama: build HTML file" ON) if (LLAMA_BUILD_HTML) set(CMAKE_EXECUTABLE_SUFFIX ".html") + else() + set(CMAKE_EXECUTABLE_SUFFIX ".cjs") endif() else() if (MINGW) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index e556a7773b..2048917675 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -14,6 +14,12 @@ function(llama_build source) install(TARGETS ${TEST_TARGET} RUNTIME) endfunction() +if (EMSCRIPTEN) + set(LLAMA_TEST_LAUNCHER ${CMAKE_CROSSCOMPILING_EMULATOR}) +else() + set(LLAMA_TEST_LAUNCHER) +endif() + function(llama_test target) include(CMakeParseArguments) set(options) @@ -38,7 +44,7 @@ function(llama_test target) add_test( NAME ${TEST_NAME} WORKING_DIRECTORY ${LLAMA_TEST_WORKING_DIRECTORY} - COMMAND $ + COMMAND ${LLAMA_TEST_LAUNCHER} $ ${LLAMA_TEST_ARGS}) set_property(TEST ${TEST_NAME} PROPERTY LABELS ${LLAMA_TEST_LABEL}) @@ -63,10 +69,16 @@ function(llama_test_cmd target) set(TEST_NAME ${target}) endif() + if (TARGET ${target}) + set(cmd $) + else() + set(cmd ${target}) + endif() + add_test( NAME ${TEST_NAME} WORKING_DIRECTORY ${LLAMA_TEST_WORKING_DIRECTORY} - COMMAND ${target} + COMMAND ${LLAMA_TEST_LAUNCHER} ${cmd} ${LLAMA_TEST_ARGS}) set_property(TEST ${TEST_NAME} PROPERTY LABELS ${LLAMA_TEST_LABEL}) @@ -106,7 +118,7 @@ function(llama_build_and_test source) add_test( NAME ${TEST_TARGET} WORKING_DIRECTORY ${LLAMA_TEST_WORKING_DIRECTORY} - COMMAND $ + COMMAND ${LLAMA_TEST_LAUNCHER} $ ${LLAMA_TEST_ARGS}) set_property(TEST ${TEST_TARGET} PROPERTY LABELS ${LLAMA_TEST_LABEL}) @@ -248,9 +260,11 @@ if (NOT GGML_BACKEND_DL) endif() # libmtmd -set(LLAMA_TEST_NAME test-mtmd-c-api) -llama_build_and_test(test-mtmd-c-api.c) -target_link_libraries(${LLAMA_TEST_NAME} PRIVATE mtmd) +if (NOT EMSCRIPTEN) # fails to build under emscripten because mtmd.h is not found + set(LLAMA_TEST_NAME test-mtmd-c-api) + llama_build_and_test(test-mtmd-c-api.c) + target_link_libraries(${LLAMA_TEST_NAME} PRIVATE mtmd) +endif() # dummy executable - not installed get_filename_component(TEST_TARGET test-c.c NAME_WE)