From 27cc5d58bf0655b4cb84e05e975992a969f51344 Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 25 Nov 2025 11:43:11 -0500 Subject: [PATCH] Tests/RunCMake/Emscripten: Add tests covering try_compile COPY_FILE Compiler inspection relies on `try_compile`'s `COPY_FILE` option to copy the `.wasm` file because the `.js` does not have the `INFO:size` string. Issue: #27421 --- Tests/RunCMake/Emscripten/C-CheckTypeSize-stdout.txt | 2 ++ Tests/RunCMake/Emscripten/C-CheckTypeSize.cmake | 6 ++++++ Tests/RunCMake/Emscripten/C-enable-stdout.txt | 2 ++ Tests/RunCMake/Emscripten/C-enable.cmake | 7 +++++++ Tests/RunCMake/Emscripten/RunCMakeTest.cmake | 11 +++++++++++ 5 files changed, 28 insertions(+) create mode 100644 Tests/RunCMake/Emscripten/C-CheckTypeSize-stdout.txt create mode 100644 Tests/RunCMake/Emscripten/C-CheckTypeSize.cmake create mode 100644 Tests/RunCMake/Emscripten/C-enable-stdout.txt create mode 100644 Tests/RunCMake/Emscripten/C-enable.cmake diff --git a/Tests/RunCMake/Emscripten/C-CheckTypeSize-stdout.txt b/Tests/RunCMake/Emscripten/C-CheckTypeSize-stdout.txt new file mode 100644 index 0000000000..4ac3705c22 --- /dev/null +++ b/Tests/RunCMake/Emscripten/C-CheckTypeSize-stdout.txt @@ -0,0 +1,2 @@ +-- SIZEOF_INT='[1-9][0-9]*' +-- HAVE_SIZEOF_INT='TRUE' diff --git a/Tests/RunCMake/Emscripten/C-CheckTypeSize.cmake b/Tests/RunCMake/Emscripten/C-CheckTypeSize.cmake new file mode 100644 index 0000000000..0187645fdf --- /dev/null +++ b/Tests/RunCMake/Emscripten/C-CheckTypeSize.cmake @@ -0,0 +1,6 @@ +enable_language(C) + +include(CheckTypeSize) +check_type_size(int SIZEOF_INT) +message(STATUS "SIZEOF_INT='${SIZEOF_INT}'") +message(STATUS "HAVE_SIZEOF_INT='${HAVE_SIZEOF_INT}'") diff --git a/Tests/RunCMake/Emscripten/C-enable-stdout.txt b/Tests/RunCMake/Emscripten/C-enable-stdout.txt new file mode 100644 index 0000000000..c14ab8a3a1 --- /dev/null +++ b/Tests/RunCMake/Emscripten/C-enable-stdout.txt @@ -0,0 +1,2 @@ +-- CMAKE_C_BYTE_ORDER='LITTLE_ENDIAN' +-- CMAKE_C_SIZEOF_DATA_PTR='[1-9][0-9]*' diff --git a/Tests/RunCMake/Emscripten/C-enable.cmake b/Tests/RunCMake/Emscripten/C-enable.cmake new file mode 100644 index 0000000000..7878def517 --- /dev/null +++ b/Tests/RunCMake/Emscripten/C-enable.cmake @@ -0,0 +1,7 @@ +enable_language(C) +foreach(var IN ITEMS + CMAKE_C_BYTE_ORDER + CMAKE_C_SIZEOF_DATA_PTR + ) + message(STATUS "${var}='${${var}}'") +endforeach() diff --git a/Tests/RunCMake/Emscripten/RunCMakeTest.cmake b/Tests/RunCMake/Emscripten/RunCMakeTest.cmake index 8df0ee47d5..53abd1b24e 100644 --- a/Tests/RunCMake/Emscripten/RunCMakeTest.cmake +++ b/Tests/RunCMake/Emscripten/RunCMakeTest.cmake @@ -40,6 +40,12 @@ foreach(_emscripten_toolchain IN LISTS _emscripten_toolchains) set(cxx_comp ${BIN_DIR}/em++${EMCC_SUFFIX}) set(comp_ar ${BIN_DIR}/emar${EMCC_SUFFIX}) + # Compiler inspection. + run_cmake_with_options(C-enable + -DCMAKE_SYSTEM_NAME=Emscripten + -DCMAKE_C_COMPILER=${c_comp} + ) + # Create an executable from .c sources only. run_toolchain(C-exe -DCMAKE_SYSTEM_NAME=Emscripten @@ -76,4 +82,9 @@ foreach(_emscripten_toolchain IN LISTS _emscripten_toolchains) ) run_cmake_target(C-WHOLE_ARCHIVE link-exe main) run_cmake_target(C-WHOLE_ARCHIVE circular-exe main_circular) + + run_cmake_with_options(C-CheckTypeSize + -DCMAKE_SYSTEM_NAME=Emscripten + -DCMAKE_C_COMPILER=${c_comp} + ) endforeach()