UNPKG

postal-async

Version:

Async NAPI based interface for libpostal.

75 lines (54 loc) 2.17 kB
cmake_minimum_required(VERSION 2.8...3.13) set(BUILD_SHARED_LIBS ON CACHE BOOL "Build shared libraries") # Name of the project (will be the name of the plugin) project(postal-async) add_definitions(-DNAPI_VERSION=${NAPI_VERSION}) add_library(${PROJECT_NAME}) target_sources(${PROJECT_NAME} PRIVATE "${PROJECT_SOURCE_DIR}/src/postal.cc" "${PROJECT_SOURCE_DIR}/src/expand.h" "${PROJECT_SOURCE_DIR}/src/expand.cc" "${PROJECT_SOURCE_DIR}/src/parse.h" "${PROJECT_SOURCE_DIR}/src/parse.cc" ) # 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, target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_JS_INC}) # Essential library files to link to a node addon target_link_libraries( ${PROJECT_NAME} ${CMAKE_JS_LIB} ) # build libtool set(POSTAL_DATA_DIR $ENV{POSTAL_DATA_DIR}) set(POSTAL_DOWNLOAD_DATA $ENV{POSTAL_DOWNLOAD_DATA}) if(NOT POSTAL_DATA_DIR) set(POSTAL_DATA_DIR /var/lib) endif() set(POSTAL_CONFIG_OPTS ) set(IS_SSE_DISABLED ) # SSE / SSE2 isn't available on all platforms; arm, arm64 and arm/M1 (aarch64) are such examples if(CMAKE_SYSTEM_PROCESSOR MATCHES "^arm" OR CMAKE_SYSTEM_PROCESSOR MATCHES "^aarch64") set(IS_SSE_DISABLED --disable-sse2) endif() include(ExternalProject) ExternalProject_Add(libpostal GIT_REPOSITORY https://github.com/openvenues/libpostal GIT_TAG 8f2066b1 PATCH_COMMAND <SOURCE_DIR>/bootstrap.sh CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix=<INSTALL_DIR> ${IS_SSE_DISABLED} --disable-data-download --with-pic --datadir=${POSTAL_DATA_DIR} BUILD_BYPRODUCTS <INSTALL_DIR>/lib/libpostal.a ) if(POSTAL_DOWNLOAD_DATA) ExternalProject_Add_Step(libpostal download-data COMMAND <INSTALL_DIR>/bin/libpostal_data download all ${POSTAL_DATA_DIR}/libpostal DEPENDEES install ) endif() ExternalProject_Get_Property(libpostal INSTALL_DIR) add_dependencies(${PROJECT_NAME} libpostal) include_directories(${INSTALL_DIR}/include) set(LIBS ${LIBS} ${INSTALL_DIR}/lib/libpostal.a) target_link_libraries(${PROJECT_NAME} ${LIBS})