Created
June 12, 2019 15:50
-
-
Save NickNaso/72d99b8b4d671356914ee1d67554d251 to your computer and use it in GitHub Desktop.
CMake file to build cerberus addon with cmakejs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
cmake_minimum_required(VERSION 2.8) | |
set (CMAKE_CXX_STANDARD 11) | |
# Name of the project (will be the name of the plugin) | |
project(Cerberus) | |
set(VLC_LIB_DIR ${CMAKE_SOURCE_DIR} "libvlcpp/vlcpp") | |
if(MSVC) | |
foreach(flag_var | |
CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE | |
CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO) | |
if(${flag_var} MATCHES "/MD") | |
string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}") | |
endif() | |
endforeach() | |
elseif(APPLE) | |
set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/deps/VLC.app/Contents/MacOS/lib") | |
else() | |
add_definitions(-std=c++17) | |
endif() | |
# Build a shared library named after the project from the files in `src/` | |
file(GLOB SOURCE_FILES "src/*.cpp" "src/*.hpp") | |
add_library(${PROJECT_NAME} SHARED ${SOURCE_FILES}) | |
# Include libvlcpp | |
include_directories(${VLC_LIB_DIR}) | |
# Gives our library file a .node extension without any "lib" prefix | |
set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "" SUFFIX ".node") | |
# 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}) | |
target_include_directories(${PROJECT_NAME} PRIVATE | |
${CMAKE_SOURCE_DIR}/node_modules/node-addon-api | |
${CMAKE_SOURCE_DIR}/node_modules/node-addon-api/src | |
${CMAKE_JS_INC}) | |
target_link_libraries(${PROJECT_NAME} PRIVATE ${CMAKE_JS_LIB}) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment