From 6a371834d8b2e0d36649dcdedc421d905d70c306 Mon Sep 17 00:00:00 2001 From: Ryan Dahl Date: Tue, 11 Oct 2011 09:58:35 -0700 Subject: [PATCH] Remove cmake build system This removes one of the three build systems. CMake has never been officially supported and is not updated with WAF and GYP. WAF itself is considered legacy and will be removed once the GYP system is feature complete on Unixes. GYP is used currently on Windows/MSVS. --- CTestConfig.cmake | 7 -- Makefile.cmake | 40 ------- README.cmake | 77 ------------- cmake/CTestCustom.cmake | 4 - cmake/codesourcery-arm-toolchain.cmake | 22 ---- cmake/configure.cmake | 130 --------------------- cmake/docs.cmake | 80 ------------- cmake/libs.cmake | 53 --------- cmake/libuv.cmake | 2 - cmake/libv8.cmake | 25 ----- cmake/node_build.cmake | 149 ------------------------- cmake/package.cmake | 39 ------- cmake/v8_build.cmake | 102 ----------------- config.h.cmake | 2 - 14 files changed, 732 deletions(-) delete mode 100644 CTestConfig.cmake delete mode 100644 Makefile.cmake delete mode 100644 README.cmake delete mode 100644 cmake/CTestCustom.cmake delete mode 100644 cmake/codesourcery-arm-toolchain.cmake delete mode 100644 cmake/configure.cmake delete mode 100644 cmake/docs.cmake delete mode 100644 cmake/libs.cmake delete mode 100644 cmake/libuv.cmake delete mode 100644 cmake/libv8.cmake delete mode 100644 cmake/node_build.cmake delete mode 100644 cmake/package.cmake delete mode 100644 cmake/v8_build.cmake delete mode 100644 config.h.cmake diff --git a/CTestConfig.cmake b/CTestConfig.cmake deleted file mode 100644 index 851fa2581..000000000 --- a/CTestConfig.cmake +++ /dev/null @@ -1,7 +0,0 @@ -set(CTEST_PROJECT_NAME "node") -set(CTEST_NIGHTLY_START_TIME "00:00:00 EST") - -set(CTEST_DROP_METHOD "http") -set(CTEST_DROP_SITE "my.cdash.org") -set(CTEST_DROP_LOCATION "/submit.php?project=node") -set(CTEST_DROP_SITE_CDASH TRUE) diff --git a/Makefile.cmake b/Makefile.cmake deleted file mode 100644 index 0281b413e..000000000 --- a/Makefile.cmake +++ /dev/null @@ -1,40 +0,0 @@ -BUILD?=build -VERBOSE?=0 -PARALLEL_JOBS?=1 -CMAKE?=cmake -TOOLCHAIN_FILE=#./cmake/codesourcery-arm-toolchain.cmake - -all: package - -$(BUILD)/Makefile: - mkdir $(BUILD) || exit 0 - cd $(BUILD) && $(CMAKE) -DCMAKE_VERBOSE_MAKEFILE=$(VERBOSE) -DCMAKE_TOOLCHAIN_FILE=$(TOOLCHAIN_FILE) .. - -build: $(BUILD)/Makefile - cd $(BUILD) && make -j $(PARALLEL_JOBS) - -install: build - cd $(BUILD) && sudo make install - -clean: - rm -rf $(BUILD) - -doc: $(BUILD)/Makefile - cd $(BUILD) && make doc - -package: $(BUILD)/Makefile - cd $(BUILD) && make package - -test: $(BUILD)/Makefile - cd $(BUILD) && make test - -cdash: $(BUILD)/Makefile - cd $(BUILD) && make Experimental - -cdash-cov: $(BUILD)/Makefile - cd $(BUILD) && $(CMAKE) -DUSE_GCOV=True .. && make Experimental - -cdash-mem: $(BUILD)/Makefile - cd $(BUILD) && make NightlyMemoryCheck - -.PHONY: build install clean doc package test cdash cdash-cov cdash-mem diff --git a/README.cmake b/README.cmake deleted file mode 100644 index 925249c8a..000000000 --- a/README.cmake +++ /dev/null @@ -1,77 +0,0 @@ -Instructions for building with cmake - -Make sure you have cmake: - Ubuntu/Debian: sudo apt-get install cmake - Mac: http://www.cmake.org/files/v2.8/cmake-2.8.3-Darwin-universal.dmg - Other platforms: http://www.cmake.org/cmake/resources/software.html - -To build: - - make -f Makefile.cmake - make -f Makefile.cmake install - -To run the tests: - - make -f Makefile.cmake test - -To build the documentation: - - make -f Makefile.cmake doc - -To read the documentation: - - man doc/node.1 - -To build distro packages (tgz, deb, rpm, PackageMaker): - - make -f Makefile.cmake package - -To submit test results (see http://my.cdash.org/index.php?project=node): - - make -f Makefile.cmake cdash - -To submit coverage test results: - - make -f Makefile.cmake cdash-cov - -To submit valgrind test results: - - make -f Makefile.cmake cdash-mem - -Cross-compiling: - An example toolchain file for the CodeSourcery ARM toolchain is included in - the cmake directory: codesourcery-arm-toolchain.cmake. - - Install the CodeSourcery toolchain, set the path to the toolchain in - cmake/codesourcery-arm-toolchain.cmake, and uncomment the TOOLCHAIN_FILE - variable in Makefile.cmake to use it. - - If you are using cmake directly, just add the flag - "-DCMAKE_TOOLCHAIN_FILE=/path/to/toolchain-file" when - running cmake. - -Using cmake directly: - cd ~/your-node-source-dir - mkdir name-of-build-dir (can be anything) - cd name-of-build-dir - cmake .. - - At this point you have generated a set of Makefiles and can use the standard - make commands (make, make install, etc.). The Makefile.cmake file is just a - wrapper around these commands; take a look at it for more details. - -Other build targets: - make Experimental - make Nightly - make NightlyMemoryCheck - make Continuous - -Additional options: - In the CMakeLists.txt, you'll see things like - option(SHARED_V8, ...). If you want to enable any of those options you can - pass "-DOPTION=True" when running cmake (e.g., cmake -DSHARED_V8=True). - -See http://nodejs.org/ for more information. For help and discussion -subscribe to the mailing list by visiting -http://groups.google.com/group/nodejs or by sending an email to -nodejs+subscribe@googlegroups.com. diff --git a/cmake/CTestCustom.cmake b/cmake/CTestCustom.cmake deleted file mode 100644 index fcb09e42d..000000000 --- a/cmake/CTestCustom.cmake +++ /dev/null @@ -1,4 +0,0 @@ -set(CTEST_CUSTOM_PRE_TEST "sh -c \"rm -rf ../test/tmp && mkdir ../test/tmp\"") -set(CTEST_CUSTOM_POST_TEST ${CTEST_CUSTOM_PRE_TEST}) -set(CTEST_CUSTOM_PRE_MEMCHECK ${CTEST_CUSTOM_PRE_TEST}) -set(CTEST_CUSTOM_POST_MEMCHECK ${CTEST_CUSTOM_PRE_TEST}) diff --git a/cmake/codesourcery-arm-toolchain.cmake b/cmake/codesourcery-arm-toolchain.cmake deleted file mode 100644 index c45bce506..000000000 --- a/cmake/codesourcery-arm-toolchain.cmake +++ /dev/null @@ -1,22 +0,0 @@ -set(toolchain_dir #SET THIS TO YOUR TOOLCHAIN PATH) -set(toolchain_bin_dir ${toolchain_dir}/bin) -set(toolchain_libc_dir ${toolchain_dir}/arm-none-linux-gnueabi/libc) -set(toolchain_inc_dir ${toolchain_libc_dir}/include) -set(toolchain_lib_dir ${toolchain_libc_dir}/usr/lib) - -set(CMAKE_SYSTEM_NAME Linux CACHE INTERNAL "system name") -set(CMAKE_SYSTEM_PROCESSOR arm CACHE INTERNAL "processor") -set(CMAKE_C_COMPILER ${toolchain_bin_dir}/arm-none-linux-gnueabi-gcc) -set(CMAKE_CXX_COMPILER ${toolchain_bin_dir}/arm-none-linux-gnueabi-g++) -set(CMAKE_C_FLAGS "-isystem ${toolchain_inc_dir}" CACHE INTERNAL "c compiler flags") -set(CMAKE_CXX_FLAGS "-isystem ${toolchain_inc_dir}" CACHE INTERNAL "cxx compiler flags") - -set(link_flags -L${toolchain_lib_dir}) - -set(CMAKE_EXE_LINKER_FLAGS ${link_flags} CACHE INTERNAL "exe link flags") -set(CMAKE_MODULE_LINKER_FLAGS ${link_flags} CACHE INTERNAL "module link flags") -set(CMAKE_SHARED_LINKER_FLAGS ${link_flags} CACHE INTERNAL "shared lnk flags") -set(CMAKE_FIND_ROOT_PATH ${toolchain_libc_dir} CACHE INTERNAL "cross root directory") -set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM BOTH CACHE INTERNAL "") -set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY CACHE INTERNAL "") -set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY CACHE INTERNAL "") diff --git a/cmake/configure.cmake b/cmake/configure.cmake deleted file mode 100644 index 06596c8c4..000000000 --- a/cmake/configure.cmake +++ /dev/null @@ -1,130 +0,0 @@ -# -# configure node for building -# -include(CheckFunctionExists) -include(CheckLibraryExists) -include(CheckSymbolExists) - -if(NOT "v${CMAKE_BUILD_TYPE}" MATCHES vDebug) - set(CMAKE_BUILD_TYPE "Release") -endif() - -string(TOLOWER ${CMAKE_SYSTEM_NAME} node_platform) - -if(${node_platform} MATCHES darwin) - execute_process(COMMAND sw_vers -productVersion OUTPUT_VARIABLE OSX_VERSION) - string(REGEX REPLACE "^([0-9]+\\.[0-9]+).*$" "\\1" OSX_VERSION "${OSX_VERSION}") - - if(OSX_VERSION GREATER 10.5) - # 10.6 builds are 64-bit - set(CMAKE_SYSTEM_PROCESSOR x86_64) - endif() -endif() - -# Get system architecture -if(${CMAKE_SYSTEM_PROCESSOR} MATCHES i686*) - set(node_arch x86) -elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES i386*) - set(node_arch x86) -else() - set(node_arch ${CMAKE_SYSTEM_PROCESSOR}) -endif() - -if(${node_arch} MATCHES unknown) - set(node_arch x86) -endif() - -set(NODE_INCLUDE_PREFIX ${CMAKE_INSTALL_PREFIX}) - -# Copy tools directory for out-of-source build -string(COMPARE EQUAL $(PROJECT_BINARY_DIR) ${PROJECT_SOURCE_DIR} in_source_build) -if(NOT in_source_build) - execute_process(COMMAND cmake -E copy_directory ${PROJECT_SOURCE_DIR}/tools ${PROJECT_BINARY_DIR}/tools) - configure_file(${PROJECT_SOURCE_DIR}/deps/v8/tools/jsmin.py ${PROJECT_BINARY_DIR}/tools COPYONLY) -endif() - -# Set some compiler/linker flags.. -set(CMAKE_C_FLAGS_DEBUG "-O0 -Wall -g -Wextra -DDEBUG $ENV{CFLAGS}") -set(CMAKE_CXX_FLAGS_DEBUG "-O0 -Wall -g -Wextra -DDEBUG $ENV{CXXFLAGS}") - -set(CMAKE_C_FLAGS_RELEASE "-g -O3 -DNDEBUG $ENV{CFLAGS}") -set(CMAKE_CXX_FLAGS_RELEASE "-g -O3 -DNDEBUG $ENV{CXXFLAGS}") - -if(NOT ${node_platform} MATCHES windows) - add_definitions(-D__POSIX__=1) -endif() - -if(${node_platform} MATCHES sunos) - add_definitions(-threads) -elseif(NOT ${node_platform} MATCHES cygwin*) - add_definitions(-pthread) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -rdynamic") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -rdynamic") - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pthread") -endif() - -if(${node_platform} MATCHES darwin) - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework Carbon") - # explicitly set this so that we don't check again when building libeio - set(HAVE_FDATASYNC 0) -else() - # OSX fdatasync() check wrong: http://public.kitware.com/Bug/view.php?id=10044 - check_function_exists(fdatasync HAVE_FDATASYNC) -endif() - -if(HAVE_FDATASYNC) - add_definitions(-DHAVE_FDATASYNC=1) -else() - add_definitions(-DHAVE_FDATASYNC=0) -endif() - -# check first without rt and then with rt -check_function_exists(clock_gettime HAVE_CLOCK_GETTIME) -check_library_exists(rt clock_gettime "" HAVE_CLOCK_GETTIME_RT) - -if(HAVE_CLOCK_GETTIME OR HAVE_CLOCK_GETTIME_RT) - check_symbol_exists(CLOCK_MONOTONIC "time.h" HAVE_MONOTONIC_CLOCK) -endif() - -if(HAVE_MONOTONIC_CLOCK) - add_definitions(-DHAVE_MONOTONIC_CLOCK=1) -else() - add_definitions(-DHAVE_MONOTONIC_CLOCK=0) -endif() - -if(DTRACE) - if(NOT ${node_platform} MATCHES sunos) - message(FATAL_ERROR "DTrace support only currently available on Solaris") - endif() - find_program(dtrace_bin dtrace) - if(NOT dtrace_bin) - message(FATAL_ERROR "DTrace binary not found") - endif() - add_definitions(-DHAVE_DTRACE=1) -endif() - -add_definitions( - -DPLATFORM="${node_platform}" - -DARCH="${node_arch}" - -DX_STACKSIZE=65536 - -D_LARGEFILE_SOURCE - -D_FILE_OFFSET_BITS=64 - -DEV_MULTIPLICITY=0 - -D_FORTIFY_SOURCE=2 - ) - -# set the exec output path to be compatible with the current waf build system -if(${CMAKE_BUILD_TYPE} MATCHES Debug) - set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/debug/) -else() - set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/default/) -endif() - -# -## --------------------------------------------------------- -# - -file(GLOB js2c_files ${PROJECT_SOURCE_DIR}/lib/*.js) -set(js2c_files ${PROJECT_SOURCE_DIR}/src/node.js ${js2c_files}) -file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/src) - diff --git a/cmake/docs.cmake b/cmake/docs.cmake deleted file mode 100644 index dcf37e040..000000000 --- a/cmake/docs.cmake +++ /dev/null @@ -1,80 +0,0 @@ -# -# docs -# - -file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/doc) - -set(node_binary ${PROJECT_BINARY_DIR}/default/node) -set(doctool tools/doctool/doctool.js) -set(changelog_html ${PROJECT_BINARY_DIR}/doc/changelog.html) - -file(GLOB_RECURSE doc_sources RELATIVE ${PROJECT_SOURCE_DIR} doc/*) - -foreach(FILE ${doc_sources}) - string(REGEX REPLACE "(.*)api_assets(.*)" "\\1api/assets\\2" OUT_FILE ${FILE}) - add_custom_command(OUTPUT ${PROJECT_BINARY_DIR}/${OUT_FILE} - COMMAND ${CMAKE_COMMAND} -E copy_if_different ${PROJECT_SOURCE_DIR}/${FILE} ${PROJECT_BINARY_DIR}/${OUT_FILE} - DEPENDS ${PROJECT_SOURCE_DIR}/${FILE} - ) - list(APPEND doc_sources_copy ${PROJECT_BINARY_DIR}/${OUT_FILE}) -endforeach() - -file(GLOB_RECURSE api_markdown RELATIVE ${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/doc/api/*) - -foreach(file ${api_markdown}) - string(REGEX REPLACE "(.*)\\.markdown" "\\1" tmp ${file}) - set(api_basenames ${api_basenames} ${tmp}) -endforeach() - -foreach(api ${api_basenames}) - set(api_html ${api_html} ${PROJECT_BINARY_DIR}/${api}.html) - add_custom_command( - OUTPUT "${PROJECT_BINARY_DIR}/${api}.html" - COMMAND ${node_binary} ${doctool} ${PROJECT_BINARY_DIR}/doc/template.html "${PROJECT_BINARY_DIR}/${api}.markdown" > "${PROJECT_BINARY_DIR}/${api}.html" - WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} - DEPENDS node ${doctool} ${doc_sources_copy} - VERBATIM - ) -endforeach() - -add_custom_target( - doc - DEPENDS node ${doc_sources_copy} ${api_html} ${changelog_html} - WORKING_DIRECTORY ${PROJECT_BINARY_DIR} - ) - -#add_custom_command( -# OUTPUT ${PROJECT_BINARY_DIR}/doc/api.html -# COMMAND ${PROJECT_BINARY_DIR}/default/node tools/ronnjs/bin/ronn.js --fragment doc/api.markdown -# | sed "s/

