blueloveTH 1 tahun lalu
induk
melakukan
04b187923b
4 mengubah file dengan 15 tambahan dan 27 penghapusan
  1. 5 22
      CMakeLists.txt
  2. 4 4
      src/common/sstream.c
  3. 1 1
      src/public/py_str.c
  4. 5 0
      src2/main.c

+ 5 - 22
CMakeLists.txt

@@ -4,38 +4,29 @@ project(pocketpy)
 
 set(CMAKE_C_STANDARD 11)
 set(CMAKE_C_STANDARD_REQUIRED ON)
-set(CMAKE_CXX_STANDARD 17)
-set(CMAKE_CXX_STANDARD_REQUIRED ON)
 
 if(MSVC)
-    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHsc /utf-8 /jumptablerdata /GS-")
     set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /utf-8 /jumptablerdata /GS-")
     add_compile_options(/wd4267 /wd4244)
 
     if(NOT CMAKE_BUILD_TYPE STREQUAL "Debug")
-        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Ox")
         set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /Ox")
     endif()
 else()
-    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fexceptions -frtti")
     set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
 
     if(NOT CMAKE_BUILD_TYPE STREQUAL "Debug")
-        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2")
         set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2")
     endif()
 
     # disable -Wshorten-64-to-32 for apple
     if(APPLE)
-        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-shorten-64-to-32")
         set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-shorten-64-to-32")
     endif()
 endif()
 
 include_directories(${CMAKE_CURRENT_LIST_DIR}/include)
-file(GLOB_RECURSE POCKETPY_SRC_CPP ${CMAKE_CURRENT_LIST_DIR}/src/*.cpp)
-file(GLOB_RECURSE POCKETPY_SRC_C ${CMAKE_CURRENT_LIST_DIR}/src/*.c)
-set(POCKETPY_SRC ${POCKETPY_SRC_CPP} ${POCKETPY_SRC_C})
+file(GLOB_RECURSE POCKETPY_SRC ${CMAKE_CURRENT_LIST_DIR}/src/*.c)
 
 option(PK_USE_CJSON "" OFF)
 if(PK_USE_CJSON)
@@ -72,10 +63,8 @@ if ("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}")
         option(BUILD_TESTING_SANITIZE "Build the source with sanitizers" OFF)
         if (BUILD_TESTING_SANITIZE)
             if (MSVC)
-                set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /fsanitize=address /fno-omit-frame-pointer")
                 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /fsanitize=address /fno-omit-frame-pointer")
             else()
-                set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address,leak,undefined")
                 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address,leak,undefined")
             endif()
         endif()
@@ -95,16 +84,10 @@ elseif(PK_BUILD_STATIC_LIB)
     add_library(${PROJECT_NAME} STATIC ${POCKETPY_SRC})
 else()
     set(PROJECT_EXE_NAME main)
-    add_executable(${PROJECT_EXE_NAME} src2/main.cpp)
-    if (BUILD_TESTING_SANITIZE)
-        # static linked main, for sanitizing purpose
-        add_library(${PROJECT_NAME} STATIC ${POCKETPY_SRC})
-        target_link_libraries(${PROJECT_EXE_NAME} ${PROJECT_NAME})
-    else()
-      # shared linked main, used by default, for CI and others
-        add_library(${PROJECT_NAME} SHARED ${POCKETPY_SRC})
-        target_link_libraries(${PROJECT_EXE_NAME} ${PROJECT_NAME} ${CMAKE_DL_LIBS})
-    endif()
+    add_executable(${PROJECT_EXE_NAME} src2/main.c)
+    # static linked main
+    add_library(${PROJECT_NAME} STATIC ${POCKETPY_SRC})
+    target_link_libraries(${PROJECT_EXE_NAME} ${PROJECT_NAME})
 endif()
 
 if(PK_USE_CJSON)

+ 4 - 4
src/common/sstream.c

@@ -23,7 +23,7 @@ void c11_sbuf__write_char(c11_sbuf* self, char c) { c11_vector__push(char, &self
 void c11_sbuf__write_int(c11_sbuf* self, int i) {
     // len('-2147483648') == 11
     c11_vector__reserve(&self->data, self->data.count + 11 + 1);
-    char* p = self->data.data + self->data.count;
+    char* p = (char*)self->data.data + self->data.count;
     int n = snprintf(p, 11 + 1, "%d", i);
     self->data.count += n;
 }
@@ -31,7 +31,7 @@ void c11_sbuf__write_int(c11_sbuf* self, int i) {
 void c11_sbuf__write_i64(c11_sbuf* self, int64_t val) {
     // len('-9223372036854775808') == 20
     c11_vector__reserve(&self->data, self->data.count + 20 + 1);
-    char* p = self->data.data + self->data.count;
+    char* p = (char*)self->data.data + self->data.count;
     int n = snprintf(p, 20 + 1, "%lld", (long long)val);
     self->data.count += n;
 }
@@ -234,9 +234,9 @@ int py_replinput(char* buf) {
             char last = '\0';
             if(size > 0) last = buf[size - 1];
             if(multiline) {
-                if(last == '\n'){
+                if(last == '\n') {
                     break;  // 2 consecutive newlines to end multiline input
-                }else{
+                } else {
                     printf("... ");
                 }
             } else {

+ 1 - 1
src/public/py_str.c

@@ -6,7 +6,7 @@
 #include "pocketpy/interpreter/vm.h"
 #include "pocketpy/common/sstream.h"
 
-void py_newstr(py_Ref out, const char* data) { return py_newstrn(out, data, strlen(data)); }
+void py_newstr(py_Ref out, const char* data) { py_newstrn(out, data, strlen(data)); }
 
 void py_newstrn(py_Ref out, const char* data, int size) {
     pk_ManagedHeap* heap = &pk_current_vm->heap;

+ 5 - 0
src2/main.c

@@ -4,6 +4,11 @@
 
 #include "pocketpy.h"
 
+#ifdef _WIN32
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#endif
+
 char* read_file(const char* path) {
     FILE* file = fopen(path, "r");
     if(file == NULL) {