mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 00:55:48 +00:00
[CMAKE]
- Add configure support for VS 2013 - Add a missing /nologo to assembler invocations - Properly complain about old MSVC versions during configure instead of failing the build svn path=/trunk/; revision=59488
This commit is contained in:
parent
98cef13e0f
commit
50b0c50023
4 changed files with 31 additions and 78 deletions
|
@ -92,7 +92,7 @@ else()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Default to Debug for the build type
|
# Default to Debug for the build type
|
||||||
set(CMAKE_BUILD_TYPE "Debug" CACHE STRING
|
set(CMAKE_BUILD_TYPE "Debug" CACHE STRING
|
||||||
"Choose the type of build, options are: None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel." FORCE)
|
"Choose the type of build, options are: None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel." FORCE)
|
||||||
|
|
||||||
# Do some cleanup
|
# Do some cleanup
|
||||||
|
@ -182,36 +182,19 @@ else()
|
||||||
# We're using widl now for both MSVC and GCC builds
|
# We're using widl now for both MSVC and GCC builds
|
||||||
include(cmake/widl-support.cmake)
|
include(cmake/widl-support.cmake)
|
||||||
|
|
||||||
if(MSVC AND USE_WDK_HEADERS)
|
include_directories(
|
||||||
include_directories(
|
include
|
||||||
include
|
include/psdk
|
||||||
$ENV{SDK_INC_PATH}
|
include/dxsdk
|
||||||
include/dxsdk
|
${REACTOS_BINARY_DIR}/include
|
||||||
${REACTOS_BINARY_DIR}/include
|
${REACTOS_BINARY_DIR}/include/psdk
|
||||||
${REACTOS_BINARY_DIR}/include/dxsdk
|
${REACTOS_BINARY_DIR}/include/dxsdk
|
||||||
${REACTOS_BINARY_DIR}/include/psdk
|
${REACTOS_BINARY_DIR}/include/reactos
|
||||||
${REACTOS_BINARY_DIR}/include/reactos
|
include/crt
|
||||||
$ENV{CRT_INC_PATH}
|
include/ddk
|
||||||
$ENV{DDK_INC_PATH}
|
include/ndk
|
||||||
include/ndk
|
include/reactos
|
||||||
include/reactos
|
include/reactos/libs)
|
||||||
include/reactos/libs)
|
|
||||||
else()
|
|
||||||
include_directories(
|
|
||||||
include
|
|
||||||
include/psdk
|
|
||||||
include/dxsdk
|
|
||||||
${REACTOS_BINARY_DIR}/include
|
|
||||||
${REACTOS_BINARY_DIR}/include/psdk
|
|
||||||
${REACTOS_BINARY_DIR}/include/dxsdk
|
|
||||||
${REACTOS_BINARY_DIR}/include/reactos
|
|
||||||
include/crt
|
|
||||||
include/ddk
|
|
||||||
include/ndk
|
|
||||||
include/reactos
|
|
||||||
include/reactos/libs)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
|
|
||||||
if(ARCH STREQUAL "arm")
|
if(ARCH STREQUAL "arm")
|
||||||
include_directories(${REACTOS_SOURCE_DIR}/include/reactos/arm)
|
include_directories(${REACTOS_SOURCE_DIR}/include/reactos/arm)
|
||||||
|
@ -232,7 +215,7 @@ else()
|
||||||
add_subdirectory(include/asm)
|
add_subdirectory(include/asm)
|
||||||
|
|
||||||
include(cmake/baseaddress.cmake)
|
include(cmake/baseaddress.cmake)
|
||||||
|
|
||||||
# For MSVC builds, this puts all debug symbols file in the same directory.
|
# For MSVC builds, this puts all debug symbols file in the same directory.
|
||||||
set(CMAKE_PDB_OUTPUT_DIRECTORY "${REACTOS_BINARY_DIR}/msvc_pdb")
|
set(CMAKE_PDB_OUTPUT_DIRECTORY "${REACTOS_BINARY_DIR}/msvc_pdb")
|
||||||
|
|
||||||
|
|
|
@ -216,8 +216,8 @@ function(add_delay_importlibs _module)
|
||||||
if(_module_type STREQUAL "STATIC_LIBRARY")
|
if(_module_type STREQUAL "STATIC_LIBRARY")
|
||||||
message(FATAL_ERROR "Cannot add delay imports to a static library")
|
message(FATAL_ERROR "Cannot add delay imports to a static library")
|
||||||
endif()
|
endif()
|
||||||
foreach(LIB ${ARGN})
|
foreach(_lib ${ARGN})
|
||||||
target_link_libraries(${_module} lib${LIB}_delayed)
|
target_link_libraries(${_module} lib${_lib}_delayed)
|
||||||
endforeach()
|
endforeach()
|
||||||
target_link_libraries(${_module} delayimp)
|
target_link_libraries(${_module} delayimp)
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
|
@ -127,15 +127,15 @@ endfunction()
|
||||||
|
|
||||||
#define those for having real libraries
|
#define those for having real libraries
|
||||||
set(CMAKE_IMPLIB_CREATE_STATIC_LIBRARY "LINK /LIB /NOLOGO <LINK_FLAGS> /OUT:<TARGET> <OBJECTS>")
|
set(CMAKE_IMPLIB_CREATE_STATIC_LIBRARY "LINK /LIB /NOLOGO <LINK_FLAGS> /OUT:<TARGET> <OBJECTS>")
|
||||||
set(CMAKE_STUB_ASM_COMPILE_OBJECT "<CMAKE_ASM_COMPILER> /Cp /Fo<OBJECT> /c /Ta <SOURCE>")
|
set(CMAKE_STUB_ASM_COMPILE_OBJECT "<CMAKE_ASM_COMPILER> /nologo /Cp /Fo<OBJECT> /c /Ta <SOURCE>")
|
||||||
function(add_delay_importlibs _module)
|
function(add_delay_importlibs _module)
|
||||||
get_target_property(_module_type ${_module} TYPE)
|
get_target_property(_module_type ${_module} TYPE)
|
||||||
if(_module_type STREQUAL "STATIC_LIBRARY")
|
if(_module_type STREQUAL "STATIC_LIBRARY")
|
||||||
message(FATAL_ERROR "Cannot add delay imports to a static library")
|
message(FATAL_ERROR "Cannot add delay imports to a static library")
|
||||||
endif()
|
endif()
|
||||||
foreach(LIB ${ARGN})
|
foreach(_lib ${ARGN})
|
||||||
add_target_link_flags(${_module} "/DELAYLOAD:${LIB}.dll")
|
add_target_link_flags(${_module} "/DELAYLOAD:${_lib}.dll")
|
||||||
target_link_libraries(${_module} lib${LIB})
|
target_link_libraries(${_module} lib${_lib})
|
||||||
endforeach()
|
endforeach()
|
||||||
target_link_libraries(${_module} delayimp)
|
target_link_libraries(${_module} delayimp)
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
|
@ -41,27 +41,14 @@ if defined ROS_ARCH (
|
||||||
set CMAKE_GENERATOR="Ninja"
|
set CMAKE_GENERATOR="Ninja"
|
||||||
)
|
)
|
||||||
|
|
||||||
) else if defined DDK_TARGET_OS (
|
|
||||||
echo Detected DDK/WDK for %DDK_TARGET_OS%-%_BUILDARCH%%
|
|
||||||
set BUILD_ENVIRONMENT=WDK
|
|
||||||
if "%_BUILDARCH%" == "x86" (
|
|
||||||
set ARCH=i386
|
|
||||||
) else if "%_BUILDARCH%" == "AMD64" (
|
|
||||||
set ARCH=amd64
|
|
||||||
)
|
|
||||||
set USE_VSCMD=1
|
|
||||||
set USE_WDK_HEADERS=0
|
|
||||||
|
|
||||||
) else if defined VCINSTALLDIR (
|
) else if defined VCINSTALLDIR (
|
||||||
:: VS command prompt does not put this in environment vars
|
:: VS command prompt does not put this in environment vars
|
||||||
cl 2>&1 | find "x86" > NUL && set ARCH=i386
|
cl 2>&1 | find "x86" > NUL && set ARCH=i386
|
||||||
cl 2>&1 | find "x64" > NUL && set ARCH=amd64
|
cl 2>&1 | find "x64" > NUL && set ARCH=amd64
|
||||||
cl 2>&1 | find "ARM" > NUL && set ARCH=arm
|
cl 2>&1 | find "ARM" > NUL && set ARCH=arm
|
||||||
cl 2>&1 | find "14.00." > NUL && set BUILD_ENVIRONMENT=VS8
|
|
||||||
cl 2>&1 | find "15.00." > NUL && set BUILD_ENVIRONMENT=VS9
|
|
||||||
cl 2>&1 | find "16.00." > NUL && set BUILD_ENVIRONMENT=VS10
|
cl 2>&1 | find "16.00." > NUL && set BUILD_ENVIRONMENT=VS10
|
||||||
cl 2>&1 | find "17.00." > NUL && set BUILD_ENVIRONMENT=VS11
|
cl 2>&1 | find "17.00." > NUL && set BUILD_ENVIRONMENT=VS11
|
||||||
::cl 2>&1 | find "18.00." > NUL && set BUILD_ENVIRONMENT=VS12
|
cl 2>&1 | find "18.00." > NUL && set BUILD_ENVIRONMENT=VS12
|
||||||
if not defined BUILD_ENVIRONMENT (
|
if not defined BUILD_ENVIRONMENT (
|
||||||
echo Error: Visual Studio version too old or version detection failed.
|
echo Error: Visual Studio version too old or version detection failed.
|
||||||
exit /b
|
exit /b
|
||||||
|
@ -69,19 +56,7 @@ if defined ROS_ARCH (
|
||||||
|
|
||||||
echo Detected Visual Studio Environment !BUILD_ENVIRONMENT!-!ARCH!
|
echo Detected Visual Studio Environment !BUILD_ENVIRONMENT!-!ARCH!
|
||||||
if /I "%1" == "VSSolution" (
|
if /I "%1" == "VSSolution" (
|
||||||
if "!BUILD_ENVIRONMENT!" == "VS8" (
|
if "!BUILD_ENVIRONMENT!" == "VS10" (
|
||||||
if "!ARCH!" == "amd64" (
|
|
||||||
set CMAKE_GENERATOR="Visual Studio 8 2005 Win64"
|
|
||||||
) else (
|
|
||||||
set CMAKE_GENERATOR="Visual Studio 8 2005"
|
|
||||||
)
|
|
||||||
) else if "!BUILD_ENVIRONMENT!" == "VS9" (
|
|
||||||
if "!ARCH!" == "amd64" (
|
|
||||||
set CMAKE_GENERATOR="Visual Studio 9 2008 Win64"
|
|
||||||
) else (
|
|
||||||
set CMAKE_GENERATOR="Visual Studio 9 2008"
|
|
||||||
)
|
|
||||||
) else if "!BUILD_ENVIRONMENT!" == "VS10" (
|
|
||||||
if "!ARCH!" == "amd64" (
|
if "!ARCH!" == "amd64" (
|
||||||
set CMAKE_GENERATOR="Visual Studio 10 Win64"
|
set CMAKE_GENERATOR="Visual Studio 10 Win64"
|
||||||
) else (
|
) else (
|
||||||
|
@ -95,23 +70,20 @@ if defined ROS_ARCH (
|
||||||
) else (
|
) else (
|
||||||
set CMAKE_GENERATOR="Visual Studio 11"
|
set CMAKE_GENERATOR="Visual Studio 11"
|
||||||
)
|
)
|
||||||
|
) else if "!BUILD_ENVIRONMENT!" == "VS12" (
|
||||||
|
if "!ARCH!" == "amd64" (
|
||||||
|
set CMAKE_GENERATOR="Visual Studio 12 Win64"
|
||||||
|
) else if "!ARCH!" == "arm" (
|
||||||
|
set CMAKE_GENERATOR="Visual Studio 12 ARM"
|
||||||
|
) else (
|
||||||
|
set CMAKE_GENERATOR="Visual Studio 12"
|
||||||
|
)
|
||||||
)
|
)
|
||||||
) else (
|
) else (
|
||||||
set USE_VSCMD=1
|
set USE_VSCMD=1
|
||||||
echo This script defaults to Ninja. To use Visual Studio GUI specify "VSSolution" as a parameter.
|
echo This script defaults to Ninja. To use Visual Studio GUI specify "VSSolution" as a parameter.
|
||||||
)
|
)
|
||||||
|
|
||||||
) else if defined sdkdir (
|
|
||||||
echo Detected Windows SDK %TARGET_PLATFORM%-%TARGET_CPU%
|
|
||||||
if "%TARGET_CPU%" == "x86" (
|
|
||||||
set ARCH=i386
|
|
||||||
) else if "%TARGET_CPU%" == "x64" (
|
|
||||||
set ARCH=amd64
|
|
||||||
)
|
|
||||||
|
|
||||||
set BUILD_ENVIRONMENT=SDK
|
|
||||||
set USE_VSCMD=1
|
|
||||||
|
|
||||||
) else (
|
) else (
|
||||||
echo Error: Unable to detect build environment. Configure script failure.
|
echo Error: Unable to detect build environment. Configure script failure.
|
||||||
exit /b
|
exit /b
|
||||||
|
@ -179,8 +151,6 @@ if EXIST CMakeCache.txt (
|
||||||
|
|
||||||
if "%BUILD_ENVIRONMENT%" == "MinGW" (
|
if "%BUILD_ENVIRONMENT%" == "MinGW" (
|
||||||
cmake -G %CMAKE_GENERATOR% -DENABLE_CCACHE=0 -DPCH=0 -DCMAKE_TOOLCHAIN_FILE=toolchain-gcc.cmake -DARCH=%ARCH% -DREACTOS_BUILD_TOOLS_DIR:DIR="%REACTOS_BUILD_TOOLS_DIR%" "%REACTOS_SOURCE_DIR%"
|
cmake -G %CMAKE_GENERATOR% -DENABLE_CCACHE=0 -DPCH=0 -DCMAKE_TOOLCHAIN_FILE=toolchain-gcc.cmake -DARCH=%ARCH% -DREACTOS_BUILD_TOOLS_DIR:DIR="%REACTOS_BUILD_TOOLS_DIR%" "%REACTOS_SOURCE_DIR%"
|
||||||
) else if "%BUILD_ENVIRONMENT%" == "WDK" (
|
|
||||||
cmake -G %CMAKE_GENERATOR% -DCMAKE_TOOLCHAIN_FILE=toolchain-msvc.cmake -DUSE_WDK_HEADERS=%USE_WDK_HEADERS% -DARCH=%ARCH% -DREACTOS_BUILD_TOOLS_DIR:DIR="%REACTOS_BUILD_TOOLS_DIR%" "%REACTOS_SOURCE_DIR%"
|
|
||||||
) else (
|
) else (
|
||||||
cmake -G %CMAKE_GENERATOR% -DCMAKE_TOOLCHAIN_FILE=toolchain-msvc.cmake -DARCH=%ARCH% -DREACTOS_BUILD_TOOLS_DIR:DIR="%REACTOS_BUILD_TOOLS_DIR%" "%REACTOS_SOURCE_DIR%"
|
cmake -G %CMAKE_GENERATOR% -DCMAKE_TOOLCHAIN_FILE=toolchain-msvc.cmake -DARCH=%ARCH% -DREACTOS_BUILD_TOOLS_DIR:DIR="%REACTOS_BUILD_TOOLS_DIR%" "%REACTOS_SOURCE_DIR%"
|
||||||
)
|
)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue