From 04b187923bf191355f6e4ab9bf66b768d1fb4d36 Mon Sep 17 00:00:00 2001 From: blueloveTH Date: Mon, 8 Jul 2024 00:48:14 +0800 Subject: [PATCH] fix cmake --- CMakeLists.txt | 27 +++++---------------------- src/common/sstream.c | 8 ++++---- src/public/py_str.c | 2 +- src2/main.c | 5 +++++ 4 files changed, 15 insertions(+), 27 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index acc05500..2af4d04c 100644 --- a/CMakeLists.txt +++ b/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) diff --git a/src/common/sstream.c b/src/common/sstream.c index c5189ff8..37ee3e64 100644 --- a/src/common/sstream.c +++ b/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 { diff --git a/src/public/py_str.c b/src/public/py_str.c index 560df674..c129cb1c 100644 --- a/src/public/py_str.c +++ b/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; diff --git a/src2/main.c b/src2/main.c index fe194aba..bb284217 100644 --- a/src2/main.c +++ b/src2/main.c @@ -4,6 +4,11 @@ #include "pocketpy.h" +#ifdef _WIN32 +#define WIN32_LEAN_AND_MEAN +#include +#endif + char* read_file(const char* path) { FILE* file = fopen(path, "r"); if(file == NULL) {