فهرست منبع

Merge pull request #52 from cscott/travis

Support g++-4.6 and travis CI server.
Patrick Reilly 11 سال پیش
والد
کامیت
ab35dcc96b
3فایلهای تغییر یافته به همراه47 افزوده شده و 1 حذف شده
  1. 5 0
      .travis.yml
  2. 31 0
      Makefile.travis
  3. 11 1
      config.m4

+ 5 - 0
.travis.yml

@@ -0,0 +1,5 @@
+language: cpp
+compiler: gcc
+before_install: make -f Makefile.travis before_install
+install: make -f Makefile.travis install
+script: make -f Makefile.travis test

+ 31 - 0
Makefile.travis

@@ -0,0 +1,31 @@
+# Configure and build scripts for travis CI system
+V8VER=3.22.10
+CPPVER=4.6
+
+export CXX=g++-$(CPPVER)
+export LINK=g++-$(CPPVER)
+
+export NO_INTERACTION=1
+
+before_install:
+	sudo apt-get update
+
+# install dependencies (php5, v8)
+install:
+	sudo apt-get install php5-cli php5-dev g++-$(CPPVER)
+	-$(RM) -rf $(V8VER).tar.gz v8-$(V8VER) v8-build
+	wget https://github.com/v8/v8/archive/$(V8VER).tar.gz
+	tar -xzf $(V8VER).tar.gz
+	$(MAKE) -C v8-$(V8VER) dependencies
+	$(MAKE) -C v8-$(V8VER) native library=shared -j4
+	mkdir -p v8-build/lib v8-build/include
+	cp v8-$(V8VER)/out/native/lib.target/lib*.so v8-build/lib/
+	cp v8-$(V8VER)/include/v8* v8-build/include/
+
+build:
+	phpize
+	./configure --with-v8js=$(realpath ./v8-build)
+	$(MAKE)
+
+test: build
+	$(MAKE) test

+ 11 - 1
config.m4

@@ -75,8 +75,18 @@ CPPFLAGS=$old_CPPFLAGS
   else
     AC_MSG_ERROR([could not determine libv8 version])
   fi
+
+  AC_CACHE_CHECK(for C standard version, ac_cv_v8_cstd, [
+    ac_cv_v8_cstd="c++11"
+    old_CPPFLAGS=$CPPFLAGS
+    AC_LANG_PUSH([C++])
+    CPPFLAGS="-std="$ac_cv_v8_cstd
+    AC_TRY_RUN([int main() { return 0; }],[],[ac_cv_v8_cstd="c++0x"],[])
+    AC_LANG_POP([C++])
+    CPPFLAGS=$old_CPPFLAGS
+  ]);
   
-  PHP_NEW_EXTENSION(v8js, v8js.cc v8js_convert.cc v8js_methods.cc v8js_variables.cc v8js_commonjs.cc, $ext_shared, , "-std=c++11")
+  PHP_NEW_EXTENSION(v8js, v8js.cc v8js_convert.cc v8js_methods.cc v8js_variables.cc v8js_commonjs.cc, $ext_shared, , "-std="$ac_cv_v8_cstd)
 
   PHP_ADD_MAKEFILE_FRAGMENT
 fi