cmake_minimum_required(VERSION 3.2) include(ExternalProject) project(p4nodeapi C CXX) set(P4API_VERSION "15.2") if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") set(P4API_PLATFORM "darwin90x86_64") elseif(${CMAKE_SYSTEM_NAME} MATCHES "Linux") set(P4API_PLATFORM "linux26x86_64") endif() set(P4API_URL "http://ftp.perforce.com/perforce/r${P4API_VERSION}/bin.${P4API_PLATFORM}/p4api.tgz") set(P4API_ROOT ${PROJECT_SOURCE_DIR}/.p4api) message("Downloading Perforce SDK.") file(DOWNLOAD ${P4API_URL} ${CMAKE_BINARY_DIR}/p4api.tgz SHOW_PROGRESS) message("Unpacking Perforce SDK.") execute_process( COMMAND ${CMAKE_COMMAND} -E make_directory ${P4API_ROOT} COMMAND tar --strip-components=1 -C ${P4API_ROOT} -xf ${CMAKE_BINARY_DIR}/p4api.tgz ) list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/node_modules/node-cmake ) find_package(NodeJS) include_directories(${P4API_ROOT}/include) add_nodejs_module(${PROJECT_NAME} src/cpp/basicuser.h src/cpp/basicuser.cc src/cpp/p4nodeapi.cc) target_link_libraries(${PROJECT_NAME} ${P4API_ROOT}/lib/libclient.a ${P4API_ROOT}/lib/librpc.a ${P4API_ROOT}/lib/libsupp.a ${P4API_ROOT}/lib/libp4sslstub.a ) set_target_properties(${PROJECT_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/lib )