\\\(.*\\\)<\\/h2>/

\\1<\\/h2>/g" -# | cat doc/api_header.html - doc/api_footer.html > ${PROJECT_BINARY_DIR}/doc/api.html -# WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} -# DEPENDS node doc/api.markdown doc/api_header.html doc/api_footer.html -# VERBATIM -# ) - -add_custom_command( - OUTPUT ${changelog_html} - COMMAND ${node_binary} ${doctool} doc/template.html ChangeLog - | sed "s|assets/|api/assets/|g" - | sed "s|||g" > ${changelog_html} - WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} - DEPENDS ChangeLog node ${doctool} ${doc_sources_copy} - VERBATIM - ) - -#add_custom_command( -# OUTPUT ${PROJECT_BINARY_DIR}/doc/changelog.html -# COMMAND cat doc/changelog_header.html ChangeLog doc/changelog_footer.html > ${PROJECT_BINARY_DIR}/doc/changelog.html -# WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} -# DEPENDS ChangeLog doc/changelog_header.html doc/changelog_footer.html -# VERBATIM -# ) - -#add_custom_command( -# OUTPUT ${PROJECT_BINARY_DIR}/doc/node.1 -# COMMAND ${PROJECT_BINARY_DIR}/default/node tools/ronnjs/bin/ronn.js --roff doc/api.markdown > ${PROJECT_BINARY_DIR}/doc/node.1 -# WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} -# DEPENDS node doc/api.markdown tools/ronnjs/bin/ronn.js -# VERBATIM -# ) diff --git a/cmake/libs.cmake b/cmake/libs.cmake deleted file mode 100644 index 4720bfd82..000000000 --- a/cmake/libs.cmake +++ /dev/null @@ -1,53 +0,0 @@ -# -# libraries -# - -include(CheckLibraryExists) -include(FindPackageHandleStandardArgs) -set(HAVE_CONFIG_H True) -add_definitions(-DHAVE_CONFIG_H=1) - -find_package(OpenSSL QUIET) -find_package(Threads) -find_library(RT rt) -find_library(DL dl) -check_library_exists(socket socket "" HAVE_SOCKET_LIB) -check_library_exists(nsl gethostbyname "" HAVE_NSL_LIB) -check_library_exists(util openpty "" HAVE_UTIL_LIB) - -if(RT) - set(extra_libs ${extra_libs} ${RT}) -endif() - -if(DL) - set(extra_libs ${extra_libs} ${DL}) -endif() - -if(${node_platform} MATCHES freebsd) - find_library(KVM NAMES kvm) - set(extra_libs ${extra_libs} KVM) -endif() - -if(${HAVE_SOCKET_LIB}) - set(extra_libs ${extra_libs} socket) -endif() - -if(${HAVE_NSL_LIB}) - set(extra_libs ${extra_libs} nsl) -endif() - -if(HAVE_UTIL_LIB) - set(extra_libs ${extra_libs} util) -endif() - -if(OPENSSL_FOUND) - add_definitions(-DHAVE_OPENSSL=1) - set(HAVE_OPENSSL True) - set(node_extra_src ${node_extra_src} src/node_crypto.cc) - set(extra_libs ${extra_libs} ${OPENSSL_LIBRARIES}) -endif() - -include("cmake/libuv.cmake") -include("cmake/libv8.cmake") - -add_subdirectory(deps/http_parser) diff --git a/cmake/libuv.cmake b/cmake/libuv.cmake deleted file mode 100644 index 333320ea6..000000000 --- a/cmake/libuv.cmake +++ /dev/null @@ -1,2 +0,0 @@ -add_subdirectory(deps/uv) -set(LIBUV_INCLUDE_DIR deps/uv/include) diff --git a/cmake/libv8.cmake b/cmake/libv8.cmake deleted file mode 100644 index bfbf843ef..000000000 --- a/cmake/libv8.cmake +++ /dev/null @@ -1,25 +0,0 @@ -set(V8_INCLUDE_NAMES v8.h v8-debug.h v8-profiler.h v8stdint.h) -set(V8_LIBRARY_NAMES v8) - -if(SHARED_V8) - find_path(V8_INCLUDE_DIR NAMES ${V8_INCLUDE_NAMES}) - find_library(V8_LIBRARY_PATH NAMES ${V8_LIBRARY_NAMES} NO_CMAKE_PATH) -else() - set(V8_INCLUDE_DIR "${PROJECT_BINARY_DIR}/deps/v8/include") - if(${CMAKE_BUILD_TYPE} MATCHES Debug) - set(v8_fn "libv8_g.a") - else() - set(v8_fn "libv8.a") - endif() - set(V8_LIBRARY_PATH "${PROJECT_BINARY_DIR}/deps/v8/${v8_fn}") - install(DIRECTORY - ## Do NOT remove the trailing slash - ## it is required so that v8 headers are - ## copied directly into include/node - ## rather than in a subdirectory - ## See CMake's install(DIRECTORY) manual for details - ${V8_INCLUDE_DIR}/ - - DESTINATION include/node - ) -endif() diff --git a/cmake/node_build.cmake b/cmake/node_build.cmake deleted file mode 100644 index 14062e3e5..000000000 --- a/cmake/node_build.cmake +++ /dev/null @@ -1,149 +0,0 @@ -# -# node build stuff -# - -set(macros_file ${PROJECT_BINARY_DIR}/macros.py) - -# replace debug(x) and assert(x) with nothing in release build -if(${CMAKE_BUILD_TYPE} MATCHES Release) - file(APPEND ${macros_file} "macro debug(x) = void(0);\n") - file(APPEND ${macros_file} "macro assert(x) = void(0);\n") -endif() - -if(NOT DTRACE) - set(dtrace_probes - DTRACE_HTTP_CLIENT_REQUEST - DTRACE_HTTP_CLIENT_RESPONSE - DTRACE_HTTP_SERVER_REQUEST - DTRACE_HTTP_SERVER_RESPONSE - DTRACE_NET_SERVER_CONNECTION - DTRACE_NET_STREAM_END - DTRACE_NET_SOCKET_READ - DTRACE_NET_SOCKET_WRITE) - foreach(probe ${dtrace_probes}) - file(APPEND ${macros_file} "macro ${probe}(x) = void(0);\n") - endforeach() -endif() - -# Sort the JS files being built into natives so that the build is -# deterministic -list(SORT js2c_files) - -# include macros file in generation -set(js2c_files ${js2c_files} ${macros_file}) - -add_custom_command( - OUTPUT ${PROJECT_BINARY_DIR}/src/node_natives.h - COMMAND ${PYTHON_EXECUTABLE} ${PROJECT_BINARY_DIR}/tools/js2c.py ${PROJECT_BINARY_DIR}/src/node_natives.h ${js2c_files} - DEPENDS ${js2c_files}) - -set(node_platform_src "src/platform_${node_platform}.cc") - -if(NOT EXISTS ${CMAKE_SOURCE_DIR}/${node_platform_src}) - set(node_extra_src ${node_extra_src} "src/platform_none.cc") -else() - set(node_extra_src ${node_extra_src} ${node_platform_src}) -endif() - -set(node_sources - src/node_main.cc - src/node.cc - src/node_buffer.cc - src/node_javascript.cc - src/node_extensions.cc - src/node_http_parser.cc - src/node_constants.cc - src/node_file.cc - src/node_script.cc - src/node_os.cc - src/node_dtrace.cc - src/node_string.cc - src/timer_wrap.cc - src/handle_wrap.cc - src/stream_wrap.cc - src/tcp_wrap.cc - src/pipe_wrap.cc - src/cares_wrap.cc - src/stdio_wrap.cc - src/process_wrap.cc - src/node_cares.cc - src/node_net.cc - src/node_signal_watcher.cc - src/node_stat_watcher.cc - src/node_io_watcher.cc - src/node_stdio.cc - src/node_child_process.cc - src/node_timer.cc - src/node_natives.h - ${node_extra_src}) - -# Set up PREFIX, CCFLAGS, and CPPFLAGS for node_config.h -set(PREFIX ${CMAKE_INSTALL_PREFIX}) -if(${CMAKE_BUILD_TYPE} MATCHES Debug) - set(CCFLAGS "${CMAKE_C_FLAGS_DEBUG} ${CMAKE_C_FLAGS}") -else() - set(CCFLAGS "${CMAKE_C_FLAGS_RELEASE} ${CMAKE_C_FLAGS}") -endif() -get_directory_property(compile_defs COMPILE_DEFINITIONS) -foreach(def ${compile_defs}) - set(CPPFLAGS "${CPPFLAGS} -D${def}") -endforeach() - -configure_file(src/node_config.h.in ${PROJECT_BINARY_DIR}/src/node_config.h ESCAPE_QUOTES) -configure_file(config.h.cmake ${PROJECT_BINARY_DIR}/config.h) - -include_directories( - src - deps/libeio - deps/http_parser - ${V8_INCLUDE_DIR} - ${LIBUV_INCLUDE_DIR} - - ${PROJECT_BINARY_DIR} - ${PROJECT_BINARY_DIR}/src -) - -if(DTRACE) - add_custom_command(OUTPUT ${PROJECT_BINARY_DIR}/src/node_provider.h - COMMAND ${dtrace_bin} -x nolibs -h -o ${PROJECT_BINARY_DIR}/src/node_provider.h -s ${PROJECT_SOURCE_DIR}/src/node_provider.d - DEPENDS ${PROJECT_SOURCE_DIR}/src/node_provider.d) - - set(node_sources ${node_sources} src/node_provider.o) - set(node_sources src/node_provider.h ${node_sources}) -endif() - -add_executable(node ${node_sources}) -set_target_properties(node PROPERTIES DEBUG_POSTFIX "_g") -target_link_libraries(node - uv - http_parser - ${V8_LIBRARY_PATH} - ${CMAKE_THREAD_LIBS_INIT} - ${extra_libs}) - -if(DTRACE) - # manually gather up the object files for dtrace - get_property(sourcefiles TARGET node PROPERTY SOURCES) - foreach(src_file ${sourcefiles}) - if(src_file MATCHES ".*\\.cc$") - set(node_objs ${node_objs} ${PROJECT_BINARY_DIR}/CMakeFiles/node.dir/${src_file}.o) - endif() - endforeach() - - add_custom_command(OUTPUT ${PROJECT_BINARY_DIR}/src/node_provider.o - #COMMAND cmake -E echo ${node_objs} - COMMAND ${dtrace_bin} -G -x nolibs -s ${PROJECT_SOURCE_DIR}/src/node_provider.d -o ${PROJECT_BINARY_DIR}/src/node_provider.o ${node_objs} - DEPENDS ${node_objs}) -endif() - -install(TARGETS node RUNTIME DESTINATION bin) -install(FILES - ${PROJECT_BINARY_DIR}/config.h - src/node.h - src/node_object_wrap.h - src/node_buffer.h - src/node_version.h - ${PROJECT_BINARY_DIR}/src/node_config.h - - DESTINATION ${NODE_INCLUDE_PREFIX}/include/node -) diff --git a/cmake/package.cmake b/cmake/package.cmake deleted file mode 100644 index 755b9df9f..000000000 --- a/cmake/package.cmake +++ /dev/null @@ -1,39 +0,0 @@ -# -# package -# - -# Allow absolute paths when installing -# see http://www.cmake.org/pipermail/cmake/2008-July/022958.html -set(CPACK_SET_DESTDIR "ON") - -if(${node_platform} MATCHES darwin) - set(CPACK_GENERATOR "TGZ;PackageMaker") - # CPack requires the files to end in .txt - configure_file(LICENSE ${PROJECT_BINARY_DIR}/LICENSE.txt COPYONLY) - configure_file(ChangeLog ${PROJECT_BINARY_DIR}/ChangeLog.txt COPYONLY) - set(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_BINARY_DIR}/LICENSE.txt") - set(CPACK_RESOURCE_FILE_README "${PROJECT_BINARY_DIR}/ChangeLog.txt") - #set(CPACK_RESOURCE_FILE_WELCOME "") -elseif(${node_platform} MATCHES linux) - set(CPACK_GENERATOR "TGZ;DEB;RPM") -else() - set(CPACK_GENERATOR "TGZ") -endif() -set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Tom Hughes ") -set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Evented I/O for V8 JavaScript.") -set(CPACK_PACKAGE_DESCRIPTION "Evented I/O for V8 JavaScript. - Node's goal is to provide an easy way to build scalable network programs. - Node is similar in design to and influenced by systems like Ruby's Event - Machine or Python's Twisted. Node takes the event model a bit further—it - presents the event loop as a language construct instead of as a library.") -set(CPACK_DEBIAN_PACKAGE_DESCRIPTION "${CPACK_PACKAGE_DESCRIPTION}") -set(CPACK_DEBIAN_PACKAGE_SECTION "web") -file(READ ${PROJECT_SOURCE_DIR}/src/node_version.h node_version_h OFFSET 0) -string(REGEX REPLACE ".*NODE_MAJOR_VERSION[ ]*([0-9]+).*" "\\1" CPACK_PACKAGE_VERSION_MAJOR "${node_version_h}") -string(REGEX REPLACE ".*NODE_MINOR_VERSION[ ]*([0-9]+).*" "\\1" CPACK_PACKAGE_VERSION_MINOR "${node_version_h}") -string(REGEX REPLACE ".*NODE_PATCH_VERSION[ ]*([0-9]+).*" "\\1" CPACK_PACKAGE_VERSION_PATCH "${node_version_h}") -set(node_version_string "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}") - -# Note: this is intentionally at the bottom so that the above CPACK variables -# are used by CPack. -include(CPack) diff --git a/cmake/v8_build.cmake b/cmake/v8_build.cmake deleted file mode 100644 index b1ae43fe7..000000000 --- a/cmake/v8_build.cmake +++ /dev/null @@ -1,102 +0,0 @@ -# -# v8 build stuff -# - -string(TOLOWER ${CMAKE_BUILD_TYPE} v8mode) -set(v8arch ${node_arch}) - -if(${node_arch} MATCHES x86_64) - set(v8arch x64) -elseif(${node_arch} MATCHES x86) - set(v8arch ia32) -endif() - - -if(NOT SHARED_V8) - if(V8_SNAPSHOT) - set(v8_snapshot snapshot=on) - endif() - - if(V8_OPROFILE) - set(v8_oprofile prof=oprofile) - endif() - - if(V8_GDBJIT) - set(v8_gdbjit gdbjit=on) - endif() - - if(${node_platform} MATCHES darwin) - execute_process(COMMAND hwprefs cpu_count OUTPUT_VARIABLE cpu_count) - elseif(${node_platform} MATCHES linux) - execute_process(COMMAND sh -c "cat /proc/cpuinfo | grep processor | sort | uniq | wc -l" - OUTPUT_VARIABLE cpu_count) - elseif(${node_platform} MATCHES sunos) - execute_process(COMMAND sh -c "psrinfo | wc -l" OUTPUT_VARIABLE cpu_count) - else() - set(cpu_count 1) - endif() - - if(${cpu_count} GREATER 1) - math(EXPR parallel_jobs ${cpu_count}*2) - else() - set(parallel_jobs 1) - endif() - - add_library(v8 STATIC IMPORTED) - set_property(TARGET v8 - PROPERTY IMPORTED_LOCATION ${PROJECT_BINARY_DIR}/deps/v8/${v8_fn}) - - set(compile_env_vars "CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} AR=${CMAKE_AR} RANLIB=${CMAKE_RANLIB} CFLAGS=\"${CMAKE_C_FLAGS}\" CXXFLAGS=\"${CMAKE_CXX_FLAGS}\" LDFLAGS=\"${CMAKE_EXE_LINKER_FLAGS}\"") - - set(compile_cmd "${compile_env_vars} ${PYTHON_EXECUTABLE} ${PROJECT_BINARY_DIR}/tools/scons/scons.py -j ${parallel_jobs} visibility=default mode=${v8mode} arch=${v8arch} library=static ${v8_snapshot} ${v8_oprofile} ${v8_gdbjit} verbose=on") - - - if(CMAKE_VERSION VERSION_GREATER 2.8 OR CMAKE_VERSION VERSION_EQUAL 2.8) - # use ExternalProject for CMake >2.8 - include(ExternalProject) - - ExternalProject_Add(v8_extprj - URL ${PROJECT_SOURCE_DIR}/deps/v8 - - BUILD_IN_SOURCE True - BUILD_COMMAND sh -c "${compile_cmd}" - SOURCE_DIR ${PROJECT_BINARY_DIR}/deps/v8 - # ignore this stuff, it's not needed for building v8 but ExternalProject - # demands these steps - - CONFIGURE_COMMAND "true" # fake configure - INSTALL_COMMAND "true" # fake install - ) - - add_dependencies(node v8_extprj) - else() - # copy v8 sources inefficiently with CMake versions <2.8 - file(GLOB_RECURSE v8_sources RELATIVE ${PROJECT_SOURCE_DIR} deps/v8/*) - - if(NOT ${in_source_build}) - file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/deps/v8) - - foreach(FILE ${v8_sources}) - add_custom_command(OUTPUT ${PROJECT_BINARY_DIR}/${FILE} - COMMAND ${CMAKE_COMMAND} -E copy_if_different ${PROJECT_SOURCE_DIR}/${FILE} ${PROJECT_BINARY_DIR}/${FILE} - DEPENDS ${PROJECT_SOURCE_DIR}/${FILE} - ) - list(APPEND v8_sources_dest ${PROJECT_BINARY_DIR}/${FILE}) - endforeach() - else() - set(v8_sources_dest ${v8_sources}) - endif() - - add_custom_command( - OUTPUT ${PROJECT_BINARY_DIR}/deps/v8/${v8_fn} - COMMAND sh -c "${compile_cmd}" - WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/deps/v8/ - DEPENDS ${v8_sources_dest} - ) - - add_custom_target(v8_stock ALL DEPENDS ${PROJECT_BINARY_DIR}/deps/v8/${v8_fn}) - set_property(TARGET v8 PROPERTY - IMPORTED_LOCATION ${PROJECT_BINARY_DIR}/deps/v8/${v8_fn}) - add_dependencies(node v8_stock) - endif() -endif() diff --git a/config.h.cmake b/config.h.cmake deleted file mode 100644 index 2269c59d8..000000000 --- a/config.h.cmake +++ /dev/null @@ -1,2 +0,0 @@ -#cmakedefine HAVE_OPENSSL 1 -#cmakedefine HAVE_CONFIG_H 1 -- 2.34.1