- fix add_importlib_target
- fix win32dll entrypoint (we wouldn't need to specify one, if the one in mingw lib had enough underscores)

svn path=/branches/cmake-bringup/; revision=49453
This commit is contained in:
Timo Kreuzer 2010-11-02 21:31:45 +00:00
parent 42f5ff6943
commit d63277525c

View file

@ -63,7 +63,8 @@ macro(set_module_type MODULE TYPE)
set_entrypoint(${MODULE} mainCRTStartup)
endif ()
if(${TYPE} MATCHES win32dll)
set_entrypoint(${MODULE} __DllMainCRTStartup)
# Need this only because mingw library is broken
set_entrypoint(${MODULE} DllMainCRTStartup@12)
if(DEFINED baseaddress_${MODULE})
set_image_base(${MODULE} ${baseaddress_${MODULE}})
else()
@ -96,16 +97,21 @@ set(IDL_CLIENT_ARG /cstub) #.c for stub client library
macro(add_importlib_target _def_file)
get_filename_component(_name ${_def_file} NAME_WE)
add_custom_command(
OUTPUT {CMAKE_BINARY_DIR}/importlibs/lib${_name}.lib
COMMAND LINK /LIB /MACHINE:X86 /DEF:${_def_file} /OUT:${CMAKE_BINARY_DIR}/importlibs/lib${_name}.lib
DEPENDS ${_def_file}
)
add_custom_target(
lib${_name}
COMMAND LINK /LIB /MACHINE:X86 /DEF:${CMAKE_CURRENT_BINARY_DIR}/${_file}.def /OUT:${CMAKE_BINARY_DIR}/importlibs/lib${_name}.lib
DEPENDS ${_def_file})
DEPENDS {CMAKE_BINARY_DIR}/importlibs/lib${_name}.lib
)
endmacro()
macro(add_importlibs MODULE)
foreach(LIB ${ARGN})
target_link_libraries(${MODULE} ${CMAKE_BINARY_DIR}/importlibs/lib${LIB}.lib)
#add_dependencies(${MODULE} lib${LIB})
add_dependencies(${MODULE} lib${LIB})
endforeach()
endmacro()