Remove dead serialized parameter from APCHandle::Create()
[hiphop-php.git] / CMake / HPHPIZEFunctions.cmake
blob2ee69dff9e7d2a260f147334f2a102b17c140691
1 # Functions for use when building extensions dynamically
3 # These functions also exist in CMake/EXTFunctions.cmake
4 # Their signatures should be kept consistent, though their behavior
5 # will differ slightly.
7 function(HHVM_LINK_LIBRARIES EXTNAME)
8   target_link_libraries(${EXTNAME} ${ARGN})
9 endfunction()
11 function(HHVM_ADD_INCLUDES EXTNAME)
12   include_directories(${ARGN})
13 endfunction()
15 # Add an extension
16 function(HHVM_EXTENSION EXTNAME)
17   set(EXTENSION_NAME ${EXTNAME} CACHE INTERNAL "")
18   add_library(${EXTNAME} SHARED ${ARGN})
19   set_target_properties(${EXTNAME} PROPERTIES PREFIX "")
20   set_target_properties(${EXTNAME} PROPERTIES SUFFIX ".so")
22   get_target_property(LOC ${EXTNAME} LOCATION)
23   get_target_property(TY ${EXTNAME} TYPE)
24   # Don't install via target, because it triggers a re-link that doesn't
25   # run the POST_BUILD custom command that embeds the systemlib on Linux.
26   install(CODE "FILE(INSTALL DESTINATION \"\${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/hhvm/extensions/${HHVM_VERSION_BRANCH}\" TYPE ${TY} FILES \"${LOC}\")")
27 endfunction()
29 function(embed_systemlibs TARGET DEST)
30   if (APPLE)
31     target_link_libraries(${TARGET} ${${TARGET}_SLIBS})
32   elseif (MSVC)
33     message(FATAL_ERROR "Shared extensions are not supported on Windows")
34   else()
35     add_custom_command(TARGET ${TARGET} POST_BUILD
36       COMMAND "objcopy"
37       ARGS ${${TARGET}_SLIBS} ${DEST}
38       COMMENT "Embedding php in ${TARGET}")
39   endif()
40 endfunction(embed_systemlibs)
42 function(HHVM_SYSTEMLIB EXTNAME)
43   foreach (SLIB ${ARGN})
44     embed_systemlib_byname(${EXTNAME} ${SLIB})
45   endforeach()
46   embed_systemlibs(${EXTNAME} "${EXTNAME}.so")
47 endfunction()
49 function(HHVM_DEFINE EXTNAME)
50   add_definitions(${ARGN})
51 endfunction()