Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

file 97 lines (72 sloc) 2.462 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
cmake_minimum_required(VERSION 2.6)
project(node)

if(USE_GCOV)
  set(CMAKE_BUILD_TYPE "Debug")

  # Set global c and c++ flags
  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fprofile-arcs -ftest-coverage")
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage")

  # Link flags used for creating executables
  set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lgcov -fprofile-arcs")

  # Link flags used for creating shared libraries
  set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -lgcov -profile-arcs")
endif()

#
# options
#

find_package(PythonInterp 2 REQUIRED)

option(SHARED_V8 "use system shared V8 library")
option(SHARED_LIBEV "use system shared libev library")
option(SHARED_CARES "use system shared c-ares library")
option(V8_SNAPSHOT "turn on snapshot when building stock v8")
option(V8_OPROFILE "Add oprofile support")
option(V8_GDBJIT "add gdbjit support")
option(DTRACE "build with DTrace (experimental)")

# cmake policies to get rid of some warnings
cmake_policy(SET CMP0009 NEW) # GLOB_RECURSE should no follow symlinks

# generic cmake configuration
include("cmake/configure.cmake")

# find and configure libs
include("cmake/libs.cmake")

# setup node build targets
include("cmake/node_build.cmake")

# setup v8 build targets
include("cmake/v8_build.cmake")

# docs
## might want to move this to doc/CMakeLists.txt
include("cmake/docs.cmake")

# tests
enable_testing()
include(CTest)
add_subdirectory("test/")

# package
include("cmake/package.cmake")


#
# Final build configuration output
#

message("** Build Summary **")
message(" Version: ${node_version_string}")
message(" Prefix: ${PREFIX}")
message(" Build Type: ${CMAKE_BUILD_TYPE}")
message(" Architecture: ${CMAKE_SYSTEM_PROCESSOR}")
message(" Platform: ${node_platform}")

if(SHARED_V8)
message(" V8: ${V8_LIBRARY_PATH}")
#else()
#message(" V8 jobs: ${parallel_jobs}")
endif()

if(SHARED_libev)
  message(" libev: ${LIBEV_LIBRARY}")
endif()

if(SHARED_CARES)
  message(" libc-ares: ${LIBCARES_LIBRARY}")
endif()

message(" RT library: ${RT}")
message(" DL library: ${DL}")

if(${OPENSSL_FOUND} MATCHES TRUE)
  message(" OpenSSL: ${OPENSSL_LIBRARIES}")
endif()

if(USE_GCOV)
  message(" gcov: enabled")
endif()

message(" CCFLAGS: ${CCFLAGS}")
message(" CPPFLAGS: ${CPPFLAGS}")
Something went wrong with that request. Please try again.