[CMAKE][CMAKE]

- turn most macros in function 2/x.
- separate rpc server and client stubs, and generate them directly instead of using a library, so they got the flags that the module uses.
- commit forgotten file from r53088
- get rid of winesdk target, it's useless now

svn path=/trunk/; revision=53112
This commit is contained in:
Jérôme Gardou 2011-08-07 00:53:19 +00:00
parent 909357699b
commit 8e004513b0
16 changed files with 144 additions and 97 deletions

View file

@ -202,7 +202,6 @@ else()
add_subdirectory(include/psdk)
add_subdirectory(include/dxsdk)
add_subdirectory(include/reactos/idl)
add_subdirectory(include/reactos/wine)
add_subdirectory(include/reactos/mc)
add_subdirectory(include/asm)

View file

@ -1,5 +1,8 @@
include_directories(${REACTOS_BINARY_DIR}/include/reactos/idl)
include_directories(${REACTOS_SOURCE_DIR}/include/reactos/idl
${CMAKE_CURRENT_BINARY_DIR})
add_rpc_files(server ${REACTOS_SOURCE_DIR}/include/reactos/idl/eventlogrpc.idl)
set_unicode()
@ -9,11 +12,14 @@ list(APPEND SOURCE
logport.c
eventlog.rc
rpc.c
file.c)
file.c
${CMAKE_CURRENT_BINARY_DIR}/eventlogrpc_s.c)
add_executable(eventlog ${SOURCE})
target_link_libraries(eventlog eventlogrpc ${PSEH_LIB})
if(NOT MSVC)
target_link_libraries(eventlog pseh)
endif()
set_module_type(eventlog win32cui)
add_importlibs(eventlog advapi32 rpcrt4 msvcrt kernel32 ntdll)

View file

@ -1,4 +1,8 @@
add_rpc_files(server
${REACTOS_SOURCE_DIR}/include/reactos/wine/epm.idl
${REACTOS_SOURCE_DIR}/include/reactos/wine/irot.idl)
set_unicode()
list(APPEND SOURCE
@ -6,16 +10,19 @@ list(APPEND SOURCE
irotp.c
rpcss_main.c
service_main.c
rpcss.rc)
rpcss.rc
${CMAKE_CURRENT_BINARY_DIR}/epm_s.c
${CMAKE_CURRENT_BINARY_DIR}/irot_s.c)
include_directories(${REACTOS_BINARY_DIR}/include/reactos/wine)
add_executable(rpcss ${SOURCE})
target_link_libraries(rpcss epmrpc irotrpc ${PSEH_LIB} wine)
target_link_libraries(rpcss
${PSEH_LIB}
wine)
set_module_type(rpcss win32cui)
add_importlibs(rpcss advapi32 rpcrt4 msvcrt kernel32 ntdll)
add_cd_file(TARGET rpcss DESTINATION reactos/system32 FOR all)
add_dependencies(rpcss winesdk)

View file

@ -1,13 +1,21 @@
set_unicode()
include_directories(${REACTOS_BINARY_DIR}/include/reactos/idl)
include_directories(${REACTOS_SOURCE_DIR}/include/reactos/idl)
remove_definitions(-D_WIN32_WINNT=0x502)
add_definitions(-D_WIN32_WINNT=0x600)
add_executable(umpnpmgr umpnpmgr.c umpnpmgr.rc)
target_link_libraries(umpnpmgr pnprpc wdmguid ${PSEH_LIB})
add_rpc_files(server ${REACTOS_SOURCE_DIR}/include/reactos/idl/pnp.idl)
set_unicode()
add_executable(umpnpmgr
umpnpmgr.c
umpnpmgr.rc
${CMAKE_CURRENT_BINARY_DIR}/pnp_s.c)
target_link_libraries(umpnpmgr
wdmguid
${PSEH_LIB})
set_module_type(umpnpmgr win32cui)
add_importlibs(umpnpmgr advapi32 rpcrt4 userenv msvcrt kernel32 ntdll)

View file

@ -1,10 +1,18 @@
include_directories(${REACTOS_SOURCE_DIR}/include/reactos/idl)
add_rpc_files(server ${REACTOS_SOURCE_DIR}/include/reactos/idl/wlansvc.idl)
set_unicode()
include_directories(${REACTOS_BINARY_DIR}/include/reactos/idl)
add_executable(wlansvc wlansvc.c rpcserver.c)
add_executable(wlansvc
wlansvc.c
rpcserver.c
${CMAKE_CURRENT_BINARY_DIR}/wlansvc_s.c)
target_link_libraries(wlansvc wlansvcrpc ${PSEH_LIB})
if(NOT MSVC)
target_link_libraries(wlansvc pseh)
endif()
set_module_type(wlansvc win32cui)
add_importlibs(wlansvc advapi32 rpcrt4 iphlpapi msvcrt kernel32 ntdll)

