diff --git a/CMakeLists.txt b/CMakeLists.txt index 4e9c2b91..d2cee2ab 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,9 +18,9 @@ if(NOT ${PREBUILD_RESULT} EQUAL 0) endif() if(MSVC) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /GR- /EHsc /utf-8 /O2") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHsc /utf-8 /O2") else() - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti -fexceptions -O2") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fexceptions -O2") endif() include_directories(${CMAKE_CURRENT_LIST_DIR}/include) diff --git a/README.md b/README.md index 818a48ed..6a4a5f61 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,6 @@ To compile it with your project, these flags must be set: + `--std=c++17` flag must be set + Exception must be enabled -+ RTTI is not required ### Example diff --git a/build.sh b/build.sh index 630e9e92..5c81603d 100644 --- a/build.sh +++ b/build.sh @@ -1,14 +1,16 @@ python3 prebuild.py SRC=$(find src/ -name "*.cpp") -FLAGS="-std=c++17 -fno-rtti -O2 -stdlib=libc++ -Wfatal-errors -Iinclude" +FLAGS="-std=c++17 -O2 -stdlib=libc++ -Wfatal-errors -Iinclude" if [[ "$OSTYPE" == "darwin"* ]]; then LIB_EXTENSION=".dylib" FLAGS="$FLAGS -undefined dynamic_lookup" + LINK_FLAGS="" else LIB_EXTENSION=".so" + LINK_FLAGS="-Wl,-rpath=." fi clang++ $FLAGS -o libpocketpy$LIB_EXTENSION $SRC -fPIC -shared -ldl # compile main.cpp and link to libpocketpy.so -clang++ $FLAGS -o main src2/main.cpp -L. -lpocketpy -Wl,-rpath=. \ No newline at end of file +clang++ $FLAGS -o main src2/main.cpp -L. -lpocketpy $LINK_FLAGS \ No newline at end of file diff --git a/build_web.sh b/build_web.sh index bfc5738a..9ed30b58 100644 --- a/build_web.sh +++ b/build_web.sh @@ -4,4 +4,4 @@ rm -rf web/lib mkdir web/lib SRC=$(find src/ -name "*.cpp") -em++ $SRC -Iinclude/ -fno-rtti -fexceptions -O3 -sEXPORTED_FUNCTIONS=_pkpy_new_repl,_pkpy_repl_input,_pkpy_new_vm -sEXPORTED_RUNTIME_METHODS=ccall -o web/lib/pocketpy.js \ No newline at end of file +em++ $SRC -Iinclude/ -fexceptions -O3 -sEXPORTED_FUNCTIONS=_pkpy_new_repl,_pkpy_repl_input,_pkpy_new_vm -sEXPORTED_RUNTIME_METHODS=ccall -o web/lib/pocketpy.js \ No newline at end of file diff --git a/docs/quick-start/installation.md b/docs/quick-start/installation.md index 3de66c02..28c4fa27 100644 --- a/docs/quick-start/installation.md +++ b/docs/quick-start/installation.md @@ -22,7 +22,6 @@ To compile it with your project, these flags must be set: + `--std=c++17` flag must be set + Exception must be enabled -+ RTTI is not required ### Example diff --git a/libpocketpy.dylib b/libpocketpy.dylib new file mode 100755 index 00000000..e53981b6 Binary files /dev/null and b/libpocketpy.dylib differ diff --git a/plugins/flutter/src/CMakeLists.txt b/plugins/flutter/src/CMakeLists.txt index 3f2faf3d..0007b96f 100644 --- a/plugins/flutter/src/CMakeLists.txt +++ b/plugins/flutter/src/CMakeLists.txt @@ -13,12 +13,6 @@ add_library(pocketpy SHARED "pocketpy.cpp" ) -if (NOT MSVC) - target_compile_options(pocketpy PRIVATE -fno-rtti) -else() - target_compile_options(pocketpy PRIVATE /GR- /EHsc) -endif() - set_target_properties(pocketpy PROPERTIES PUBLIC_HEADER pocketpy.h OUTPUT_NAME "pocketpy" diff --git a/run_profile.sh b/run_profile.sh index 18acc550..33b1cdcb 100644 --- a/run_profile.sh +++ b/run_profile.sh @@ -1,6 +1,6 @@ python3 prebuild.py SRC=$(find src/ -name "*.cpp") -clang++ -pg -O1 -std=c++17 -fno-rtti -stdlib=libc++ -Wfatal-errors -o main $SRC -Iinclude -ldl +clang++ -pg -O1 -std=c++17 -stdlib=libc++ -Wfatal-errors -o main $SRC -Iinclude -ldl time ./main benchmarks/fib.py mv benchmarks/gmon.out . gprof pocketpy gmon.out > gprof.txt diff --git a/run_tests.sh b/run_tests.sh index 60dcb8ad..50b01a68 100644 --- a/run_tests.sh +++ b/run_tests.sh @@ -1,6 +1,6 @@ python3 prebuild.py SRC=$(find src/ -name "*.cpp") -clang++ -std=c++17 -fno-rtti --coverage -O1 -stdlib=libc++ -Wfatal-errors -o main src2/main.cpp $SRC -Iinclude -ldl +clang++ -std=c++17 --coverage -O1 -stdlib=libc++ -Wfatal-errors -o main src2/main.cpp $SRC -Iinclude -ldl python3 scripts/run_tests.py rm -rf .coverage mkdir .coverage