cmake_minimum_required(VERSION 3.16)
project(helloworld)

add_executable(helloworld main.cpp)

set_property(TARGET helloworld PROPERTY CXX_STANDARD_REQUIRED ON)
set_property(TARGET helloworld PROPERTY CXX_STANDARD 11)

# Items marked with '***' are tested to be identical across CMake configures
# with Emscripten Clang when targeting native vs Emscripten.

message(STATUS "*** CMAKE_VERSION is ${CMAKE_VERSION}")
message(STATUS "*** CMAKE_C_COMPILER_VERSION is ${CMAKE_C_COMPILER_VERSION}")
message(STATUS "*** CMAKE_CXX_COMPILER_VERSION is ${CMAKE_CXX_COMPILER_VERSION}")
message(STATUS "CMAKE_C_COMPILER_TARGET is ${CMAKE_C_COMPILER_TARGET}")
message(STATUS "CMAKE_CXX_COMPILER_TARGET is ${CMAKE_CXX_COMPILER_TARGET}")
message(STATUS "CMAKE_C_PLATFORM_ID is ${CMAKE_C_PLATFORM_ID}")
message(STATUS "CMAKE_CXX_PLATFORM_ID is ${CMAKE_CXX_PLATFORM_ID}")

message(STATUS "*** CMAKE_C_COMPILE_FEATURES is ${CMAKE_C_COMPILE_FEATURES}")
message(STATUS "*** CMAKE_C90_COMPILE_FEATURES is ${CMAKE_C90_COMPILE_FEATURES}")
message(STATUS "*** CMAKE_C99_COMPILE_FEATURES is ${CMAKE_C99_COMPILE_FEATURES}")
message(STATUS "*** CMAKE_C11_COMPILE_FEATURES is ${CMAKE_C11_COMPILE_FEATURES}")

message(STATUS "*** CMAKE_CXX_COMPILE_FEATURES is ${CMAKE_CXX_COMPILE_FEATURES}")
message(STATUS "*** CMAKE_CXX98_COMPILE_FEATURES is ${CMAKE_CXX98_COMPILE_FEATURES}")
message(STATUS "*** CMAKE_CXX11_COMPILE_FEATURES is ${CMAKE_CXX11_COMPILE_FEATURES}")
message(STATUS "*** CMAKE_CXX14_COMPILE_FEATURES is ${CMAKE_CXX14_COMPILE_FEATURES}")
message(STATUS "*** CMAKE_CXX17_COMPILE_FEATURES is ${CMAKE_CXX17_COMPILE_FEATURES}")
message(STATUS "*** CMAKE_CXX20_COMPILE_FEATURES is ${CMAKE_CXX20_COMPILE_FEATURES}")
