mirror of
https://github.com/reactos/reactos.git
synced 2025-05-28 21:48:19 +00:00
[CMAKE]
- Support NO_PRIVATE_WARNINGS parameter when invoking spec2def to suppress warnings about symbols that should be private - Disable such warnings for msxml3, ole32 and rsaenh CORE-8445 svn path=/trunk/; revision=66200
This commit is contained in:
parent
41180fb6b0
commit
b8808ef996
5 changed files with 17 additions and 15 deletions
|
@ -310,7 +310,7 @@ function(generate_import_lib _libname _dllname _spec_file)
|
||||||
# Generate the def for the import lib
|
# Generate the def for the import lib
|
||||||
add_custom_command(
|
add_custom_command(
|
||||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${_libname}_implib.def
|
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${_libname}_implib.def
|
||||||
COMMAND native-spec2def -n=${_dllname} -a=${ARCH2} --implib -d=${CMAKE_CURRENT_BINARY_DIR}/${_libname}_implib.def ${CMAKE_CURRENT_SOURCE_DIR}/${_spec_file}
|
COMMAND native-spec2def -n=${_dllname} -a=${ARCH2} ${ARGN} --implib -d=${CMAKE_CURRENT_BINARY_DIR}/${_libname}_implib.def ${CMAKE_CURRENT_SOURCE_DIR}/${_spec_file}
|
||||||
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${_spec_file} native-spec2def)
|
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${_spec_file} native-spec2def)
|
||||||
set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/${_libname}_implib.def PROPERTIES EXTERNAL_OBJECT TRUE)
|
set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/${_libname}_implib.def PROPERTIES EXTERNAL_OBJECT TRUE)
|
||||||
|
|
||||||
|
@ -328,7 +328,7 @@ set(CMAKE_IMPLIB_CREATE_STATIC_LIBRARY "${CMAKE_DLLTOOL} --def <OBJECTS> --kill-
|
||||||
set(CMAKE_IMPLIB_DELAYED_CREATE_STATIC_LIBRARY "${CMAKE_DLLTOOL} --def <OBJECTS> --kill-at --output-delaylib=<TARGET>")
|
set(CMAKE_IMPLIB_DELAYED_CREATE_STATIC_LIBRARY "${CMAKE_DLLTOOL} --def <OBJECTS> --kill-at --output-delaylib=<TARGET>")
|
||||||
function(spec2def _dllname _spec_file)
|
function(spec2def _dllname _spec_file)
|
||||||
|
|
||||||
cmake_parse_arguments(__spec2def "ADD_IMPORTLIB;WITH_RELAY" "" "" ${ARGN})
|
cmake_parse_arguments(__spec2def "ADD_IMPORTLIB;NO_PRIVATE_WARNINGS;WITH_RELAY" "" "" ${ARGN})
|
||||||
|
|
||||||
# Get library basename
|
# Get library basename
|
||||||
get_filename_component(_file ${_dllname} NAME_WE)
|
get_filename_component(_file ${_dllname} NAME_WE)
|
||||||
|
@ -349,7 +349,12 @@ function(spec2def _dllname _spec_file)
|
||||||
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${_spec_file} native-spec2def)
|
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${_spec_file} native-spec2def)
|
||||||
|
|
||||||
if(__spec2def_ADD_IMPORTLIB)
|
if(__spec2def_ADD_IMPORTLIB)
|
||||||
generate_import_lib(lib${_file} ${_dllname} ${_spec_file})
|
set(_extraflags)
|
||||||
|
if(__spec2def_NO_PRIVATE_WARNINGS)
|
||||||
|
set(_extraflags --no-private-warnings)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
generate_import_lib(lib${_file} ${_dllname} ${_spec_file} ${_extraflags})
|
||||||
endif()
|
endif()
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
|
|
|
@ -315,14 +315,8 @@ else()
|
||||||
set(SPEC2DEF_ARCH i386)
|
set(SPEC2DEF_ARCH i386)
|
||||||
endif()
|
endif()
|
||||||
function(spec2def _dllname _spec_file)
|
function(spec2def _dllname _spec_file)
|
||||||
# Do we also want to add importlib targets?
|
|
||||||
if(${ARGC} GREATER 2)
|
cmake_parse_arguments(__spec2def "ADD_IMPORTLIB;NO_PRIVATE_WARNINGS" "" "" ${ARGN})
|
||||||
if(${ARGN} STREQUAL "ADD_IMPORTLIB")
|
|
||||||
set(__add_importlib TRUE)
|
|
||||||
else()
|
|
||||||
message(FATAL_ERROR "Wrong argument passed to spec2def, ${ARGN}")
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Get library basename
|
# Get library basename
|
||||||
get_filename_component(_file ${_dllname} NAME_WE)
|
get_filename_component(_file ${_dllname} NAME_WE)
|
||||||
|
@ -338,7 +332,10 @@ function(spec2def _dllname _spec_file)
|
||||||
COMMAND native-spec2def --ms -a=${SPEC2DEF_ARCH} -n=${_dllname} -d=${CMAKE_CURRENT_BINARY_DIR}/${_file}.def -s=${CMAKE_CURRENT_BINARY_DIR}/${_file}_stubs.c ${CMAKE_CURRENT_SOURCE_DIR}/${_spec_file}
|
COMMAND native-spec2def --ms -a=${SPEC2DEF_ARCH} -n=${_dllname} -d=${CMAKE_CURRENT_BINARY_DIR}/${_file}.def -s=${CMAKE_CURRENT_BINARY_DIR}/${_file}_stubs.c ${CMAKE_CURRENT_SOURCE_DIR}/${_spec_file}
|
||||||
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${_spec_file} native-spec2def)
|
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${_spec_file} native-spec2def)
|
||||||
|
|
||||||
if(__add_importlib)
|
if(__spec2def_ADD_IMPORTLIB)
|
||||||
|
# TODO: NO_PRIVATE_WARNINGS should add /IGNORE:4104 to the link command
|
||||||
|
# line. However that should be on all command lines outside of
|
||||||
|
# generate_import_lib in the first place.
|
||||||
generate_import_lib(lib${_file} ${_dllname} ${_spec_file})
|
generate_import_lib(lib${_file} ${_dllname} ${_spec_file})
|
||||||
endif()
|
endif()
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
|
@ -13,7 +13,7 @@ include_directories(
|
||||||
${REACTOS_SOURCE_DIR}/include/reactos/wine
|
${REACTOS_SOURCE_DIR}/include/reactos/wine
|
||||||
${REACTOS_SOURCE_DIR}/lib/3rdparty/libwin-iconv)
|
${REACTOS_SOURCE_DIR}/lib/3rdparty/libwin-iconv)
|
||||||
|
|
||||||
spec2def(msxml3.dll msxml3.spec ADD_IMPORTLIB)
|
spec2def(msxml3.dll msxml3.spec ADD_IMPORTLIB NO_PRIVATE_WARNINGS)
|
||||||
add_typelib(msxml3_v1.idl)
|
add_typelib(msxml3_v1.idl)
|
||||||
|
|
||||||
list(APPEND SOURCE
|
list(APPEND SOURCE
|
||||||
|
|
|
@ -11,7 +11,7 @@ add_definitions(
|
||||||
-DWINE_REGISTER_DLL)
|
-DWINE_REGISTER_DLL)
|
||||||
|
|
||||||
include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine)
|
include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine)
|
||||||
spec2def(ole32.dll ole32.spec ADD_IMPORTLIB)
|
spec2def(ole32.dll ole32.spec ADD_IMPORTLIB NO_PRIVATE_WARNINGS)
|
||||||
generate_idl_iids(dcom.idl)
|
generate_idl_iids(dcom.idl)
|
||||||
add_idl_headers(ole32idl dcom.idl irot.idl)
|
add_idl_headers(ole32idl dcom.idl irot.idl)
|
||||||
add_rpc_files(client irot.idl)
|
add_rpc_files(client irot.idl)
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
|
|
||||||
add_definitions(-D__WINESRC__)
|
add_definitions(-D__WINESRC__)
|
||||||
include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine)
|
include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine)
|
||||||
spec2def(rsaenh.dll rsaenh.spec ADD_IMPORTLIB)
|
spec2def(rsaenh.dll rsaenh.spec ADD_IMPORTLIB NO_PRIVATE_WARNINGS)
|
||||||
|
|
||||||
list(APPEND SOURCE
|
list(APPEND SOURCE
|
||||||
aes.c
|
aes.c
|
||||||
|
|
Loading…
Reference in a new issue