Skip to content

Commit

Permalink
build, feat: build shared library.
Browse files Browse the repository at this point in the history
  • Loading branch information
xicilion committed Jun 19, 2023
1 parent cd9bfed commit f7adbc0
Show file tree
Hide file tree
Showing 4 changed files with 45 additions and 5 deletions.
14 changes: 11 additions & 3 deletions fibjs/program/CMakeLists.txt
Expand Up @@ -15,12 +15,14 @@ if (${CMAKE_HOST_SYSTEM_NAME} STREQUAL "Windows")
set(CMAKE_RC_COMPILER llvm-rc)
endif()

add_executable(${name} ${src_list} res/fibjs.rc)
add_executable(${name}_gui WIN32 ${src_list} res/fibjs.rc)
add_executable(${name} src/app.cpp res/fibjs.rc)
add_executable(${name}_gui WIN32 src/app.cpp res/fibjs.rc)
else()
add_executable(${name} ${src_list})
add_executable(${name} src/app.cpp)
endif()

add_library(js SHARED src/so.cpp)

include_directories("${PROJECT_SOURCE_DIR}/include" "${PROJECT_SOURCE_DIR}/../include" "${PROJECT_SOURCE_DIR}/../../vender" "${PROJECT_SOURCE_DIR}/../../vender/v8" "${PROJECT_SOURCE_DIR}/../../vender/v8/include" "${PROJECT_SOURCE_DIR}/../../vender/mbedtls" "${PROJECT_SOURCE_DIR}/../../vender/zlib/include" "${CMAKE_CURRENT_BINARY_DIR}")

set(libs fibjs jemalloc expat gumbo gd tiff jpeg png webp zlib leveldb snappy msgpack pcre sqlite umysql uuid exif mbedtls curve25519 blst blake2 v8 unicode unzip uv exlib)
Expand All @@ -36,9 +38,12 @@ foreach(lib ${libs})
if(${CMAKE_HOST_SYSTEM_NAME} STREQUAL "Windows")
target_link_libraries(${name}_gui "${BIN_PATH}/${CMAKE_STATIC_LIBRARY_PREFIX}${lib}${CMAKE_STATIC_LIBRARY_SUFFIX}")
endif()

target_link_libraries(js "${BIN_PATH}/${CMAKE_STATIC_LIBRARY_PREFIX}${lib}${CMAKE_STATIC_LIBRARY_SUFFIX}")
endforeach()

setup_result_library(${name})
setup_result_library(js)

if(${CMAKE_HOST_SYSTEM_NAME} STREQUAL "Windows")
setup_result_library(${name}_gui)
Expand All @@ -48,15 +53,18 @@ if(${CMAKE_HOST_SYSTEM_NAME} STREQUAL "Windows")
if(link_flags)
set_target_properties(${name} PROPERTIES LINK_FLAGS ${link_flags})
set_target_properties(${name}_gui PROPERTIES LINK_FLAGS ${link_flags})
set_target_properties(js PROPERTIES LINK_FLAGS ${link_flags})
endif()

target_link_libraries(${name} comctl32)
target_link_libraries(${name}_gui comctl32)
target_link_libraries(js comctl32)

target_compile_definitions(${name} PUBLIC -D_CONSOLE)
target_compile_definitions(${name}_gui PUBLIC -D_WINDOWS)
else()
if(link_flags)
set_target_properties(${name} PROPERTIES LINK_FLAGS ${link_flags})
set_target_properties(js PROPERTIES LINK_FLAGS ${link_flags})
endif()
endif()
2 changes: 1 addition & 1 deletion fibjs/program/src/fibjs.cpp → fibjs/program/src/app.cpp
@@ -1,5 +1,5 @@
/*
* fibjs.cpp
* app.cpp
*
* Created on: May 28, 2012
* Author: lion
Expand Down
32 changes: 32 additions & 0 deletions fibjs/program/src/so.cpp
@@ -0,0 +1,32 @@
/*
* so.cpp
*
* Created on: Jun 19, 2023
* Author: lion
*/

#include "fibjs.h"
#include "object.h"

namespace fibjs {

void main(int32_t argc, char** argv)
{
importBuiltinModule();

start(argc, argv, FiberProcJsEntry);
run_gui(argc, argv);
}
}

extern "C"
#ifdef WIN32
__declspec(dllexport)
#else
__attribute__((visibility("default")))
#endif
int32_t main(int32_t argc, char* argv[])
{
fibjs::main(argc, argv);
return 0;
}

0 comments on commit f7adbc0

Please sign in to comment.