mirror of
https://github.com/pocketpy/pocketpy
synced 2025-10-19 19:10:17 +00:00
fix cmake
This commit is contained in:
parent
807294e0eb
commit
04b187923b
@ -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)
|
||||
|
@ -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 {
|
||||
|
@ -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;
|
||||
|
@ -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) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user