-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMircrosoftRPC.cmake
More file actions
79 lines (73 loc) · 2.93 KB
/
MircrosoftRPC.cmake
File metadata and controls
79 lines (73 loc) · 2.93 KB
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
function(CreateIDLHeaders)
foreach(X IN LISTS ARGN)
get_filename_component(name ${X} NAME_WLE)
get_filename_component(abs ${X} ABSOLUTE)
get_filename_component(abs_dir ${abs} PATH)
get_filename_component(dir ${X} PATH)
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/${dir})
string(TOLOWER ${CMAKE_VS_PLATFORM_NAME} PLT_FLAG)
if(EXISTS "${abs_dir}/${name}.acf")
set(acf_flag "-acf")
set(acf_path "${abs_dir}/${name}.acf")
execute_process(COMMAND "midl" "${X}" "-${PLT_FLAG}" "${acf_flag}" "${acf_path}" "-out" "${CMAKE_BINARY_DIR}/${dir}" RESULTS_VARIABLE test_var WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR})
else()
message("NOT FOUND: ${abs_dir}/${name}.acf")
execute_process(COMMAND "midl" "${X}" "-${PLT_FLAG}" "-out" "${CMAKE_BINARY_DIR}/${dir}" RESULTS_VARIABLE test_var WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR})
endif()
endforeach()
endfunction()
function(GetIDLHeaderNames)
# Last arg is variable name. save and remove from list.
list(LENGTH ARGN FUNC_ARGC)
math(EXPR LAST_IDX "${FUNC_ARGC} - 1")
list(GET ARGN ${LAST_IDX} VAR_NAME)
list(REMOVE_AT ARGN ${LAST_IDX})
# Get the rest of the args and return correct names.
foreach(X IN LISTS ARGN)
get_filename_component(dir ${X} PATH)
get_filename_component(name ${X} NAME_WLE)
set(VAR_VALUE "${VAR_VALUE}${CMAKE_BINARY_DIR}/${dir}/${name}.h;")
endforeach()
set(${VAR_NAME} "${VAR_VALUE}" PARENT_SCOPE)
endfunction()
function(GetIDLClientNames)
# Last arg is variable name. save and remove from list.
list(LENGTH ARGN FUNC_ARGC)
math(EXPR LAST_IDX "${FUNC_ARGC} - 1")
list(GET ARGN ${LAST_IDX} VAR_NAME)
list(REMOVE_AT ARGN ${LAST_IDX})
# Get the rest of the args and return correct names.
foreach(X IN LISTS ARGN)
get_filename_component(dir ${X} PATH)
get_filename_component(name ${X} NAME_WLE)
set(VAR_VALUE "${VAR_VALUE}${CMAKE_BINARY_DIR}/${dir}/${name}_c.c;")
endforeach()
set(${VAR_NAME} "${VAR_VALUE}" PARENT_SCOPE)
endfunction()
function(GetIDLServerNames)
# Last arg is variable name. save and remove from list.
list(LENGTH ARGN FUNC_ARGC)
math(EXPR LAST_IDX "${FUNC_ARGC} - 1")
list(GET ARGN ${LAST_IDX} VAR_NAME)
list(REMOVE_AT ARGN ${LAST_IDX})
# Get the rest of the args and return correct names.
foreach(X IN LISTS ARGN)
get_filename_component(dir ${X} PATH)
get_filename_component(name ${X} NAME_WLE)
set(VAR_VALUE "${VAR_VALUE}${CMAKE_BINARY_DIR}/${dir}/${name}_s.c;")
endforeach()
set(${VAR_NAME} "${VAR_VALUE}" PARENT_SCOPE)
endfunction()
function(GetIDLIncludeDirs)
# Last arg is variable name. save and remove from list.
list(LENGTH ARGN FUNC_ARGC)
math(EXPR LAST_IDX "${FUNC_ARGC} - 1")
list(GET ARGN ${LAST_IDX} VAR_NAME)
list(REMOVE_AT ARGN ${LAST_IDX})
# Get the rest of the args and return correct names.
foreach(X IN LISTS ARGN)
get_filename_component(dir ${X} PATH)
set(VAR_VALUE "${VAR_VALUE}${CMAKE_BINARY_DIR}/${dir}")
endforeach()
set(${VAR_NAME} "${VAR_VALUE}" PARENT_SCOPE)
endfunction()