Blame view

3rdparty/jrtplib-3.11.2/cmake/Macros.cmake 3.83 KB
3d2ab595   Hu Chunming   支持gb28181
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
  macro(jrtplib_support_option DESCRIPTION OPTIONNAME DEFINENAME DEFAULTVALUE EMPTYVALUE)
  	option(${OPTIONNAME} ${DESCRIPTION} ${DEFAULTVALUE})
  	if (${OPTIONNAME})
  		set(${DEFINENAME} "#define ${DEFINENAME}")
  	else (${OPTIONNAME})
  		set(${DEFINENAME} "${EMPTYVALUE}")
  	endif (${OPTIONNAME})
  endmacro(jrtplib_support_option)
  
  macro(jrtplib_include_test INCFILE DEFINENAME EMPTYVALUE)
  	check_include_file_cxx(${INCFILE} jrtplib_include_test_${DEFINENAME})
  	if (jrtplib_include_test_${DEFINENAME})
  		set(${DEFINENAME} "#define ${DEFINENAME}")
  	else (jrtplib_include_test_${DEFINENAME})
  		set(${DEFINENAME} "${EMPTYVALUE}")
  	endif (jrtplib_include_test_${DEFINENAME})
  endmacro(jrtplib_include_test)
  
  macro (jrtplib_test_feature FILENAME DEFINENAME INVERT EMPTYVALUE EXTRADEFS) 
  	if (NOT DEFINED ${FILENAME}_RESULT)
  		try_compile(${FILENAME}_RESULT "${PROJECT_BINARY_DIR}" "${PROJECT_SOURCE_DIR}/tools/${FILENAME}.cpp"
  		            OUTPUT_VARIABLE OUTVAR 
  			    COMPILE_DEFINITIONS "${EXTRADEFS}")
  		message(STATUS "Compiling ${FILENAME}.cpp")
  		set(BLA ${INVERT})
  		if (NOT BLA)
  			if (${FILENAME}_RESULT)
  				set(${DEFINENAME} "#define ${DEFINENAME}" CACHE INTERNAL "setting ${DEFINENAME} in rtpconfig.h")
  				message(STATUS "Compiling ${FILENAME}.cpp worked - setting ${DEFINENAME} in rtpconfig.h")
  			else (${FILENAME}_RESULT)
  				set(${DEFINENAME} "${EMPTYVALUE}" CACHE INTERNAL "")
  				message(STATUS "Compiling ${FILENAME}.cpp failed - no action necessary")
  			endif (${FILENAME}_RESULT)
  		else (NOT BLA)
  			if (NOT ${FILENAME}_RESULT)
  				set(${DEFINENAME} "#define ${DEFINENAME}" CACHE INTERNAL "setting ${DEFINENAME} in rtpconfig.h")
  				message(STATUS "Compiling ${FILENAME}.cpp failed - setting ${DEFINENAME} in rtpconfig.h")
  			else (NOT ${FILENAME}_RESULT)
  				set(${DEFINENAME} "${EMPTYVALUE}" CACHE INTERNAL "")
  				message(STATUS "Compiling ${FILENAME}.cpp worked - no action necessary")
  			endif (NOT ${FILENAME}_RESULT)
  		endif (NOT BLA)
  	endif (NOT DEFINED ${FILENAME}_RESULT)
  endmacro (jrtplib_test_feature)
  
  macro(save_paths VARNAME)
  	set (BLA "${ARGN}")
  	foreach(i IN LISTS BLA)
  		set (BLA2 "${i}")
  		if (BLA2)
  			list(APPEND ${VARNAME} "${i}")
  		endif (BLA2)
  	endforeach(i)
  	list(LENGTH ${VARNAME} BLA)
  	if (BLA GREATER 0)
  		list(REMOVE_DUPLICATES ${VARNAME})
  	endif (BLA GREATER 0)
  endmacro(save_paths)
  
  macro(remove_empty VARNAME)
  	set (remove_empty_NEWLIST "")
  	foreach(i IN LISTS ${VARNAME})
  		set (BLA2 "${i}")
  		if (BLA2)
  			list(APPEND remove_empty_NEWLIST "${i}")
  		endif (BLA2)
  	endforeach(i)
  	set(${VARNAME} "${remove_empty_NEWLIST}")
  endmacro(remove_empty)
  
  macro(apply_include_paths VARNAME)
  	set (BLA "${VARNAME}")
  	foreach(i IN LISTS BLA)
  		set (BLA2 "${i}")
  		if (BLA2)
  			include_directories("${i}")
  		endif (BLA2)
  	endforeach(i)
  endmacro(apply_include_paths)
  
  macro(add_additional_stuff INCVAR LIBVAR)
  	set(ADDITIONAL_INCLUDE_DIRS "" CACHE STRING "Additional include directories")
  	if (UNIX AND NOT WIN32)
  		set(ADDITIONAL_LIBRARIES "" CACHE STRING "Additional libraries to link against")
  	else (UNIX AND NOT WIN32)
  		set(ADDITIONAL_GENERAL_LIBRARIES "" CACHE STRING "Additional libraries to link against in both debug and release modes")
  		set(ADDITIONAL_RELEASE_LIBRARIES "" CACHE STRING "Additional libraries to link against in release mode")
  		set(ADDITIONAL_DEBUG_LIBRARIES "" CACHE STRING "Additional libraries to link against in debug mode")
  
  		set(ADDITIONAL_LIBRARIES "${ADDITIONAL_GENERAL_LIBRARIES}")
  
  		foreach(l IN LISTS ADDITIONAL_RELEASE_LIBRARIES)
  			list(APPEND ADDITIONAL_LIBRARIES optimized)
  			list(APPEND ADDITIONAL_LIBRARIES "${l}")
  		endforeach(l)
  		foreach(l IN LISTS ADDITIONAL_DEBUG_LIBRARIES)
  			list(APPEND ADDITIONAL_LIBRARIES debug)
  			list(APPEND ADDITIONAL_LIBRARIES "${l}")
  		endforeach(l)
  	endif (UNIX AND NOT WIN32)
  
  	save_paths(${INCVAR} "${ADDITIONAL_INCLUDE_DIRS}")
  	save_paths(${LIBVAR} "${ADDITIONAL_LIBRARIES}")
  endmacro(add_additional_stuff)