Browse Source

Fix #12358: make optionally enabling ASM work again

Alex
Alex Neundorf 14 years ago
parent
commit
cd70f00ea4
2 changed files with 15 additions and 5 deletions
  1. 1 1
      Modules/CMakeASMInformation.cmake
  2. 14 4
      Modules/CMakeTestASMCompiler.cmake

+ 1 - 1
Modules/CMakeASMInformation.cmake

@@ -33,7 +33,7 @@ IF(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID)
 ENDIF(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID)
 IF(NOT _INCLUDED_FILE)
   IF("ASM${ASM_DIALECT}" STREQUAL "ASM")
-    MESSAGE(FATAL_ERROR "Did not find file Compiler/${CMAKE_ASM${ASM_DIALECT}_COMPILER_ID}-ASM${ASM_DIALECT}")
+    MESSAGE(STATUS "Warning: Did not find file Compiler/${CMAKE_ASM${ASM_DIALECT}_COMPILER_ID}-ASM${ASM_DIALECT}")
   ENDIF("ASM${ASM_DIALECT}" STREQUAL "ASM")
   INCLUDE(Platform/${CMAKE_BASE_NAME} OPTIONAL)
 ENDIF(NOT _INCLUDED_FILE)

+ 14 - 4
Modules/CMakeTestASMCompiler.cmake

@@ -18,8 +18,18 @@
 # because otherwise there would have to be a separate assembler source file
 # for each assembler on every architecture.
 
+
+SET(_ASM_COMPILER_WORKS 0)
+
 IF(CMAKE_ASM${ASM_DIALECT}_COMPILER)
-  SET(CMAKE_ASM${ASM_DIALECT}_COMPILER_WORKS 1 CACHE INTERNAL "")
-ELSE(CMAKE_ASM${ASM_DIALECT}_COMPILER)
-  SET(CMAKE_ASM${ASM_DIALECT}_COMPILER_WORKS 0 CACHE INTERNAL "")
-ENDIF(CMAKE_ASM${ASM_DIALECT}_COMPILER)
+  SET(_ASM_COMPILER_WORKS 1)
+ENDIF()
+
+# when using generic "ASM" support, we must have detected the compiler ID, fail otherwise:
+IF("ASM${ASM_DIALECT}" STREQUAL "ASM")
+  IF(NOT CMAKE_ASM${ASM_DIALECT}_COMPILER_ID)
+    SET(_ASM_COMPILER_WORKS 0)
+  ENDIF()
+ENDIF()
+
+SET(CMAKE_ASM${ASM_DIALECT}_COMPILER_WORKS ${_ASM_COMPILER_WORKS} CACHE INTERNAL "")