- Add set_image_base macro.
- Fix ks linking.

svn path=/branches/cmake-bringup/; revision=49258
This commit is contained in:
Amine Khaldi 2010-10-24 12:44:36 +00:00
parent 1fb94b1cb5
commit 8c7563f645
2 changed files with 15 additions and 4 deletions

View file

@ -26,9 +26,10 @@ add_library(ks SHARED
kcom.c
ks.rc)
set_target_properties(ks PROPERTIES LINK_FLAGS "-Wl,-entry,0 -Wl,--image-base,0x00010000 -Wl,--subsystem,native" SUFFIX ".sys")
set_module_type(ks kernelmodedriver)
set_target_properties(ks PROPERTIES SUFFIX ".sys")
set_entrypoint(ks 0)
set_subsystem(ks native)
set_image_base(ks 0x00010000)
target_link_libraries(ks
${CMAKE_CURRENT_SOURCE_DIR}/ks.def

View file

@ -56,6 +56,15 @@ macro(set_subsystem MODULE SUBSYSTEM)
set_target_properties(${MODULE} PROPERTIES LINK_FLAGS ${NEW_LINKER_FLAGS})
endmacro()
macro(set_image_base MODULE IMAGE_BASE)
set(NEW_LINKER_FLAGS "-Wl,--image-base,${IMAGE_BASE}")
get_target_property(LINKER_FLAGS ${MODULE} LINK_FLAGS)
if(LINKER_FLAGS)
set(NEW_LINKER_FLAGS "${LINKER_FLAGS} ${NEW_LINKER_FLAGS}")
endif()
set_target_properties(${MODULE} PROPERTIES LINK_FLAGS ${NEW_LINKER_FLAGS})
endmacro()
macro(add_importlibs MODULE)
foreach(LIB ${ARGN})
target_link_libraries(${MODULE} ${LIB}.dll.a)
@ -106,9 +115,10 @@ macro(set_module_type MODULE TYPE)
set_target_properties(${MODULE} PROPERTIES SUFFIX ".cpl")
endif()
if(${TYPE} MATCHES kernelmodedriver)
set_target_properties(${MODULE} PROPERTIES LINK_FLAGS "-Wl,--image-base,0x00010000 -Wl,--exclude-all-symbols" SUFFIX ".sys")
set_target_properties(${MODULE} PROPERTIES LINK_FLAGS "-Wl,--exclude-all-symbols" SUFFIX ".sys")
set_entrypoint(${MODULE} DriverEntry@8)
set_subsystem(${MODULE} native)
set_image_base(${MODULE} 0x00010000)
add_dependencies(${MODULE} bugcodes)
endif()
endmacro()