mirror of
https://github.com/pocketpy/pocketpy
synced 2025-10-20 03:20:18 +00:00
...
This commit is contained in:
parent
0e736b2f71
commit
d64d955fb8
4
.github/workflows/main.yml
vendored
4
.github/workflows/main.yml
vendored
@ -14,8 +14,6 @@ jobs:
|
|||||||
cd build
|
cd build
|
||||||
cmake ..
|
cmake ..
|
||||||
cmake --build . --config Release
|
cmake --build . --config Release
|
||||||
cmake .. -DPK_BUILD_SHARED_LIB=1
|
|
||||||
cmake --build . --config Release
|
|
||||||
cp Release/pocketpy.exe ../output/windows/x86_64
|
cp Release/pocketpy.exe ../output/windows/x86_64
|
||||||
cp Release/pocketpy.dll ../output/windows/x86_64
|
cp Release/pocketpy.dll ../output/windows/x86_64
|
||||||
cp Release/pocketpy.exe ../
|
cp Release/pocketpy.exe ../
|
||||||
@ -53,8 +51,6 @@ jobs:
|
|||||||
cd build
|
cd build
|
||||||
cmake ..
|
cmake ..
|
||||||
cmake --build . --config Release
|
cmake --build . --config Release
|
||||||
cmake .. -DPK_BUILD_SHARED_LIB=1
|
|
||||||
cmake --build . --config Release
|
|
||||||
cp pocketpy ../output/linux/x86_64
|
cp pocketpy ../output/linux/x86_64
|
||||||
cp libpocketpy.so ../output/linux/x86_64
|
cp libpocketpy.so ../output/linux/x86_64
|
||||||
cp pocketpy ../
|
cp pocketpy ../
|
||||||
|
@ -20,7 +20,7 @@ endif()
|
|||||||
if(MSVC)
|
if(MSVC)
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /GR- /EHsc /utf-8 /O2")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /GR- /EHsc /utf-8 /O2")
|
||||||
else()
|
else()
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti -fexceptions -O2 -ldl")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti -fexceptions -O2")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
option(PK_EXPORT_C_API "Export C API" ON)
|
option(PK_EXPORT_C_API "Export C API" ON)
|
||||||
@ -40,10 +40,18 @@ aux_source_directory(${CMAKE_CURRENT_LIST_DIR}/src POCKETPY_SRC)
|
|||||||
option(PK_BUILD_SHARED_LIB "Build shared library" OFF)
|
option(PK_BUILD_SHARED_LIB "Build shared library" OFF)
|
||||||
option(PK_BUILD_STATIC_LIB "Build static library" OFF)
|
option(PK_BUILD_STATIC_LIB "Build static library" OFF)
|
||||||
|
|
||||||
|
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
|
||||||
|
|
||||||
if(PK_BUILD_SHARED_LIB)
|
if(PK_BUILD_SHARED_LIB)
|
||||||
add_library(${PROJECT_NAME} SHARED ${POCKETPY_SRC} ${PK_LIB_CPP})
|
add_library(${PROJECT_NAME} SHARED ${POCKETPY_SRC} ${PK_LIB_CPP})
|
||||||
elseif(PK_BUILD_STATIC_LIB)
|
elseif(PK_BUILD_STATIC_LIB)
|
||||||
add_library(${PROJECT_NAME} STATIC ${POCKETPY_SRC} ${PK_LIB_CPP})
|
add_library(${PROJECT_NAME} STATIC ${POCKETPY_SRC} ${PK_LIB_CPP})
|
||||||
else()
|
else()
|
||||||
add_executable(${PROJECT_NAME} ${POCKETPY_SRC} src2/main.cpp)
|
add_library(${PROJECT_NAME} SHARED ${POCKETPY_SRC} ${PK_LIB_CPP})
|
||||||
|
add_executable(${PROJECT_NAME}_EXE src2/main.cpp)
|
||||||
|
set_target_properties(${PROJECT_NAME}_EXE PROPERTIES OUTPUT_NAME ${PROJECT_NAME})
|
||||||
|
target_link_libraries(${PROJECT_NAME}_EXE ${PROJECT_NAME})
|
||||||
|
target_link_libraries(${PROJECT_NAME}_EXE ${CMAKE_DL_LIBS})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
target_link_libraries(${PROJECT_NAME} ${CMAKE_DL_LIBS})
|
@ -246,8 +246,8 @@ struct MemoryPool{
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
inline MemoryPool<64> pool64;
|
PK_EXPORT inline MemoryPool<64> pool64;
|
||||||
inline MemoryPool<128> pool128;
|
PK_EXPORT inline MemoryPool<128> pool128;
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
struct shared_ptr {
|
struct shared_ptr {
|
||||||
|
@ -7,9 +7,23 @@ std::string f_input(){
|
|||||||
return pkpy::platform_getline();
|
return pkpy::platform_getline();
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char** argv){
|
#define ABS_PATH(x) std::filesystem::absolute(x).c_str()
|
||||||
pkpy::VM* vm = pkpy_new_vm();
|
|
||||||
|
|
||||||
|
int main(int argc, char** argv){
|
||||||
|
#if _WIN32
|
||||||
|
SetConsoleOutputCP(CP_UTF8);
|
||||||
|
void* p = LoadLibraryA(ABS_PATH("pocketpy.dll"));
|
||||||
|
#elif __linux__
|
||||||
|
void* p = dlopen(ABS_PATH("libpocketpy.so"), RTLD_NOW | RTLD_GLOBAL);
|
||||||
|
#elif __APPLE__
|
||||||
|
void* p = dlopen(ABS_PATH("libpocketpy.dylib"), RTLD_NOW | RTLD_GLOBAL);
|
||||||
|
#endif
|
||||||
|
if(p == nullptr){
|
||||||
|
std::cerr << "unable to load dynamic library" << std::endl;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
pkpy::VM* vm = pkpy_new_vm();
|
||||||
pkpy::_bind(vm, vm->builtins, "input() -> str", &f_input);
|
pkpy::_bind(vm, vm->builtins, "input() -> str", &f_input);
|
||||||
|
|
||||||
if(argc == 1){
|
if(argc == 1){
|
||||||
|
Loading…
x
Reference in New Issue
Block a user