@@ -528,22 +528,24 @@ endif()
528528
529529message ("${BUILD_MESSAGE} \n " )
530530
531+ # Common flags for WASM/JS build and Pyodide
532+ set (PSP_WASM_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} \
533+ --bind \
534+ --source-map-base \"\" \
535+ --memory-init-file 0 \
536+ --no-entry \
537+ -s NO_EXIT_RUNTIME=1 \
538+ -s NO_FILESYSTEM=1 \
539+ -s ALLOW_MEMORY_GROWTH=1 \
540+ -s MODULARIZE=1 \
541+ -s EXPORT_NAME=\" load_perspective\" \
542+ -s MAXIMUM_MEMORY=4gb \
543+ -s ERROR_ON_UNDEFINED_SYMBOLS=1 \
544+ -s ENVIRONMENT=worker \
545+ " )
546+
531547if (PSP_WASM_BUILD)
532- set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} \
533- --bind \
534- --source-map-base \"\" \
535- --memory-init-file 0 \
536- --no-entry \
537- -s NO_EXIT_RUNTIME=1 \
538- -s NO_FILESYSTEM=1 \
539- -s ALLOW_MEMORY_GROWTH=1 \
540- -s MODULARIZE=1 \
541- -s EXPORT_NAME=\" load_perspective\" \
542- -s MAXIMUM_MEMORY=4gb \
543- -s ERROR_ON_UNDEFINED_SYMBOLS=1 \
544- -s NODEJS_CATCH_EXIT=0 \
545- -s NODEJS_CATCH_REJECTION=0 \
546- " )
548+ set (CMAKE_EXE_LINKER_FLAGS "${PSP_WASM_LINKER_FLAGS} " )
547549
548550 add_library (psp ${WASM_SOURCE_FILES} )
549551 target_compile_definitions (psp PRIVATE PSP_ENABLE_WASM=1)
@@ -565,27 +567,6 @@ if(PSP_WASM_BUILD)
565567 set_target_properties (perspective_esm PROPERTIES RUNTIME_OUTPUT_DIRECTORY "./web/" )
566568 set_target_properties (perspective_esm PROPERTIES OUTPUT_NAME "perspective.cpp" )
567569elseif (PSP_CPP_BUILD OR PSP_PYTHON_BUILD)
568- if (PSP_PYODIDE)
569- # TODO(tom): this is a straight copy of PSP_WASM_BUILD, merge them
570- # TODO(tom): determine which of these we shouldn't bother setting
571- # because pyodide's pywasmcross.py overrides them
572- set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} \
573- --bind \
574- --source-map-base \"\" \
575- --memory-init-file 0 \
576- --no-entry \
577- -s EXPORT_ES6=1 \
578- -s NO_EXIT_RUNTIME=1 \
579- -s NO_FILESYSTEM=1 \
580- -s ALLOW_MEMORY_GROWTH=1 \
581- -s MODULARIZE=1 \
582- -s EXPORT_NAME=\" load_perspective\" \
583- -s MAXIMUM_MEMORY=4gb \
584- -s USE_ES6_IMPORT_META=0 \
585- -s ERROR_ON_UNDEFINED_SYMBOLS=1 \
586- -s ENVIRONMENT=web,webview,worker \
587- " )
588- endif ()
589570 if (NOT WIN32 )
590571 set (CMAKE_SHARED_LIBRARY_SUFFIX .so)
591572
@@ -613,6 +594,7 @@ elseif(PSP_CPP_BUILD OR PSP_PYTHON_BUILD)
613594 add_library (psp STATIC ${PYTHON_SOURCE_FILES} )
614595 add_library (binding SHARED ${PYTHON_BINDING_SOURCE_FILES} )
615596 if (PSP_PYODIDE)
597+ set (CMAKE_EXE_LINKER_FLAGS "${PSP_WASM_LINKER_FLAGS} " )
616598 set (PSP_PYTHON_DEFS PSP_ENABLE_WASM=1)
617599 else ()
618600 set (PSP_PYTHON_DEFS PSP_ENABLE_PYTHON_THREADING=1)
@@ -663,15 +645,15 @@ elseif(PSP_CPP_BUILD OR PSP_PYTHON_BUILD)
663645 endif ()
664646
665647 if (PSP_CPP_BUILD_STRICT AND NOT WIN32 )
666- # target_compile_options(psp PRIVATE -Wall -Werror)
667- # target_compile_options(psp PRIVATE $<$<CONFIG:DEBUG>:-fPIC -O0>)
648+ target_compile_options (psp PRIVATE -Wall -Werror)
649+ target_compile_options (psp PRIVATE $<$<CONFIG:DEBUG>:-fPIC -O0>)
668650
669651 if (PSP_PYTHON_BUILD AND NOT PSP_PYODIDE)
670652 target_compile_options (binding PRIVATE $<$<CONFIG:DEBUG>:-fPIC -O0>)
671653 endif ()
672654 elseif (WIN32 )
673- # target_compile_definitions(psp PRIVATE PERSPECTIVE_EXPORTS=1)
674- # target_compile_definitions(psp PRIVATE WIN32=1)
675- # target_compile_definitions(psp PRIVATE _WIN32=1)
655+ target_compile_definitions (psp PRIVATE PERSPECTIVE_EXPORTS=1)
656+ target_compile_definitions (psp PRIVATE WIN32 =1)
657+ target_compile_definitions (psp PRIVATE _WIN32=1)
676658 endif ()
677659endif ()
0 commit comments