| 1 | project(phapi) |
|---|
| 2 | |
|---|
| 3 | set(PHAPI_VERSION_MAJOR 1) |
|---|
| 4 | set(PHAPI_VERSION_MINOR 0) |
|---|
| 5 | set(PHAPI_VERSION_MICRO 0) |
|---|
| 6 | set(PHAPI_VERSION_STRING "1.0.0") |
|---|
| 7 | |
|---|
| 8 | add_definitions(${EXOSIP2_DEFINITIONS} |
|---|
| 9 | -DBUILD_PHAPI_DLL -DENABLE_TRACE) |
|---|
| 10 | |
|---|
| 11 | if(ENABLE_VIDEO) |
|---|
| 12 | find_file(HAVE_AVCODEC_H avcodec.h) |
|---|
| 13 | if(NOT HAVE_AVCODEC_H) |
|---|
| 14 | message("Can't find avcodec.h -- Video disabled") |
|---|
| 15 | else() |
|---|
| 16 | add_definitions(-PHAPI_VIDEO_SUPPORT) |
|---|
| 17 | endif(NOT HAVE_AVCODEC_H) |
|---|
| 18 | endif(ENABLE_VIDEO) |
|---|
| 19 | |
|---|
| 20 | if(ANDROID) |
|---|
| 21 | set(CMAKE_THREAD_LIBS_INIT "-lc") |
|---|
| 22 | endif() |
|---|
| 23 | include(FindThreads) |
|---|
| 24 | |
|---|
| 25 | have_includes(netinet/in.h) |
|---|
| 26 | |
|---|
| 27 | find_file(GSM_H gsm/gsm.h PATHS ${GSM_INCLUDE_DIRS}) |
|---|
| 28 | if (GSM_H) |
|---|
| 29 | set(ENABLE_GSM 1) |
|---|
| 30 | endif(GSM_H) |
|---|
| 31 | |
|---|
| 32 | find_file(SPEEX_H speex/speex.h PATHS ${SPEEX_INCLUDE_DIRS}) |
|---|
| 33 | if(SPEEX_H) |
|---|
| 34 | set(ENABLE_SPEEX 1) |
|---|
| 35 | endif(SPEEX_H) |
|---|
| 36 | |
|---|
| 37 | |
|---|
| 38 | if(NOT WIN32) |
|---|
| 39 | add_definitions( |
|---|
| 40 | -DHAVE_STRUCT_TIMEVAL |
|---|
| 41 | -DHAVE_SYS_TIME_H |
|---|
| 42 | ) |
|---|
| 43 | endif(NOT WIN32) |
|---|
| 44 | |
|---|
| 45 | include_directories(${CMAKE_CURRENT_BINARY_DIR} ${OSIP2_INCLUDE_DIRS} ${EXOSIP2_INCLUDE_DIRS} ${ORTP_INCLUDE_DIRS} |
|---|
| 46 | ${MEDIASTREAMER_INCLUDE_DIRS}) |
|---|
| 47 | |
|---|
| 48 | set(PHAPI_GENERIC_SRCS phapi.c sdphandler.c) |
|---|
| 49 | |
|---|
| 50 | if(OLD_MS_SUPPORT) |
|---|
| 51 | |
|---|
| 52 | set(PHAPI_MS_SRCS phmedia.c phcodec.c phmedia-audio.c phmedia-audio-null.c |
|---|
| 53 | phaudiodriver.c phrecorder.c phmbuf.c wav.c tonegen.c) |
|---|
| 54 | |
|---|
| 55 | if(CMAKE_UNDER_CE OR WIN32) |
|---|
| 56 | set(PHAPI_WINCE_SRCS phmedia-winmm.c) |
|---|
| 57 | endif(CMAKE_UNDER_CE OR WIN32) |
|---|
| 58 | |
|---|
| 59 | if(LINUX) |
|---|
| 60 | add_definitions(-DENABLE_OSS -DOS_LINUX) |
|---|
| 61 | |
|---|
| 62 | set(PHAPI_LINUX_SRCS phmedia-oss.c) |
|---|
| 63 | |
|---|
| 64 | find_library(ALSA asound) |
|---|
| 65 | if (ALSA) |
|---|
| 66 | set(PHAPI_LINUX_SRCS ${PHAPI_LINUX_SRCS} phmedia-alsa.c) |
|---|
| 67 | add_definitions(-DENABLE_ALSA) |
|---|
| 68 | endif(ALSA) |
|---|
| 69 | |
|---|
| 70 | set(MATHLIB m) |
|---|
| 71 | endif(LINUX) |
|---|
| 72 | |
|---|
| 73 | if(APPLE) |
|---|
| 74 | set(PHAPI_MAC_SRCS phmedia-coreaudio.c) |
|---|
| 75 | find_library(COREAUDIO_LIBRARIES CoreAudio) |
|---|
| 76 | find_library(AUDIOUNIT_LIBRARIES AudioUnit) |
|---|
| 77 | find_library(AUDIOTOOLBOX_LIBRARIES AudioToolbox) |
|---|
| 78 | find_library(CORESERVICES_LIBRARIES CoreServices) |
|---|
| 79 | set(MAC_LIBS ${COREAUDIO_LIBRARIES} |
|---|
| 80 | ${AUDIOUNIT_LIBRARIES} |
|---|
| 81 | ${AUDIOTOOLBOX_LIBRARIES} |
|---|
| 82 | ${CORESERVICES_LIBRARIES}) |
|---|
| 83 | endif(APPLE) |
|---|
| 84 | |
|---|
| 85 | else(OLD_MS_SUPPORT) |
|---|
| 86 | set(PHAPI_MS_SRCS phms.c phms_audiostream.c) |
|---|
| 87 | if (ENABLE_VIDEO) |
|---|
| 88 | set(PHAPI_MS_SRCS ${PHAPI_MS_SRCS} phms_videostream.c phms_videoctrl.c) |
|---|
| 89 | endif(ENABLE_VIDEO) |
|---|
| 90 | endif(OLD_MS_SUPPORT) |
|---|
| 91 | |
|---|
| 92 | set(PHAPI_SRCS ${PHAPI_GENERIC_SRCS} ${PHAPI_MS_SRCS} ${PHAPI_LINUX_SRCS} ${PHAPI_MAC_SRCS} ${PHAPI_WINCE_SRCS}) |
|---|
| 93 | set(PHAPI_LINK_LIBRARIES |
|---|
| 94 | ${EXOSIP2_LIBRARIES} |
|---|
| 95 | ${OSIP2_LIBRARIES} |
|---|
| 96 | ${ORTP_LIBRARIES} |
|---|
| 97 | ${ALSA} |
|---|
| 98 | ${MAC_LIBS} |
|---|
| 99 | ${MATHLIB} |
|---|
| 100 | ) |
|---|
| 101 | |
|---|
| 102 | if(USE_CSL) |
|---|
| 103 | add_definitions( -DHAVE_CSL ) |
|---|
| 104 | include_directories(${CSL_INCLUDE_DIRS} ${ACSLCORE_INCLUDE_DIRS}) |
|---|
| 105 | set(PHAPI_SRCS ${PHAPI_SRCS} phapi_csl.c) |
|---|
| 106 | endif(USE_CSL) |
|---|
| 107 | |
|---|
| 108 | if(ANDROID) |
|---|
| 109 | add_definitions(-DANDROID) |
|---|
| 110 | endif(ANDROID) |
|---|
| 111 | |
|---|
| 112 | if(MERCURIAL_FOUND) |
|---|
| 113 | execute_process( |
|---|
| 114 | COMMAND |
|---|
| 115 | ${MERCURIAL_HG_EXECUTABLE} -R ${CMAKE_CURRENT_SOURCE_DIR}/.. tip --template "{node|short}" |
|---|
| 116 | OUTPUT_VARIABLE PHAPI_REVISION |
|---|
| 117 | ) |
|---|
| 118 | endif(MERCURIAL_FOUND) |
|---|
| 119 | |
|---|
| 120 | configure_file("${CMAKE_CURRENT_SOURCE_DIR}/phapi-config.h.cmake" "${CMAKE_CURRENT_BINARY_DIR}/phapi-config.h") |
|---|
| 121 | |
|---|
| 122 | if(NOT OLD_MS_SUPPORT) |
|---|
| 123 | set(PHAPI_LINK_LIBRARIES ${PHAPI_LINK_LIBRARIES} ${MEDIASTREAMER_LIBRARIES}) |
|---|
| 124 | endif(NOT OLD_MS_SUPPORT) |
|---|
| 125 | |
|---|
| 126 | find_file(STDINT_H_FILE "stdint.h") |
|---|
| 127 | if(WIN32 AND NOT CMAKE_UNDER_CE) |
|---|
| 128 | include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../libs/util/cutil/include/cutil/msvc) |
|---|
| 129 | else(WIN32 AND NOT CMAKE_UNDER_CE) |
|---|
| 130 | if(CMAKE_UNDER_CE) |
|---|
| 131 | include_directories(${WCECOMPAT_INCLUDE_DIRS}) |
|---|
| 132 | endif(CMAKE_UNDER_CE) |
|---|
| 133 | endif(WIN32 AND NOT CMAKE_UNDER_CE) |
|---|
| 134 | |
|---|
| 135 | if(CMAKE_UNDER_CE) |
|---|
| 136 | add_definitions( |
|---|
| 137 | -DMASQUERADE_VIA |
|---|
| 138 | ) |
|---|
| 139 | include_directories(${WCECOMPAT_INCLUDE_DIRS}) |
|---|
| 140 | set(PHAPI_LINK_LIBRARIES ${PHAPI_LINK_LIBRARIES} ${WCECOMPAT_LIBRARIES} msdirent) |
|---|
| 141 | endif(CMAKE_UNDER_CE) |
|---|
| 142 | if(ANDROID) |
|---|
| 143 | set(PHAPI_LINK_LIBRARIES ${PHAPI_LINK_LIBRARIES} log) |
|---|
| 144 | endif(ANDROID) |
|---|
| 145 | |
|---|
| 146 | add_library(phapi SHARED ${PHAPI_SRCS}) |
|---|
| 147 | |
|---|
| 148 | set(PHAPI_INCLUDE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}" CACHE PATH "Include path for phapi library") |
|---|
| 149 | |
|---|
| 150 | if (NOT ANDROID) |
|---|
| 151 | set_target_properties(phapi PROPERTIES VERSION ${PHAPI_VERSION_STRING} SOVERSION ${PHAPI_VERSION_STRING}) |
|---|
| 152 | endif() |
|---|
| 153 | |
|---|
| 154 | target_link_libraries(phapi ${PHAPI_LINK_LIBRARIES}) |
|---|
| 155 | target_link_libraries(phapi LINK_INTERFACE_LIBRARIES phapi) |
|---|
| 156 | get_target_property(PHAPI_LIBRARIES phapi LOCATION) |
|---|