# Define CMake version cmake_minimum_required(VERSION 3.0.0) set(CMAKE_CXX_STANDARD 11) # Define Variables # 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}) # Name of the project (will be the name of the plugin) project(nodegl VERSION 0.1.0) # Build a shared library named after the project from the files in `src/` file(GLOB SOURCE_FILES "src/*.cc" "src/*.h") add_library(${PROJECT_NAME} SHARED ${SOURCE_FILES}) # Try find libraries find_package(OpenGL REQUIRED) # 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 ${OPENGL_INCLUDE_DIRS}) target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_JS_INC}) target_include_directories(${PROJECT_NAME} PRIVATE ${NODE_ADDON_API_DIR}) # 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}) target_link_libraries(${PROJECT_NAME} ${OPENGL_LIBRARIES}) # Gives our library file a .node extension without any "lib" prefix set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "" SUFFIX ".node")