3 set_property(GLOBAL PROPERTY DEBUG_CONFIGURATIONS Debug DebugOpt RelWithDebInfo)
5 set(HHVM_WHOLE_ARCHIVE_LIBRARIES
11 set(HHVM_WRAP_SYMS -Wl,--wrap=pthread_create -Wl,--wrap=pthread_exit -Wl,--wrap=pthread_join)
16 set(HHVM_LINK_LIBRARIES
29 LIST(APPEND HHVM_LINK_LIBRARIES hphp_thrift)
30 LIST(APPEND HHVM_LINK_LIBRARIES hphp_proxygen)
31 include(CheckCXXSourceCompiles)
32 CHECK_CXX_SOURCE_COMPILES("#include <pthread.h>
34 return pthread_mutex_timedlock();
36 if (NOT PTHREAD_TIMEDLOCK)
37 add_definitions(-DTHRIFT_MUTEX_EMULATE_PTHREAD_TIMEDLOCK)
41 if(HHVM_DYNAMIC_EXTENSION_DIR)
42 add_definitions(-DHHVM_DYNAMIC_EXTENSION_DIR="${HHVM_DYNAMIC_EXTENSION_DIR}")
45 add_definitions(-DHHVM_DYNAMIC_EXTENSION_DIR="${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/hhvm/extensions")
49 # Look for the chrpath tool so we can warn if it's not there
50 SET(FOUND_CHRPATH OFF)
51 IF(UNIX AND NOT APPLE)
52 find_program(CHRPATH chrpath)
53 IF (NOT CHRPATH STREQUAL "CHRPATH-NOTFOUND")
56 ENDIF(UNIX AND NOT APPLE)
58 LIST(APPEND CMAKE_PREFIX_PATH "$ENV{CMAKE_PREFIX_PATH}")
61 if(EXISTS "/opt/local/var/macports/")
62 LIST (APPEND CMAKE_PREFIX_PATH "/opt/local")
63 LIST (APPEND CMAKE_LIBRARY_PATH "/opt/local/lib/x86_64")
68 include(HPHPFunctions)
71 # Ubuntu 15.10 and 14.04 have been failing to include a dependency on jemalloc
72 # as a these linked flags force the dependency to be recorded
73 if (JEMALLOC_ENABLED AND LINUX)
74 LIST(APPEND HHVM_LINK_LIBRARIES -Wl,--no-as-needed ${JEMALLOC_LIB} -Wl,--as-needed)
77 if (HHVM_VERSION_OVERRIDE)
78 parse_version("HHVM_VERSION_" ${HHVM_VERSION_OVERRIDE})
79 add_definitions("-DHHVM_VERSION_OVERRIDE")
80 add_definitions("-DHHVM_VERSION_MAJOR=${HHVM_VERSION_MAJOR}")
81 add_definitions("-DHHVM_VERSION_MINOR=${HHVM_VERSION_MINOR}")
82 add_definitions("-DHHVM_VERSION_PATCH=${HHVM_VERSION_PATCH}")
83 add_definitions("-DHHVM_VERSION_SUFFIX=\"${HHVM_VERSION_SUFFIX}\"")
86 add_definitions(-D_REENTRANT=1 -D_PTHREADS=1 -D__STDC_FORMAT_MACROS)
89 add_definitions(-D_GNU_SOURCE)
93 add_definitions(-DGLOG_NO_ABBREVIATED_SEVERITIES)
94 add_definitions(-DWIN32_LEAN_AND_MEAN)
97 if(CMAKE_CONFIGURATION_TYPES)
99 message(FATAL_ERROR "Adding the appropriate defines for multi-config targets using anything other than MSVC is not yet supported!")
102 CMAKE_C_FLAGS_RELEASE CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO
103 CMAKE_CXX_FLAGS_RELEASE CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO)
104 set(${flag_var} "${${flag_var}} /D NDEBUG")
106 elseif(${CMAKE_BUILD_TYPE} MATCHES "Debug")
107 message("Generating DEBUG build")
109 add_definitions(-DNDEBUG)
110 message("Generating Release build")
114 add_definitions(-DALWAYS_ASSERT=1)
117 if(APPLE OR FREEBSD OR MSVC)
118 add_definitions(-DSKIP_USER_CHANGE=1)
122 add_definitions(-DUSE_TRACE=1)
126 # We have to be a little more permissive in some cases.
127 add_definitions(-fpermissive)
129 # Skip deprecation warnings in OpenSSL.
130 add_definitions(-DMAC_OS_X_VERSION_MIN_REQUIRED=MAC_OS_X_VERSION_10_6)
132 # Enable weak linking
133 add_definitions(-DMACOSX_DEPLOYMENT_TARGET=10.6)
137 add_definitions(-DENABLE_FASTCGI=1)
140 if(DISABLE_HARDWARE_COUNTERS OR NOT LINUX)
141 add_definitions(-DNO_HARDWARE_COUNTERS=1)
144 # enable the OSS options if we have any
145 add_definitions(-DHPHP_OSS=1)
147 # later versions of binutils don't play well without automake
148 add_definitions(-DPACKAGE=hhvm -DPACKAGE_VERSION=Release)
150 add_definitions(-DDEFAULT_CONFIG_DIR="${DEFAULT_CONFIG_DIR}")
152 add_definitions(-DHAVE_INTTYPES_H)
154 include_directories(${TP_DIR})
155 if (THIRD_PARTY_INCLUDE_PATHS)
156 include_directories(${THIRD_PARTY_INCLUDE_PATHS})
157 add_definitions(${THIRD_PARTY_DEFINITIONS})
158 include_directories(${HPHP_HOME}/hphp)
159 include_directories(${HPHP_HOME})