@@ -111,39 +111,41 @@ if (("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") OR ("${CMAKE_CXX_COMPILER_ID}" MA
111
111
# http://stackoverflow.com/questions/21617158/how-to-silence-unused-command-line-argument-error-with-clang-without-disabling-i
112
112
add_compile_options (-Qunused-arguments )
113
113
elseif (EMSCRIPTEN )
114
- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS } --memory-init-file 0" )
114
+ set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS } --memory-init-file 0" )
115
115
# Leave only exported symbols as public and aggressively remove others
116
116
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fdata-sections -ffunction-sections -fvisibility=hidden" )
117
117
# Optimisation level
118
118
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3" )
119
119
# Re-enable exception catching (optimisations above -O1 disable it)
120
120
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -s DISABLE_EXCEPTION_CATCHING=0" )
121
+ set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -s DISABLE_EXCEPTION_CATCHING=0" )
121
122
# Remove any code related to exit (such as atexit)
122
- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS } -s EXIT_RUNTIME=0" )
123
+ set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS } -s EXIT_RUNTIME=0" )
123
124
# Remove any code related to filesystem access
124
- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS } -s FILESYSTEM=0" )
125
+ set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS } -s FILESYSTEM=0" )
125
126
# Allow memory growth, but disable some optimisations
126
- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS } -s ALLOW_MEMORY_GROWTH=1" )
127
+ set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS } -s ALLOW_MEMORY_GROWTH=1" )
127
128
# Disable eval()
128
- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS } -s DYNAMIC_EXECUTION=0" )
129
+ set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS } -s DYNAMIC_EXECUTION=0" )
129
130
# Disable greedy exception catcher
130
- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS } -s NODEJS_CATCH_EXIT=0" )
131
+ set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS } -s NODEJS_CATCH_EXIT=0" )
131
132
# Abort if linking results in any undefined symbols
132
133
# Note: this is on by default in the CMake Emscripten module which we aren't using
133
- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS } -s ERROR_ON_UNDEFINED_SYMBOLS=1" )
134
+ set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS } -s ERROR_ON_UNDEFINED_SYMBOLS=1" )
134
135
# Disallow deprecated emscripten build options.
135
136
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -s STRICT=1" )
137
+ set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -s STRICT=1" )
136
138
# Export the Emscripten-generated auxiliary methods which are needed by solc-js.
137
139
# Which methods of libsolc itself are exported is specified in libsolc/CMakeLists.txt.
138
- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS } -s EXTRA_EXPORTED_RUNTIME_METHODS=['cwrap','addFunction','removeFunction','UTF8ToString','lengthBytesUTF8','stringToUTF8','setValue']" )
140
+ set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS } -s EXTRA_EXPORTED_RUNTIME_METHODS=['cwrap','addFunction','removeFunction','UTF8ToString','lengthBytesUTF8','stringToUTF8','setValue']" )
139
141
# Build for webassembly target.
140
- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS } -s WASM=1" )
142
+ set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS } -s WASM=1" )
141
143
# Set webassembly build to synchronous loading.
142
- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS } -s WASM_ASYNC_COMPILATION=0" )
144
+ set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS } -s WASM_ASYNC_COMPILATION=0" )
143
145
# Output a single js file with the wasm binary embedded as base64 string.
144
- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS } -s SINGLE_FILE=1" )
146
+ set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS } -s SINGLE_FILE=1" )
145
147
# Allow new functions to be added to the wasm module via addFunction.
146
- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS } -s ALLOW_TABLE_GROWTH=1" )
148
+ set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS } -s ALLOW_TABLE_GROWTH=1" )
147
149
# Disable warnings about not being pure asm.js due to memory growth.
148
150
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-almost-asm" )
149
151
endif ()
0 commit comments