2015-02-11 03:41:29 +09:00
|
|
|
find_path (NODE_ROOT_DIR "node/node.h" "src/node.h"
|
|
|
|
|
PATHS /usr/include/nodejs /usr/local/include/nodejs)
|
2014-04-08 18:43:26 +01:00
|
|
|
|
2014-04-30 10:50:44 +01:00
|
|
|
set (NODE_INCLUDE_DIRS
|
2014-06-10 20:16:39 +01:00
|
|
|
${NODE_ROOT_DIR}/src
|
2014-04-08 18:43:26 +01:00
|
|
|
${NODE_ROOT_DIR}/node
|
|
|
|
|
${NODE_ROOT_DIR}/deps/v8/include
|
|
|
|
|
${NODE_ROOT_DIR}/deps/uv/include
|
|
|
|
|
)
|
|
|
|
|
|
2014-04-30 10:50:44 +01:00
|
|
|
include_directories (
|
2014-06-10 20:16:39 +01:00
|
|
|
${NODE_INCLUDE_DIRS}
|
2014-04-08 18:43:26 +01:00
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/..
|
|
|
|
|
)
|
|
|
|
|
|
2014-05-30 10:28:21 +01:00
|
|
|
# SWIG treats SWIG_FLAGS as a list and not a string so semicolon seperation is required
|
2014-06-24 17:24:54 +01:00
|
|
|
set_source_files_properties (mraajs.i PROPERTIES SWIG_FLAGS "-node;-I${CMAKE_BINARY_DIR}/src")
|
|
|
|
|
set_source_files_properties (mraajs.i PROPERTIES CPLUSPLUS ON)
|
2014-04-08 18:43:26 +01:00
|
|
|
|
2014-06-24 17:24:54 +01:00
|
|
|
swig_add_module (mraajs javascript mraajs.i ${mraa_LIB_SRCS})
|
|
|
|
|
swig_link_libraries (mraajs ${NODE_LIBRARIES})
|
2014-04-08 18:43:26 +01:00
|
|
|
|
2014-04-30 10:50:44 +01:00
|
|
|
if (DOXYGEN_FOUND)
|
|
|
|
|
foreach (_file ${DOCFILES})
|
2014-06-24 17:24:54 +01:00
|
|
|
add_dependencies (${SWIG_MODULE_mraajs_REAL_NAME} ${_file}doc_i)
|
2014-04-30 10:50:44 +01:00
|
|
|
endforeach ()
|
|
|
|
|
endif ()
|
|
|
|
|
|
2014-06-24 17:24:54 +01:00
|
|
|
set_target_properties (mraajs PROPERTIES
|
2015-02-18 14:27:50 +00:00
|
|
|
COMPILE_FLAGS "${CMAKE_CXX_FLAGS} -DBUILDING_NODE_EXTENSION -DSWIGJAVASCRIPT=${SWIG_FOUND}"
|
2014-04-08 18:43:26 +01:00
|
|
|
PREFIX ""
|
2014-06-25 17:49:27 +01:00
|
|
|
OUTPUT_NAME mraa
|
2014-06-10 20:16:39 +01:00
|
|
|
SUFFIX ".node"
|
2014-04-08 18:43:26 +01:00
|
|
|
)
|
2014-11-24 11:19:05 +00:00
|
|
|
macro (mraa_CREATE_INSTALL_PACKAGE_JSON generated_file install_location)
|
|
|
|
|
configure_file (${generated_file}.cmake ${CMAKE_CURRENT_BINARY_DIR}/${generated_file} @ONLY)
|
|
|
|
|
install (FILES ${CMAKE_CURRENT_BINARY_DIR}/${generated_file} DESTINATION ${install_location})
|
|
|
|
|
endmacro (mraa_CREATE_INSTALL_PACKAGE_JSON)
|
|
|
|
|
mraa_create_install_package_json (package.json lib/node_modules/mraa)
|
2014-06-04 12:06:04 +01:00
|
|
|
|
2014-11-24 15:18:53 +00:00
|
|
|
macro (mraa_CREATE_BINDING_GYP generated_file)
|
|
|
|
|
set (mraa_LIB_SRCS_GYP "")
|
|
|
|
|
foreach (srcfile ${mraa_LIB_SRCS_NOAUTO})
|
|
|
|
|
file (RELATIVE_PATH rel ${CMAKE_SOURCE_DIR} ${srcfile})
|
|
|
|
|
set (mraa_LIB_SRCS_GYP "'${rel}',\n${mraa_LIB_SRCS_GYP}")
|
|
|
|
|
endforeach (srcfile)
|
|
|
|
|
foreach (includedir ${mraa_LIB_INCLUDE_DIRS})
|
|
|
|
|
file (RELATIVE_PATH rel ${CMAKE_SOURCE_DIR} ${includedir})
|
|
|
|
|
set (mraa_LIB_INCLUDE_DIRS_GYP "'${rel}',\n${mraa_LIB_INCLUDE_DIRS_GYP}")
|
|
|
|
|
endforeach (includedir)
|
|
|
|
|
configure_file (${generated_file}.cmake ${CMAKE_CURRENT_BINARY_DIR}/${generated_file} @ONLY)
|
|
|
|
|
endmacro (mraa_CREATE_BINDING_GYP)
|
|
|
|
|
mraa_create_binding_gyp (binding.gyp)
|
|
|
|
|
|
|
|
|
|
add_custom_target (npmpkg)
|
|
|
|
|
add_custom_command (TARGET npmpkg POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy
|
2014-11-24 18:03:36 +00:00
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/mraajsJAVASCRIPT_wrap.cxx ${CMAKE_SOURCE_DIR}/src
|
|
|
|
|
COMMAND ${CMAKE_COMMAND} -E copy
|
|
|
|
|
${CMAKE_BINARY_DIR}/src/version.c ${CMAKE_SOURCE_DIR}/src
|
|
|
|
|
COMMAND ${CMAKE_COMMAND} -E copy
|
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/package.json ${CMAKE_SOURCE_DIR}
|
2014-12-01 13:59:47 +00:00
|
|
|
COMMAND sed -i "'s/mraa.node/build\\/Release\\/mraa.node/'"
|
|
|
|
|
${CMAKE_SOURCE_DIR}/package.json
|
2014-11-24 18:03:36 +00:00
|
|
|
COMMAND ${CMAKE_COMMAND} -E copy
|
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/binding.gyp ${CMAKE_SOURCE_DIR}
|
|
|
|
|
COMMAND ${CMAKE_COMMAND} -E copy
|
|
|
|
|
${CMAKE_SOURCE_DIR}/docs/npm.md ${CMAKE_SOURCE_DIR}/READMEFIRST)
|
2014-11-24 15:18:53 +00:00
|
|
|
add_dependencies (npmpkg mraajs)
|
|
|
|
|
|
2014-11-24 11:19:05 +00:00
|
|
|
install (FILES ${CMAKE_CURRENT_BINARY_DIR}/mraa.node
|
2014-06-25 17:49:27 +01:00
|
|
|
DESTINATION lib/node_modules/mraa)
|