View file

@ -1,9 +1,11 @@
set_unicode()
include_directories(
${REACTOS_BINARY_DIR}/include/reactos/idl
${REACTOS_SOURCE_DIR}/include/reactos/subsys)
${REACTOS_SOURCE_DIR}/include/reactos/subsys
${REACTOS_SOURCE_DIR}/include/reactos/idl)
add_rpc_files(server ${REACTOS_SOURCE_DIR}/include/reactos/idl/svcctl.idl)
set_unicode()
list(APPEND SOURCE
config.c
@ -12,13 +14,14 @@ list(APPEND SOURCE
groupdb.c
rpcserver.c
services.c
services.rc)
services.rc
${CMAKE_CURRENT_BINARY_DIR}/svcctl_s.c)
add_executable(services ${SOURCE})
target_link_libraries(services
svcctlrpc
${PSEH_LIB})
if(NOT MSVC)
target_link_libraries(services pseh)
endif()
set_module_type(services win32cui)
add_importlibs(services user32 advapi32 rpcrt4 msvcrt kernel32 ntdll)

View file

@ -31,11 +31,11 @@ add_custom_command(
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/reactos.inf
COMMAND native-cabman -C ${CMAKE_CURRENT_BINARY_DIR}/reactos.dff -L ${CMAKE_CURRENT_BINARY_DIR} -I -P ${REACTOS_SOURCE_DIR}
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/reactos.dff)
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/reactos.dff native-cabman)
# Then we create the actual cab file using a custom target
add_custom_target(reactos_cab
COMMAND native-cabman -C ${CMAKE_CURRENT_BINARY_DIR}/reactos.dff -RC ${CMAKE_CURRENT_BINARY_DIR}/reactos.inf -L ${CMAKE_CURRENT_BINARY_DIR} -N -P ${REACTOS_SOURCE_DIR}
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/reactos.inf)
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/reactos.inf native-cabman)
add_cd_file(TARGET reactos_cab FILE ${CMAKE_CURRENT_BINARY_DIR}/reactos.cab ${CMAKE_CURRENT_BINARY_DIR}/reactos.inf DESTINATION reactos NO_CAB FOR bootcd regtest)

View file

