UNPKG

node-mdbx-dupsort

Version:
56 lines (43 loc) 2.12 kB
cmake_minimum_required(VERSION 2.8) # Name of the project (will be the name of the plugin) project(node-mdbx-native) add_definitions(-DNAPI_CPP_EXCEPTIONS) add_definitions(-DMDBX_TXN_CHECKOWNER=0) add_definitions(-DMDBX_ENV_CHECKPID=0) add_definitions(-DMDBX_WITHOUT_MSVC_CRT=1) if(CMAKE_VERSION VERSION_LESS 3.0.0) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17") else() set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) endif() add_definitions(-DMDBX_BUILD_FLAGS_CONFIG="$<$<CONFIG:Debug>:${CMAKE_C_FLAGS_DEBUG} ${CMAKE_C_DEFINES_DEBUG}>$<$<CONFIG:Release>:${CMAKE_C_FLAGS_RELEASE} ${CMAKE_C_DEFINES_RELEASE}>$<$<CONFIG:RelWithDebInfo>:${CMAKE_C_FLAGS_RELWITHDEBINFO} ${CMAKE_C_DEFINES_RELWITHDEBINFO}>$<$<CONFIG:MinSizeRel>:${CMAKE_C_FLAGS_MINSIZEREL} ${CMAKE_C_DEFINES_MINSIZEREL}>") # Build a shared library named after the project from the files in `src/` file(GLOB SOURCE_FILES "src/*.cc" "src/*.h" "deps/mdbx/*.c" "deps/mdbx/*.h" ) add_library(${PROJECT_NAME} SHARED ${SOURCE_FILES}) # Gives our library file a .node extension without any "lib" prefix set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "" SUFFIX ".node") # Essential include files to build a node addon, # You should add this line in every CMake.js based project target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_JS_INC}) target_include_directories(${PROJECT_NAME} PRIVATE "deps/mdbx") # Essential library files to link to a node addon # You should add this line in every CMake.js based project target_link_libraries(${PROJECT_NAME} ${CMAKE_JS_LIB}) if(MSVC) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /std:c++latest") target_link_libraries(${PROJECT_NAME} ntdll.lib) endif() # Include N-API wrappers execute_process(COMMAND node -p "require('node-addon-api').include" WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} OUTPUT_VARIABLE NODE_ADDON_API_DIR ) string(REPLACE "\n" "" NODE_ADDON_API_DIR ${NODE_ADDON_API_DIR}) string(REPLACE "\"" "" NODE_ADDON_API_DIR ${NODE_ADDON_API_DIR}) target_include_directories(${PROJECT_NAME} PRIVATE ${NODE_ADDON_API_DIR})