SET(CMAKE_USE_WDK_ENV 1)\r
ENDIF()\r
\r
-IF(CMAKE_USE_WDK_ENV)\r
+if(CMAKE_USE_WDK_ENV)\r
\r
- # Detect output architecture\r
- IF(NOT ARCH)\r
- IF($ENV{AMD64} MATCHES 1)\r
- SET(ARCH amd64)\r
- ELSE()\r
- SET(ARCH i386)\r
- ENDIF()\r
- ENDIF()\r
+ # Detect output architecture\r
+ if(NOT ARCH)\r
+ if($ENV{AMD64} MATCHES 1)\r
+ set(ARCH amd64)\r
+ set(MSVC_C_ARCHITECTURE_ID 64)\r
+ else()\r
+ set(ARCH i386)\r
+ endif()\r
+ endif()\r
\r
- # Add library directories\r
- STRING(REPLACE * ${ARCH} ATL_LIB_PATH $ENV{ATL_LIB_PATH})\r
- STRING(REPLACE * ${ARCH} CRT_LIB_PATH $ENV{CRT_LIB_PATH})\r
- STRING(REPLACE * ${ARCH} DDK_LIB_PATH $ENV{DDK_LIB_PATH})\r
- STRING(REPLACE * ${ARCH} KMDF_LIB_PATH $ENV{KMDF_LIB_PATH})\r
- STRING(REPLACE * ${ARCH} MFC_LIB_PATH $ENV{MFC_LIB_PATH})\r
- STRING(REPLACE * ${ARCH} SDK_LIB_PATH $ENV{SDK_LIB_PATH})\r
- LINK_DIRECTORIES(${ATL_LIB_PATH}\r
- ${CRT_LIB_PATH}\r
- ${DDK_LIB_PATH}\r
- ${IFSKIT_LIB_PATH}\r
- ${KMDF_LIB_PATH}\r
- ${MFC_LIB_PATH}\r
- ${SDK_LIB_PATH})\r
- \r
- # Add environment variables\r
- IF(NOT CMAKE_CROSSCOMPILING)\r
- SET(ENV{INCLUDE} "$ENV{CRT_INC_PATH};$ENV{SDK_INC_PATH};$ENV{SDK_INC_PATH}\\crt\\stl60")\r
- include_directories($ENV{INCLUDE})\r
- SET(ENV{LIBPATH} "${CRT_LIB_PATH};${SDK_LIB_PATH}")\r
+ # Add library directories\r
+ STRING(REPLACE * ${ARCH} ATL_LIB_PATH $ENV{ATL_LIB_PATH})\r
+ STRING(REPLACE * ${ARCH} CRT_LIB_PATH $ENV{CRT_LIB_PATH})\r
+ STRING(REPLACE * ${ARCH} DDK_LIB_PATH $ENV{DDK_LIB_PATH})\r
+ STRING(REPLACE * ${ARCH} KMDF_LIB_PATH $ENV{KMDF_LIB_PATH})\r
+ STRING(REPLACE * ${ARCH} MFC_LIB_PATH $ENV{MFC_LIB_PATH})\r
+ STRING(REPLACE * ${ARCH} SDK_LIB_PATH $ENV{SDK_LIB_PATH})\r
+ LINK_DIRECTORIES(${ATL_LIB_PATH}\r
+ ${CRT_LIB_PATH}\r
+ ${DDK_LIB_PATH}\r
+ ${IFSKIT_LIB_PATH}\r
+ ${KMDF_LIB_PATH}\r
+ ${MFC_LIB_PATH}\r
+ ${SDK_LIB_PATH})\r
\r
- SET(ENV{USE_MSVCRT} 1)\r
- SET(ENV{USE_STL} 1)\r
- SET(ENV{STL_VER} 60)\r
-\r
- ENDIF()\r
-ENDIF()\r
+ # Add environment variables\r
+ if(NOT CMAKE_CROSSCOMPILING)\r
+ set(ENV{INCLUDE} "$ENV{CRT_INC_PATH};$ENV{SDK_INC_PATH};$ENV{SDK_INC_PATH}\\crt\\stl60")\r
+ include_directories($ENV{INCLUDE})\r
+ set(ENV{LIBPATH} "${CRT_LIB_PATH};${SDK_LIB_PATH}")\r
+ set(ENV{USE_MSVCRT} 1)\r
+ set(ENV{USE_STL} 1)\r
+ set(ENV{STL_VER} 60)\r
+ endif()\r
+endif()\r
\r
############\r
\r
ENDIF(CMAKE_GENERATOR MATCHES "Visual Studio 6")\r
IF(NOT CMAKE_NO_BUILD_TYPE AND CMAKE_GENERATOR MATCHES "Visual Studio")\r
SET (CMAKE_NO_BUILD_TYPE 1)\r
- SET (CMAKE_CONFIGURATION_TYPES "Debug;Release;MinSizeRel;RelWithDebInfo" CACHE STRING \r
+ SET (CMAKE_CONFIGURATION_TYPES "Debug;Release;MinSizeRel;RelWithDebInfo" CACHE STRING\r
"Semicolon separated list of supported configuration types, only supports Debug, Release, MinSizeRel, and RelWithDebInfo, anything else will be ignored.")\r
MARK_AS_ADVANCED(CMAKE_CONFIGURATION_TYPES)\r
ENDIF(NOT CMAKE_NO_BUILD_TYPE AND CMAKE_GENERATOR MATCHES "Visual Studio")\r
IF (NOT CMAKE_C_COMPILER)\r
SET(CMAKE_TEST_COMPILER ${CMAKE_CXX_COMPILER})\r
ENDIF(NOT CMAKE_C_COMPILER)\r
- EXEC_PROGRAM(${CMAKE_TEST_COMPILER} \r
- ARGS /nologo -EP \"${testNmakeCLVersionFile}\" \r
- OUTPUT_VARIABLE CMAKE_COMPILER_OUTPUT \r
+ EXEC_PROGRAM(${CMAKE_TEST_COMPILER}\r
+ ARGS /nologo -EP \"${testNmakeCLVersionFile}\"\r
+ OUTPUT_VARIABLE CMAKE_COMPILER_OUTPUT\r
RETURN_VALUE CMAKE_COMPILER_RETURN\r
)\r
IF(NOT CMAKE_COMPILER_RETURN)\r
- FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log \r
+ FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log\r
"Determining the version of compiler passed with the following output:\n"\r
"${CMAKE_COMPILER_OUTPUT}\n\n")\r
STRING(REGEX REPLACE "\n" " " compilerVersion "${CMAKE_COMPILER_OUTPUT}")\r
SET(MSVC_VERSION "${compilerVersion}")\r
ELSE(NOT CMAKE_COMPILER_RETURN)\r
MESSAGE(STATUS "Check for CL compiler version - failed")\r
- FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log \r
+ FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log\r
"Determining the version of compiler failed with the following output:\n"\r
"${CMAKE_COMPILER_OUTPUT}\n\n")\r
ENDIF(NOT CMAKE_COMPILER_RETURN)\r
EXEC_PROGRAM(${CMAKE_TEST_COMPILER} ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp2\r
ARGS /nologo /EHsc\r
\"${testForFreeVCFile}\"\r
- OUTPUT_VARIABLE CMAKE_COMPILER_OUTPUT \r
+ OUTPUT_VARIABLE CMAKE_COMPILER_OUTPUT\r
RETURN_VALUE CMAKE_COMPILER_RETURN\r
)\r
IF(CMAKE_COMPILER_RETURN)\r
- FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log \r
+ FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log\r
"Determining if this is a free VC compiler failed with the following output:\n"\r
"${CMAKE_COMPILER_OUTPUT}\n\n")\r
- MESSAGE(STATUS "Check if this is a free VC compiler - yes1")\r
+ MESSAGE(STATUS "Check if this is a free VC compiler - yes")\r
SET(CMAKE_USING_VC_FREE_TOOLS 1)\r
ELSE(CMAKE_COMPILER_RETURN)\r
- FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log \r
+ FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log\r
"Determining if this is a free VC compiler passed with the following output:\n"\r
"${CMAKE_COMPILER_OUTPUT}\n\n")\r
MESSAGE(STATUS "Check if this is a free VC compiler - no")\r
SET(MSVC_INCREMENTAL_DEFAULT ON)\r
ENDIF()\r
\r
-# default to Debug builds\r
-IF(MSVC_VERSION GREATER 1310)\r
- # for 2005 make sure the manifest is put in the dll with mt\r
-# SET(CMAKE_CXX_CREATE_SHARED_LIBRARY "<CMAKE_COMMAND> -E vs_link_dll ${CMAKE_CXX_CREATE_SHARED_LIBRARY}")\r
-# SET(CMAKE_CXX_CREATE_SHARED_MODULE "<CMAKE_COMMAND> -E vs_link_dll ${CMAKE_CXX_CREATE_SHARED_MODULE}")\r
- # create a C shared library\r
-# SET(CMAKE_C_CREATE_SHARED_LIBRARY "${CMAKE_CXX_CREATE_SHARED_LIBRARY}")\r
- # create a C shared module just copy the shared library rule\r
-# SET(CMAKE_C_CREATE_SHARED_MODULE "${CMAKE_CXX_CREATE_SHARED_MODULE}")\r
-# SET(CMAKE_CXX_LINK_EXECUTABLE "<CMAKE_COMMAND> -E vs_link_exe ${CMAKE_CXX_LINK_EXECUTABLE}")\r
-# SET(CMAKE_C_LINK_EXECUTABLE "<CMAKE_COMMAND> -E vs_link_exe ${CMAKE_C_LINK_EXECUTABLE}")\r
-\r
- SET(CMAKE_BUILD_TYPE_INIT Debug)\r
-\r
- IF(ENV{DDKBUILDENV} OR NOT CMAKE_CROSSCOMPILING)\r
- SET (CMAKE_CXX_FLAGS_DEBUG_INIT "/D_DEBUG /MTd /Zi /Ob0 /Od")\r
- SET (CMAKE_C_FLAGS_DEBUG_INIT "/D_DEBUG /Zi /Ob0 /Od")\r
- ELSE()\r
- SET (CMAKE_CXX_FLAGS_DEBUG_INIT "/D_DEBUG /Zi /Ob0 /Od")\r
- SET (CMAKE_C_FLAGS_DEBUG_INIT "/D_DEBUG /Zi /Ob0 /Od")\r
- ENDIF()\r
+# No support for old versions\r
+if(MSVC_VERSION LESS 1310)\r
+message(FATAL_ERROR "Your compiler is too old. Get a newer version!")\r
+endif()\r
\r
- SET (CMAKE_CXX_FLAGS_INIT "/DWIN32 /D_WINDOWS /W3 /Zm1000 /EHsc /GR")\r
- SET (CMAKE_CXX_FLAGS_MINSIZEREL_INIT "/O1 /Ob1 /D NDEBUG")\r
- SET (CMAKE_CXX_FLAGS_RELEASE_INIT "/O2 /Ob2 /D NDEBUG")\r
- SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "/Zi /O2 /Ob1")\r
- SET (CMAKE_C_FLAGS_INIT "/DWIN32 /D_WINDOWS /W3 /Zm1000")\r
- SET (CMAKE_C_FLAGS_MINSIZEREL_INIT "/O1 /Ob1 /D NDEBUG")\r
- SET (CMAKE_C_FLAGS_RELEASE_INIT "/O2 /Ob2 /D NDEBUG")\r
- SET (CMAKE_C_FLAGS_RELWITHDEBINFO_INIT "/Zi /O2 /Ob1")\r
- SET (CMAKE_C_STANDARD_LIBRARIES_INIT "kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib ")\r
- SET (CMAKE_EXE_LINKER_FLAGS_INIT "${CMAKE_EXE_LINKER_FLAGS_INIT}")\r
-ELSE(MSVC_VERSION GREATER 1310)\r
- IF(CMAKE_USING_VC_FREE_TOOLS)\r
- MESSAGE(STATUS "Using FREE VC TOOLS, NO DEBUG available")\r
- SET(CMAKE_BUILD_TYPE_INIT Release)\r
- SET (CMAKE_CXX_FLAGS_INIT "/DWIN32 /D_WINDOWS /W3 /Zm1000 /GX /GR")\r
- SET (CMAKE_CXX_FLAGS_DEBUG_INIT "/D_DEBUG /MTd /Zi /Ob0 /Od /GZ")\r
- SET (CMAKE_CXX_FLAGS_MINSIZEREL_INIT "/MT /O1 /Ob1 /D NDEBUG")\r
- SET (CMAKE_CXX_FLAGS_RELEASE_INIT "/MT /O2 /Ob2 /D NDEBUG")\r
- SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "/MT /Zi /O2 /Ob1 /D NDEBUG")\r
- SET (CMAKE_C_FLAGS_INIT "/DWIN32 /D_WINDOWS /W3 /Zm1000")\r
- SET (CMAKE_C_FLAGS_DEBUG_INIT "/D_DEBUG /MTd /Zi /Ob0 /Od /GZ")\r
- SET (CMAKE_C_FLAGS_MINSIZEREL_INIT "/MT /O1 /Ob1 /D NDEBUG")\r
- SET (CMAKE_C_FLAGS_RELEASE_INIT "/MT /O2 /Ob2 /D NDEBUG")\r
- SET (CMAKE_C_FLAGS_RELWITHDEBINFO_INIT "/MT /Zi /O2 /Ob1 /D NDEBUG")\r
- ELSE(CMAKE_USING_VC_FREE_TOOLS)\r
- SET(CMAKE_BUILD_TYPE_INIT Debug)\r
- SET (CMAKE_CXX_FLAGS_INIT "/DWIN32 /D_WINDOWS /W3 /Zm1000 /GX /GR")\r
- SET (CMAKE_CXX_FLAGS_DEBUG_INIT "/D_DEBUG /MTd /Zi /Ob0 /Od /GZ")\r
- SET (CMAKE_CXX_FLAGS_MINSIZEREL_INIT "/O1 /Ob1 /D NDEBUG")\r
- SET (CMAKE_CXX_FLAGS_RELEASE_INIT "/O2 /Ob2 /D NDEBUG")\r
- SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "/Zi /O2 /Ob1 /D NDEBUG")\r
- SET (CMAKE_C_FLAGS_INIT "/DWIN32 /D_WINDOWS /W3 /Zm1000")\r
- SET (CMAKE_C_FLAGS_DEBUG_INIT "/D_DEBUG /Zi /Ob0 /Od /GZ")\r
- SET (CMAKE_C_FLAGS_MINSIZEREL_INIT "/O1 /Ob1 /D NDEBUG")\r
- SET (CMAKE_C_FLAGS_RELEASE_INIT "/O2 /Ob2 /D NDEBUG")\r
- SET (CMAKE_C_FLAGS_RELWITHDEBINFO_INIT "/Zi /O2 /Ob1 /D NDEBUG")\r
- ENDIF(CMAKE_USING_VC_FREE_TOOLS)\r
- SET (CMAKE_C_STANDARD_LIBRARIES_INIT "kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib")\r
-ENDIF(MSVC_VERSION GREATER 1310)\r
+# for 2005 make sure the manifest is put in the dll with mt\r
+#SET(CMAKE_CXX_CREATE_SHARED_LIBRARY "<CMAKE_COMMAND> -E vs_link_dll ${CMAKE_CXX_CREATE_SHARED_LIBRARY}")\r
+#SET(CMAKE_CXX_CREATE_SHARED_MODULE "<CMAKE_COMMAND> -E vs_link_dll ${CMAKE_CXX_CREATE_SHARED_MODULE}")\r
+# create a C shared library\r
+#SET(CMAKE_C_CREATE_SHARED_LIBRARY "${CMAKE_CXX_CREATE_SHARED_LIBRARY}")\r
+# create a C shared module just copy the shared library rule\r
+#SET(CMAKE_C_CREATE_SHARED_MODULE "${CMAKE_CXX_CREATE_SHARED_MODULE}")\r
+#SET(CMAKE_CXX_LINK_EXECUTABLE "<CMAKE_COMMAND> -E vs_link_exe ${CMAKE_CXX_LINK_EXECUTABLE}")\r
+#SET(CMAKE_C_LINK_EXECUTABLE "<CMAKE_COMMAND> -E vs_link_exe ${CMAKE_C_LINK_EXECUTABLE}")\r
\r
+SET(CMAKE_BUILD_TYPE_INIT Debug)\r
+SET(CMAKE_CXX_FLAGS_DEBUG_INIT "/D_DEBUG /ZI /Ob0 /Od")\r
+SET(CMAKE_C_FLAGS_DEBUG_INIT "/D_DEBUG /ZI /Ob0 /Od")\r
+SET(CMAKE_CXX_FLAGS_INIT "/DWIN32 /D_WINDOWS /W3 /Zm1000 /EHsc")\r
+SET(CMAKE_CXX_FLAGS_MINSIZEREL_INIT "/O1 /Ob1 /D NDEBUG")\r
+SET(CMAKE_CXX_FLAGS_RELEASE_INIT "/O2 /Ob2 /D NDEBUG")\r
+SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "/Zi /O2 /Ob1")\r
+SET(CMAKE_C_FLAGS_INIT "/DWIN32 /D_WINDOWS /W3 /Zm1000")\r
+SET(CMAKE_C_FLAGS_MINSIZEREL_INIT "/O1 /Ob1 /D NDEBUG")\r
+SET(CMAKE_C_FLAGS_RELEASE_INIT "/O2 /Ob2 /D NDEBUG")\r
+SET(CMAKE_C_FLAGS_RELWITHDEBINFO_INIT "/Zi /O2 /Ob1")\r
+SET(CMAKE_C_STANDARD_LIBRARIES_INIT "kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib ")\r
+SET(CMAKE_EXE_LINKER_FLAGS_INIT "${CMAKE_EXE_LINKER_FLAGS_INIT}")\r
SET(CMAKE_CXX_STANDARD_LIBRARIES_INIT "${CMAKE_C_STANDARD_LIBRARIES_INIT}")\r
\r
# executable linker flags\r
\r
# save computed information for this platform\r
IF(NOT EXISTS "${CMAKE_PLATFORM_ROOT_BIN}/CMakeCPlatform.cmake")\r
- CONFIGURE_FILE(${CMAKE_ROOT}/Modules/Platform/Windows-cl.cmake.in \r
+ CONFIGURE_FILE(${CMAKE_ROOT}/Modules/Platform/Windows-cl.cmake.in\r
${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeCPlatform.cmake IMMEDIATE)\r
ENDIF(NOT EXISTS "${CMAKE_PLATFORM_ROOT_BIN}/CMakeCPlatform.cmake")\r
\r
IF(NOT EXISTS "${CMAKE_PLATFORM_ROOT_BIN}/CMakeCXXPlatform.cmake")\r
- CONFIGURE_FILE(${CMAKE_ROOT}/Modules/Platform/Windows-cl.cmake.in \r
+ CONFIGURE_FILE(${CMAKE_ROOT}/Modules/Platform/Windows-cl.cmake.in\r
${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeCXXPlatform.cmake IMMEDIATE)\r
ENDIF(NOT EXISTS "${CMAKE_PLATFORM_ROOT_BIN}/CMakeCXXPlatform.cmake")\r