@ -37,23 +37,23 @@ else()
endif()
macro(get_includes OUTPUT_VAR)
set(${OUTPUT_VAR} "")
function(get_includes OUTPUT_VAR)
get_directory_property(_includes INCLUDE_DIRECTORIES)
foreach(arg ${_includes})
set(${OUTPUT_VAR} -I${arg} ${${OUTPUT_VAR}})
list(APPEND __tmp_var -I${arg})
endforeach()
endmacro()
set(${OUTPUT_VAR} ${__tmp_var} PARENT_SCOPE)
endfunction()
macro(get_defines OUTPUT_VAR)
set(${OUTPUT_VAR} "")
function(get_defines OUTPUT_VAR)
get_directory_property(_defines COMPILE_DEFINITIONS)
foreach(arg ${_defines})
set(${OUTPUT_VAR} ${${OUTPUT_VAR}} -D${arg})
list(APPEND __tmp_var -D${arg})
endforeach()
endmacro()
set(${OUTPUT_VAR} ${__tmp_var} PARENT_SCOPE)
endfunction()
macro(add_typelib TARGET)
function(add_typelib TARGET)
get_includes(INCLUDES)
get_defines(DEFINES)
foreach(FILE ${ARGN})
@ -65,9 +65,9 @@ macro(add_typelib TARGET)
list(APPEND OBJECTS ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.tlb)
endforeach()
add_custom_target(${TARGET} ALL DEPENDS ${OBJECTS})
endmacro()
endfunction()
macro(add_idl_headers TARGET)
function(add_idl_headers TARGET)
get_includes(INCLUDES)
get_defines(DEFINES)
foreach(FILE ${ARGN})
@ -79,10 +79,10 @@ macro(add_idl_headers TARGET)
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${FILE} ${IDL_DEPENDS})
list(APPEND HEADERS ${HEADER})
endforeach()
add_custom_target(${TARGET} ALL DEPENDS ${HEADERS})
endmacro()
add_custom_target(${TARGET} DEPENDS ${HEADERS})
endfunction()
macro(add_rpcproxy_files)
function(add_rpcproxy_files)
get_includes(INCLUDES)
get_defines(DEFINES)
@ -117,30 +117,35 @@ macro(add_rpcproxy_files)
COMMAND ${IDL_COMPILER} ${INCLUDES} ${DEFINES} ${IDL_FLAGS} --dlldata-only -o ${CMAKE_CURRENT_BINARY_DIR}/proxy.dlldata.c ${IDLS}
DEPENDS ${IDLS} ${IDL_DEPENDS})
endif()
endmacro()
endfunction()
macro(add_rpc_library TARGET)
function(add_rpc_files __type)
get_includes(INCLUDES)
get_defines(DEFINES)
# Is it a client or server module?
if(__type STREQUAL server)
set(__server_client ${IDL_SERVER_ARG})
set(__suffix _s)
elseif(__type STREQUAL client)
set(__server_client ${IDL_CLIENT_ARG})
set(__suffix _c)
else()
message(FATAL_ERROR "Please pass either server or client as argument to add_rpc_files")
endif()
foreach(FILE ${ARGN})
get_filename_component(NAME ${FILE} NAME_WE)
get_filename_component(__name ${FILE} NAME_WE)
set(__name ${__name}${__suffix})
if(NOT IS_ABSOLUTE ${FILE})
set(FILE ${CMAKE_CURRENT_SOURCE_DIR}/${FILE})
endif()
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${NAME}_s.c ${CMAKE_CURRENT_BINARY_DIR}/${NAME}_s.h
COMMAND ${IDL_COMPILER} ${INCLUDES} ${DEFINES} ${IDL_FLAGS} ${IDL_HEADER_ARG2} ${CMAKE_CURRENT_BINARY_DIR}/${NAME}_s.h ${IDL_SERVER_ARG} ${CMAKE_CURRENT_BINARY_DIR}/${NAME}_s.c ${CMAKE_CURRENT_SOURCE_DIR}/${FILE}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${FILE} ${IDL_DEPENDS})
list(APPEND server_SOURCES ${CMAKE_CURRENT_BINARY_DIR}/${NAME}_s.c)
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${NAME}_c.c ${CMAKE_CURRENT_BINARY_DIR}/${NAME}_c.h
COMMAND ${IDL_COMPILER} ${INCLUDES} ${DEFINES} ${IDL_FLAGS} ${IDL_HEADER_ARG2} ${CMAKE_CURRENT_BINARY_DIR}/${NAME}_c.h ${IDL_CLIENT_ARG} ${CMAKE_CURRENT_BINARY_DIR}/${NAME}_c.c ${CMAKE_CURRENT_SOURCE_DIR}/${FILE}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${FILE} ${IDL_DEPENDS})
list(APPEND client_SOURCES ${CMAKE_CURRENT_BINARY_DIR}/${NAME}_c.c)
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${__name}.c ${CMAKE_CURRENT_BINARY_DIR}/${__name}.h
COMMAND ${IDL_COMPILER} ${INCLUDES} ${DEFINES} ${IDL_FLAGS} ${IDL_HEADER_ARG2} ${CMAKE_CURRENT_BINARY_DIR}/${__name}.h ${__server_client} ${CMAKE_CURRENT_BINARY_DIR}/${__name}.c ${FILE}
DEPENDS ${FILE} ${IDL_DEPENDS})
endforeach()
add_library(${TARGET} ${client_SOURCES} ${server_SOURCES})
add_dependencies(${TARGET} psdk)
endmacro()
endfunction()
macro(generate_idl_iids IDL_FILE)
function(generate_idl_iids IDL_FILE)
get_filename_component(FILE ${IDL_FILE} NAME)
if(FILE STREQUAL "${IDL_FILE}")
set(IDL_FILE_FULL "${CMAKE_CURRENT_SOURCE_DIR}/${IDL_FILE}")
@ -155,9 +160,9 @@ macro(generate_idl_iids IDL_FILE)
COMMAND ${IDL_COMPILER} ${INCLUDES} ${DEFINES} ${IDL_FLAGS} ${IDL_INTERFACE_ARG} ${CMAKE_CURRENT_BINARY_DIR}/${NAME}_i.c ${IDL_FILE_FULL}
DEPENDS ${IDL_FILE_FULL} ${IDL_DEPENDS})
set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/${NAME}_i.c PROPERTIES GENERATED TRUE)
endmacro()
endfunction()
macro(add_iid_library TARGET)
function(add_iid_library TARGET)
foreach(IDL_FILE ${ARGN})
get_filename_component(NAME ${IDL_FILE} NAME_WE)
generate_idl_iids(${IDL_FILE})
@ -165,4 +170,5 @@ macro(add_iid_library TARGET)
endforeach()
add_library(${TARGET} ${IID_SOURCES})
add_dependencies(${TARGET} psdk)
endmacro()
set_target_properties(${TARGET} PROPERTIES EXCLUDE_FROM_ALL TRUE)
endfunction()

View file

@ -1,6 +1,4 @@
set_unicode()
spec2def(advapi32.dll advapi32.spec)
add_definitions(-D_ADVAPI32_)
@ -8,7 +6,16 @@ add_definitions(-D_ADVAPI32_)
remove_definitions(-D_WIN32_WINNT=0x502)
add_definitions(-D_WIN32_WINNT=0x600)
include_directories(${REACTOS_BINARY_DIR}/include/reactos/idl)
include_directories(
${REACTOS_SOURCE_DIR}/include/reactos/idl
${CMAKE_CURRENT_BINARY_DIR})
add_rpc_files(client
${REACTOS_SOURCE_DIR}/include/reactos/idl/eventlogrpc.idl
${REACTOS_SOURCE_DIR}/include/reactos/idl/lsa.idl
${REACTOS_SOURCE_DIR}/include/reactos/idl/svcctl.idl)
set_unicode()
list(APPEND SOURCE
crypt/crypt.c
@ -43,16 +50,16 @@ list(APPEND SOURCE
token/token.c
advapi32.rc
${CMAKE_CURRENT_BINARY_DIR}/advapi32_stubs.c
${CMAKE_CURRENT_BINARY_DIR}/advapi32.def)
${CMAKE_CURRENT_BINARY_DIR}/advapi32.def
${CMAKE_CURRENT_BINARY_DIR}/eventlogrpc_c.c
${CMAKE_CURRENT_BINARY_DIR}/lsa_c.c
${CMAKE_CURRENT_BINARY_DIR}/svcctl_c.c)
add_library(advapi32 SHARED ${SOURCE})
set_module_type(advapi32 win32dll)
target_link_libraries(advapi32
svcctlrpc
lsarpc
eventlogrpc
wine
${PSEH_LIB})

View file

@ -1,10 +1,12 @@
set_unicode()
include_directories(
${REACTOS_BINARY_DIR}/include/reactos/idl
${REACTOS_SOURCE_DIR}/include/reactos/idl
${REACTOS_SOURCE_DIR}/include/reactos/subsys/lsass)
add_rpc_files(server ${REACTOS_SOURCE_DIR}/include/reactos/idl/lsa.idl)
set_unicode()
set_rc_compiler()
spec2def(lsasrv.dll lsasrv.spec)
@ -17,14 +19,14 @@ list(APPEND SOURCE
sids.c
lsasrv.rc
${CMAKE_CURRENT_BINARY_DIR}/lsasrv_stubs.c
${CMAKE_CURRENT_BINARY_DIR}/lsasrv.def)
${CMAKE_CURRENT_BINARY_DIR}/lsasrv.def
${CMAKE_CURRENT_BINARY_DIR}/lsa_s.c)
add_library(lsasrv SHARED ${SOURCE})
set_entrypoint(lsasrv 0)
target_link_libraries(lsasrv
lsarpc
wine
${PSEH_LIB})

View file

