%YAML 1.2 --- | PHP_ARG_ENABLE(grpc, whether to enable grpc support, [ --enable-grpc Enable grpc support]) if test "$PHP_GRPC" != "no"; then dnl Write more examples of tests here... dnl # --with-grpc -> add include path PHP_ADD_INCLUDE(PHP_EXT_SRCDIR()/include) PHP_ADD_INCLUDE(PHP_EXT_SRCDIR()/src/core/ext/upb-gen) PHP_ADD_INCLUDE(PHP_EXT_SRCDIR()/src/core/ext/upbdefs-gen) PHP_ADD_INCLUDE(PHP_EXT_SRCDIR()/src/php/ext/grpc) PHP_ADD_INCLUDE(PHP_EXT_SRCDIR()/third_party/abseil-cpp) PHP_ADD_INCLUDE(PHP_EXT_SRCDIR()/third_party/address_sorting/include) PHP_ADD_INCLUDE(PHP_EXT_SRCDIR()/third_party/boringssl-with-bazel/src/include) PHP_ADD_INCLUDE(PHP_EXT_SRCDIR()/third_party/re2) PHP_ADD_INCLUDE(PHP_EXT_SRCDIR()/third_party/upb) PHP_ADD_INCLUDE(PHP_EXT_SRCDIR()/third_party/utf8_range) PHP_ADD_INCLUDE(PHP_EXT_SRCDIR()/third_party/xxhash) LIBS="-lpthread $LIBS" CFLAGS="-std=c11 -g -O2" CXXFLAGS="-std=c++14 -fno-exceptions -fno-rtti -g -O2" GRPC_SHARED_LIBADD="-lpthread $GRPC_SHARED_LIBADD" PHP_REQUIRE_CXX() PHP_ADD_LIBRARY(pthread) PHP_ADD_LIBRARY(dl,,GRPC_SHARED_LIBADD) PHP_ADD_LIBRARY(dl) case $host in *darwin*) PHP_ADD_LIBRARY(c++,1,GRPC_SHARED_LIBADD) ;; *) PHP_ADD_LIBRARY(stdc++,1,GRPC_SHARED_LIBADD) PHP_ADD_LIBRARY(rt,,GRPC_SHARED_LIBADD) PHP_ADD_LIBRARY(rt) ;; esac PHP_SUBST(GRPC_SHARED_LIBADD) <% srcs = [] srcs.extend(php_config_m4.src) lib_maps = {lib.name: lib for lib in libs} php_deps = php_config_m4.get('deps', []) php_full_deps = [] for dep in php_deps: php_full_deps.append(dep) lib = lib_maps.get(dep, None) if lib: php_full_deps.extend(lib.transitive_deps) # construct list of all source files, but explicitly exclude zlib and cares for dep in set(php_full_deps) - set({'z', 'cares'}): lib = lib_maps.get(dep, None) if lib: srcs.extend(lib.src) srcs = sorted(set(srcs)) %> PHP_NEW_EXTENSION(grpc, % for src in srcs: ${src} ${"\\"} % endfor , $ext_shared, , -fvisibility=hidden ${"\\"} -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN ${"\\"} -D_HAS_EXCEPTIONS=0 -DNOMINMAX -DGRPC_ARES=0 ${"\\"} -DGRPC_POSIX_FORK_ALLOW_PTHREAD_ATFORK=1 ${"\\"} -DGRPC_XDS_USER_AGENT_NAME_SUFFIX='"\"PHP\""' ${"\\"} -DGRPC_XDS_USER_AGENT_VERSION_SUFFIX='"\"${settings.php_version.php()}\""') <% dirs = sorted(set(src[:src.rfind('/')] for src in srcs)) %> % for dir in dirs: PHP_ADD_BUILD_DIR($ext_builddir/${dir}) % endfor fi