Procházet zdrojové kódy

remove `-fno-rtti`

BLUELOVETH před 2 roky
rodič
revize
f0a2ea215e
9 změnil soubory, kde provedl 9 přidání a 15 odebrání
  1. 2 2
      CMakeLists.txt
  2. 0 1
      README.md
  3. 4 2
      build.sh
  4. 1 1
      build_web.sh
  5. 0 1
      docs/quick-start/installation.md
  6. binární
      libpocketpy.dylib
  7. 0 6
      plugins/flutter/src/CMakeLists.txt
  8. 1 1
      run_profile.sh
  9. 1 1
      run_tests.sh

+ 2 - 2
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)

+ 0 - 1
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
 

+ 4 - 2
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=.
+clang++ $FLAGS -o main src2/main.cpp -L. -lpocketpy $LINK_FLAGS

+ 1 - 1
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
+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

+ 0 - 1
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
 

binární
libpocketpy.dylib


+ 0 - 6
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"

+ 1 - 1
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

+ 1 - 1
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