@ -16,9 +16,9 @@ add_definitions(
-DREGISTER_PROXY_DLL
-DCOM_NO_WINDOWS_H)
include_directories(
${CMAKE_CURRENT_BINARY_DIR}
${REACTOS_SOURCE_DIR}/include/reactos/wine)
include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine)
add_rpc_files(client irot.idl)
add_rpcproxy_files(
dcom.idl
@ -66,6 +66,7 @@ list(APPEND SOURCE
ole32res.rc
${CMAKE_CURRENT_BINARY_DIR}/dcom_i.c
${CMAKE_CURRENT_BINARY_DIR}/dcom_p.c
${CMAKE_CURRENT_BINARY_DIR}/irot_c.c
${CMAKE_CURRENT_BINARY_DIR}/ole32_unknwn_p.c
${CMAKE_CURRENT_BINARY_DIR}/ole32_objidl_p.c
${CMAKE_CURRENT_BINARY_DIR}/ole32_oleidl_p.c
@ -79,7 +80,6 @@ set_module_type(ole32 win32dll)
target_link_libraries(ole32
wine
irotrpc
uuid
${PSEH_LIB})

View file

@ -9,6 +9,8 @@ generate_idl_iids(qmgrprxy.idl)
spec2def(qmgrprxy.dll qmgrprxy.spec)
add_rpcproxy_files(qmgrprxy.idl)
list(APPEND SOURCE
version.rc
${CMAKE_CURRENT_BINARY_DIR}/qmgrprxy_i.c
@ -16,8 +18,6 @@ list(APPEND SOURCE
${CMAKE_CURRENT_BINARY_DIR}/proxy.dlldata.c
${CMAKE_CURRENT_BINARY_DIR}/qmgrprxy.def)
add_rpcproxy_files(qmgrprxy.idl)
add_library(qmgrprxy SHARED ${SOURCE})
set_module_type(qmgrprxy win32dll)

View file

@ -1,4 +1,6 @@
add_rpc_files(client epm.idl)
list(APPEND SOURCE
cproxy.c
cpsf.c
@ -20,6 +22,7 @@ list(APPEND SOURCE
rpc_server.c
rpc_transport.c
unix_func.c
${CMAKE_CURRENT_BINARY_DIR}/epm_c.c
${CMAKE_CURRENT_BINARY_DIR}/rpcrt4_stubs.c
${CMAKE_CURRENT_BINARY_DIR}/rpcrt4.def)
@ -34,6 +37,8 @@ add_definitions(
-D_RPCRT4_
-DCOM_NO_WINDOWS_H
-DMSWMSG)
include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine)
spec2def(rpcrt4.dll rpcrt4.spec)
@ -41,17 +46,12 @@ add_library(rpcrt4 SHARED ${SOURCE})
set_module_type(rpcrt4 win32dll)
include_directories(
${REACTOS_SOURCE_DIR}/include/reactos/wine
${REACTOS_BINARY_DIR}/include/reactos/wine)
target_link_libraries(rpcrt4
wine
uuid
epmrpc
${PSEH_LIB})
add_importlibs(rpcrt4 msvcrt user32 advapi32 secur32 iphlpapi ws2_32 kernel32 ntdll)
add_dependencies(rpcrt4 winesdk)
add_delay_importlibs(rpcrt4 wininet)
add_cd_file(TARGET rpcrt4 DESTINATION reactos/system32 FOR all)
add_importlib_target(rpcrt4.spec)

View file

@ -1,14 +1,17 @@
set_unicode()
include_directories(
${REACTOS_SOURCE_DIR}/include/reactos/wine
${REACTOS_SOURCE_DIR}/include/reactos/idl
${CMAKE_CURRENT_BINARY_DIR})
add_definitions(
-D_SETUPAPI_
-D_CFGMGR32_
-Dwcsnicmp=_wcsnicmp)
include_directories(
${REACTOS_SOURCE_DIR}/include/reactos/wine
${REACTOS_BINARY_DIR}/include/reactos/idl)
add_rpc_files(client ${REACTOS_SOURCE_DIR}/include/reactos/idl/pnp.idl)
set_unicode()
set_rc_compiler()
@ -33,14 +36,14 @@ list(APPEND SOURCE
rpc.c
setupapi.rc
${CMAKE_CURRENT_BINARY_DIR}/setupapi_stubs.c
${CMAKE_CURRENT_BINARY_DIR}/setupapi.def)
${CMAKE_CURRENT_BINARY_DIR}/setupapi.def
${CMAKE_CURRENT_BINARY_DIR}/pnp_c.c)
add_library(setupapi SHARED ${SOURCE})
set_module_type(setupapi win32dll)
target_link_libraries(setupapi
pnprpc
uuid
wine
${PSEH_LIB})

View file

@ -1,19 +1,21 @@
include_directories(${REACTOS_BINARY_DIR}/include/reactos/idl)
include_directories( ${REACTOS_SOURCE_DIR}/include/reactos/idl)
add_rpc_files(client ${REACTOS_SOURCE_DIR}/include/reactos/idl/wlansvc.idl)
spec2def(wlanapi.dll wlanapi.spec)
list(APPEND SOURCE
main.c
${CMAKE_CURRENT_BINARY_DIR}/wlanapi_stubs.c
${CMAKE_CURRENT_BINARY_DIR}/wlanapi.def)
${CMAKE_CURRENT_BINARY_DIR}/wlanapi.def
${CMAKE_CURRENT_BINARY_DIR}/wlansvc_c.c)
add_library(wlanapi SHARED ${SOURCE})
set_entrypoint(wlanapi 0)
target_link_libraries(wlanapi
wlansvcrpc
wine
${PSEH_LIB})

View file

@ -1,8 +1,4 @@
add_idl_headers(wineheaders itss.idl)
add_idl_headers(winesdk epm.idl irot.idl)
add_rpc_library(epmrpc epm.idl)
add_rpc_library(irotrpc irot.idl)
add_iid_library(itss_guid itss.idl)