@ -29,6 +29,7 @@ option(WASI_SDK_DEBUG_PREFIX_MAP "Pass `-fdebug-prefix-map` for built artifacts"
option ( WASI_SDK_INCLUDE_TESTS "Whether or not to build tests by default" OFF )
option ( WASI_SDK_INSTALL_TO_CLANG_RESOURCE_DIR "Whether or not to modify the compiler's resource directory" OFF )
option ( WASI_SDK_LTO "Whether or not to build LTO assets" ON )
option ( WASI_SDK_BUILD_SHARED "Whether or not to build shared libraries when supported" ON )
set ( WASI_SDK_EXCEPTIONS "${EXCEPTIONS_DEFAULT}" CACHE STRING "Whether or not C++ exceptions are enabled" )
set ( WASI_SDK_CPU_CFLAGS "-mcpu=lime1" CACHE STRING "CFLAGS to specify wasm features to enable" )
@ -192,9 +193,14 @@ function(define_wasi_libc_sub target target_suffix lto)
set ( extra_cmake_args )
# C o n f i g u r e L T O i n w a s i l i b c i f i t ' s e n a b l e d . B e s u r e t o d i s a b l e s h a r e d
# l i b r a r i e s a s w e l l s i n c e t h a t ' s n o t c u r r e n t l y s u p p o r t e d .
# l i b r a r i e s a s w e l l s i n c e t h a t ' s n o t c u r r e n t l y s u p p o r t e d w i t h L T O .
if ( lto )
list ( APPEND extra_cmake_args -DLTO=full -DBUILD_SHARED=OFF )
list ( APPEND extra_cmake_args -DLTO=full )
endif ( )
# W A S I _ S D K _ B U I L D _ S H A R E D = O F F a l l o w s p r o d u c i n g a s t a t i c - o n l y s y s r o o t ; t h e L T O
# b r a n c h a b o v e a l r e a d y i m p l i e s s h a r e d - o f f , s o t h e t w o c o n d i t i o n s a r e c o m b i n e d .
if ( lto OR NOT WASI_SDK_BUILD_SHARED )
list ( APPEND extra_cmake_args -DBUILD_SHARED=OFF )
endif ( )
ExternalProject_Add ( wasi-libc- ${ target } ${ target_suffix } -build
@ -292,6 +298,15 @@ function(define_libcxx_sub target target_suffix extra_target_flags extra_libdir_
list ( APPEND extra_flags -Wno-deprecated )
endif ( )
# ` s h a r e d ` i s c o m p u t e d h e r e , a f t e r t h e e x c e p t i o n s b r a n c h a b o v e m a y h a v e f o r c e d
# p i c O F F , s o t h a t L I B C X X _ E N A B L E _ S H A R E D / L I B C X X A B I _ E N A B L E _ S H A R E D / L I B U N W I N D _ E N A B L E _ S H A R E D
# s t a y c o n s i s t e n t w i t h t h e f i n a l v a l u e o f C M A K E _ P O S I T I O N _ I N D E P E N D E N T _ C O D E .
if ( WASI_SDK_BUILD_SHARED AND pic )
set ( shared ON )
else ( )
set ( shared OFF )
endif ( )
set ( extra_cflags_list ${ CMAKE_C_FLAGS } ${ extra_flags } )
list ( JOIN extra_cflags_list " " extra_cflags )
set ( extra_cxxflags_list ${ CMAKE_CXX_FLAGS } ${ extra_flags } )
@ -311,7 +326,7 @@ function(define_libcxx_sub target target_suffix extra_target_flags extra_libdir_
- D L I B C X X _ H A S _ E X T E R N A L _ T H R E A D _ A P I : B O O L = O F F
- D L I B C X X _ H A S _ W I N 3 2 _ T H R E A D _ A P I : B O O L = O F F
- D L L V M _ C O M P I L E R _ C H E C K E D = O N
- D L I B C X X _ E N A B L E _ S H A R E D : B O O L = $ { pi c }
- D L I B C X X _ E N A B L E _ S H A R E D : B O O L = $ { sh a r e d }
- D L I B C X X _ E N A B L E _ E X C E P T I O N S : B O O L = $ { e x c e p t i o n s }
- D L I B C X X _ E N A B L E _ F I L E S Y S T E M : B O O L = O N
- D L I B C X X _ E N A B L E _ A B I _ L I N K E R _ S C R I P T : B O O L = O F F
@ -319,14 +334,14 @@ function(define_libcxx_sub target target_suffix extra_target_flags extra_libdir_
- D L I B C X X _ H A S _ M U S L _ L I B C : B O O L = O F F
- D L I B C X X _ A B I _ V E R S I O N = 2
- D L I B C X X A B I _ E N A B L E _ E X C E P T I O N S : B O O L = $ { e x c e p t i o n s }
- D L I B C X X A B I _ E N A B L E _ S H A R E D : B O O L = $ { pi c }
- D L I B C X X A B I _ E N A B L E _ S H A R E D : B O O L = $ { sh a r e d }
- D L I B C X X A B I _ S I L E N T _ T E R M I N A T E : B O O L = O N
- D L I B C X X A B I _ E N A B L E _ T H R E A D S : B O O L = O N
- D L I B C X X A B I _ H A S _ P T H R E A D _ A P I : B O O L = O N
- D L I B C X X A B I _ H A S _ E X T E R N A L _ T H R E A D _ A P I : B O O L = O F F
- D L I B C X X A B I _ H A S _ W I N 3 2 _ T H R E A D _ A P I : B O O L = O F F
- D L I B C X X A B I _ U S E _ L L V M _ U N W I N D E R : B O O L = $ { e x c e p t i o n s }
- D L I B U N W I N D _ E N A B L E _ S H A R E D : B O O L = $ { pi c }
- D L I B U N W I N D _ E N A B L E _ S H A R E D : B O O L = $ { sh a r e d }
- D L I B U N W I N D _ E N A B L E _ T H R E A D S : B O O L = O N
- D L I B U N W I N D _ U S E _ C O M P I L E R _ R T : B O O L = O N
- D L I B U N W I N D _ I N C L U D E _ T E S T S : B O O L = O F F