diff options
author | Brad King <brad.king@kitware.com> | 2006-02-03 01:18:39 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2006-02-03 01:18:39 (GMT) |
commit | 02f743c896c154ecdb20d8c02b872e28ef4f48ac (patch) | |
tree | 5a1753658294a1b12874dba1d962833ed356d03b | |
parent | ca4b82d9ed74e8ef6b65df384e7ae79a993eb4f9 (diff) | |
download | CMake-02f743c896c154ecdb20d8c02b872e28ef4f48ac.zip CMake-02f743c896c154ecdb20d8c02b872e28ef4f48ac.tar.gz CMake-02f743c896c154ecdb20d8c02b872e28ef4f48ac.tar.bz2 |
COMP: Fixed build on VC++ Express 2005. Explicitly testing for MFC to determine whether to build the MFCDialog.
-rw-r--r-- | CMakeLists.txt | 38 | ||||
-rw-r--r-- | Source/CMakeLists.txt | 4 | ||||
-rw-r--r-- | Utilities/CMakeLists.txt | 4 |
3 files changed, 41 insertions, 5 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 9265aa1..e8ef3fa 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -31,7 +31,7 @@ ENDIF(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 1.4) # Disable deprecation warnings for standard C functions. IF(CMAKE_COMPILER_2005) - ADD_DEFINITIONS(-D_CRT_SECURE_NO_DEPRECATE) + ADD_DEFINITIONS(-D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE) ENDIF(CMAKE_COMPILER_2005) #silence duplicate symbol warnings on AIX @@ -167,6 +167,42 @@ IF(WIN32) ENDIF(NOT BORLAND) ENDIF(NOT UNIX) ENDIF(WIN32) +IF(CMAKE_BUILD_ON_VISUAL_STUDIO) + IF("CMake_HAVE_MFC" MATCHES "^CMake_HAVE_MFC$") + SET(CHECK_INCLUDE_FILE_VAR "afxwin.h") + CONFIGURE_FILE(${CMAKE_ROOT}/Modules/CheckIncludeFile.cxx.in + ${CMAKE_BINARY_DIR}/CMakeFiles/CMakeTmp/CheckIncludeFile.cxx IMMEDIATE) + MESSAGE(STATUS "Looking for MFC") + TRY_COMPILE(CMake_HAVE_MFC + ${CMAKE_BINARY_DIR} + ${CMAKE_BINARY_DIR}/CMakeFiles/CMakeTmp/CheckIncludeFile.cxx + CMAKE_FLAGS + -DCMAKE_MFC_FLAG:STRING=2 + -DCOMPILE_DEFINITIONS:STRING=-D_AFXDLL + OUTPUT_VARIABLE OUTPUT) + IF(CMake_HAVE_MFC) + MESSAGE(STATUS "Looking for MFC - found") + SET(CMake_HAVE_MFC 1 CACHE INTERNAL "Have MFC?") + FILE(APPEND ${CMAKE_BINARY_DIR}/CMakeFiles/CMakeOutput.log + "Determining if MFC exists passed with the following output:\n" + "${OUTPUT}\n\n") + ELSE(CMake_HAVE_MFC) + MESSAGE(STATUS "Looking for MFC - not found") + SET(CMake_HAVE_MFC 0 CACHE INTERNAL "Have MFC?") + FILE(APPEND ${CMAKE_BINARY_DIR}/CMakeFiles/CMakeError.log + "Determining if MFC exists failed with the following output:\n" + "${OUTPUT}\n\n") + ENDIF(CMake_HAVE_MFC) + ENDIF("CMake_HAVE_MFC" MATCHES "^CMake_HAVE_MFC$") + + IF(CMake_HAVE_MFC) + OPTION(BUILD_MFCDialog "Whether to build the CMakeSetup MFC dialog." ON) + ELSE(CMake_HAVE_MFC) + SET(BUILD_MFCDialog 0) + ENDIF(CMake_HAVE_MFC) +ELSE(CMAKE_BUILD_ON_VISUAL_STUDIO) + SET(BUILD_MFCDialog 0) +ENDIF(CMAKE_BUILD_ON_VISUAL_STUDIO) CONFIGURE_FILE( "${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in" diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt index 988b0ee..023a718 100644 --- a/Source/CMakeLists.txt +++ b/Source/CMakeLists.txt @@ -300,9 +300,9 @@ ENDIF (UNIX) # MFC GUI # MFC libraries are only available on Visual Studio -IF(CMAKE_BUILD_ON_VISUAL_STUDIO) +IF(BUILD_MFCDialog) SUBDIRS(MFCDialog) -ENDIF(CMAKE_BUILD_ON_VISUAL_STUDIO) +ENDIF(BUILD_MFCDialog) # WX Widgets GUI OPTION(CMAKE_BUILD_WX_DIALOG "Build wxWidgets dialog for CMake" FALSE) diff --git a/Utilities/CMakeLists.txt b/Utilities/CMakeLists.txt index 5e88fff..70b3e28 100644 --- a/Utilities/CMakeLists.txt +++ b/Utilities/CMakeLists.txt @@ -74,7 +74,7 @@ IF(UNIX) ENDIF(CURSES_LIBRARY) ENDIF(UNIX) -IF(CMAKE_BUILD_ON_VISUAL_STUDIO) +IF(BUILD_MFCDialog) SET(CMD ${CMD_DIR}/CMakeSetup${CMD_EXT}) ADD_CUSTOM_COMMAND( OUTPUT ${CMake_BINARY_DIR}/Docs/CMakeSetup.txt @@ -93,7 +93,7 @@ IF(CMAKE_BUILD_ON_VISUAL_STUDIO) ${CMake_BINARY_DIR}/Docs/CMakeSetup.html ) SET(DOC_FILES ${DOC_FILES} ${CMake_BINARY_DIR}/Docs/CMakeSetup.txt) -ENDIF(CMAKE_BUILD_ON_VISUAL_STUDIO) +ENDIF(BUILD_MFCDialog) # Drive documentation generation. ADD_CUSTOM_TARGET(documentation ALL |