Author: akhaldi Date: Wed Aug 4 19:10:43 2010 New Revision: 48459
URL: http://svn.reactos.org/svn/reactos?rev=48459&view=rev Log: [CMAKE] - Move generated precompiled headers to binary folders. - Enable auto image base for ntdll. - Update the location of generated PCH files for rtl, ntdll and crt.
Modified: branches/cmake-bringup/CMakeMacros.cmake branches/cmake-bringup/dll/ntdll/CMakeLists.txt branches/cmake-bringup/lib/rtl/CMakeLists.txt branches/cmake-bringup/lib/sdk/crt/CMakeLists.txt
Modified: branches/cmake-bringup/CMakeMacros.cmake URL: http://svn.reactos.org/svn/reactos/branches/cmake-bringup/CMakeMacros.cmake?... ============================================================================== --- branches/cmake-bringup/CMakeMacros.cmake [iso-8859-1] (original) +++ branches/cmake-bringup/CMakeMacros.cmake [iso-8859-1] Wed Aug 4 19:10:43 2010 @@ -1,40 +1,42 @@
MACRO(_PCH_GET_COMPILE_FLAGS _target_name _out_compile_flags _header_filename)
- # Add the precompiled header to the build - set(_gch_filename "${_header_filename}.gch") - list(APPEND ${_out_compile_flags} -c ${_header_filename} -o ${_gch_filename}) + # Add the precompiled header to the build + get_filename_component(FILE ${_header_filename} NAME) + set(_gch_filename "${_target_name}_${FILE}.gch") + list(APPEND ${_out_compile_flags} -c ${_header_filename} -o ${_gch_filename})
- # This gets us our includes - get_directory_property(DIRINC INCLUDE_DIRECTORIES) - foreach(item ${DIRINC}) - list(APPEND ${_out_compile_flags} -I${item}) - endforeach(item) + # This gets us our includes + get_directory_property(DIRINC INCLUDE_DIRECTORIES) + foreach(item ${DIRINC}) + list(APPEND ${_out_compile_flags} -I${item}) + endforeach(item)
- # This is a particular bit of undocumented/hacky magic I'm quite proud of - get_directory_property(_compiler_flags DEFINITIONS) - STRING(REPLACE "\ " "\t" _compiler_flags ${_compiler_flags}) - list(APPEND ${_out_compile_flags} ${_compiler_flags}) + # This is a particular bit of undocumented/hacky magic I'm quite proud of + get_directory_property(_compiler_flags DEFINITIONS) + string(REPLACE "\ " "\t" _compiler_flags ${_compiler_flags}) + list(APPEND ${_out_compile_flags} ${_compiler_flags})
- # This gets any specific definitions that were added with set-target-property - GET_TARGET_PROPERTY(_target_defs ${_target_name} COMPILE_DEFINITIONS) - if (_target_defs) - foreach(item ${_target_defs}) - list(APPEND ${_out_compile_flags} -D${item}) - endforeach(item) - endif() + # This gets any specific definitions that were added with set-target-property + get_target_property(_target_defs ${_target_name} COMPILE_DEFINITIONS) + if (_target_defs) + foreach(item ${_target_defs}) + list(APPEND ${_out_compile_flags} -D${item}) + endforeach(item) + endif()
ENDMACRO(_PCH_GET_COMPILE_FLAGS)
MACRO(add_pch _target_name _header_filename _src_list) - - set(_gch_filename "${_header_filename}.gch") - list(APPEND ${_src_list} ${_gch_filename}) - _PCH_GET_COMPILE_FLAGS(${_target_name} _args ${_header_filename}) - file(REMOVE ${_gch_filename}) - add_custom_command( - OUTPUT ${_gch_filename} - COMMAND ${CMAKE_C_COMPILER} ${CMAKE_C_COMPILER_ARG1} ${_args} - DEPENDS ${_header_filename}) + + get_filename_component(FILE ${_header_filename} NAME) + set(_gch_filename "${_target_name}_${FILE}.gch") + list(APPEND ${_src_list} ${_gch_filename}) + _PCH_GET_COMPILE_FLAGS(${_target_name} _args ${_header_filename}) + file(REMOVE ${_gch_filename}) + add_custom_command( + OUTPUT ${_gch_filename} + COMMAND ${CMAKE_C_COMPILER} ${CMAKE_C_COMPILER_ARG1} ${_args} + DEPENDS ${_header_filename})
ENDMACRO(add_pch _target_name _header_filename _src_list)
Modified: branches/cmake-bringup/dll/ntdll/CMakeLists.txt URL: http://svn.reactos.org/svn/reactos/branches/cmake-bringup/dll/ntdll/CMakeLis... ============================================================================== --- branches/cmake-bringup/dll/ntdll/CMakeLists.txt [iso-8859-1] (original) +++ branches/cmake-bringup/dll/ntdll/CMakeLists.txt [iso-8859-1] Wed Aug 4 19:10:43 2010 @@ -1,3 +1,4 @@ + add_definitions(-D__NTDLL__) add_definitions(-D_NTOSKRNL_) add_definitions(-DCRTDLL) @@ -17,7 +18,7 @@ add_library(ntdll SHARED ${ARCH_SOURCE} ${SOURCE} ${CMAKE_CURRENT_SOURCE_DIR}/def/ntdll.rc - ${CMAKE_CURRENT_SOURCE_DIR}/include/ntdll.h.gch) + ${CMAKE_CURRENT_BINARY_DIR}/ntdll_ntdll.h.gch)
set_target_properties(ntdll PROPERTIES LINK_FLAGS "-Wl,-entry,0")
Modified: branches/cmake-bringup/lib/rtl/CMakeLists.txt URL: http://svn.reactos.org/svn/reactos/branches/cmake-bringup/lib/rtl/CMakeLists... ============================================================================== --- branches/cmake-bringup/lib/rtl/CMakeLists.txt [iso-8859-1] (original) +++ branches/cmake-bringup/lib/rtl/CMakeLists.txt [iso-8859-1] Wed Aug 4 19:10:43 2010 @@ -11,7 +11,7 @@ ${CMAKE_CURRENT_SOURCE_DIR}/mem.c ${CMAKE_CURRENT_SOURCE_DIR}/memgen.c)
-add_library(rtl ${ARCH_SOURCE} ${SOURCE} ${CMAKE_CURRENT_SOURCE_DIR}/rtl.h.gch) +add_library(rtl ${ARCH_SOURCE} ${SOURCE} ${CMAKE_CURRENT_BINARY_DIR}/rtl_rtl.h.gch) add_pch(rtl ${CMAKE_CURRENT_SOURCE_DIR}/rtl.h ${SOURCE}) add_dependencies(rtl psdk)
Modified: branches/cmake-bringup/lib/sdk/crt/CMakeLists.txt URL: http://svn.reactos.org/svn/reactos/branches/cmake-bringup/lib/sdk/crt/CMakeL... ============================================================================== --- branches/cmake-bringup/lib/sdk/crt/CMakeLists.txt [iso-8859-1] (original) +++ branches/cmake-bringup/lib/sdk/crt/CMakeLists.txt [iso-8859-1] Wed Aug 4 19:10:43 2010 @@ -1,4 +1,5 @@ -include_directories(./include) + +include_directories(include)
add_definitions(-D_CRTBLD)
@@ -6,7 +7,7 @@ LIST(REMOVE_ITEM CRT_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/stdio/findgen.c) LIST(REMOVE_ITEM CRT_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/string/strtold.c)
-add_library(crt ${CRT_SOURCE} ${CMAKE_CURRENT_SOURCE_DIR}/precomp.h.gch) +add_library(crt ${CRT_SOURCE} ${CMAKE_CURRENT_BINARY_DIR}/crt_precomp.h.gch) set_property(TARGET crt PROPERTY COMPILE_DEFINITIONS __MINGW_IMPORT=extern USE_MSVCRT_PREFIX _MSVCRT_LIB_ _MSVCRT_ _MT) add_pch(crt ${CMAKE_CURRENT_SOURCE_DIR}/precomp.h ${CRT_SOURCE}) add_dependencies(crt psdk)