[llvm-commits] [llvm] r58090 - in /llvm/trunk: cmake/config-w32.cmake lib/AsmParser/CMakeLists.txt

Cedric Venet cedric.venet at laposte.net
Fri Oct 24 04:24:34 PDT 2008


Author: venet
Date: Fri Oct 24 06:24:33 2008
New Revision: 58090

URL: http://llvm.org/viewvc/llvm-project?rev=58090&view=rev
Log:
Modify the cmake build system so that if it doesn't find bison, it will use the pregenerated file in from the svn (.cvs). Work only for windows for the moment. Tested on Vista64 with MSVC2008express.

Modified:
    llvm/trunk/cmake/config-w32.cmake
    llvm/trunk/lib/AsmParser/CMakeLists.txt

Modified: llvm/trunk/cmake/config-w32.cmake
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/cmake/config-w32.cmake?rev=58090&r1=58089&r2=58090&view=diff

==============================================================================
--- llvm/trunk/cmake/config-w32.cmake (original)
+++ llvm/trunk/cmake/config-w32.cmake Fri Oct 24 06:24:33 2008
@@ -1,9 +1,9 @@
 # tbi: Configurar ficheros.
-configure_file(${llvm_include_path}/llvm/ADT/hash_map.h.in ${llvm_builded_incs_dir}/ADT/hash_map.h)
-configure_file(${llvm_include_path}/llvm/ADT/hash_set.h.in ${llvm_builded_incs_dir}/ADT/hash_set.h)
-configure_file(${llvm_include_path}/llvm/ADT/iterator.h.in ${llvm_builded_incs_dir}/ADT/iterator.h)
-configure_file(${llvm_include_path}/llvm/Support/DataTypes.h.in ${llvm_builded_incs_dir}/Support/DataTypes.h)
-configure_file(${llvm_include_path}/llvm/Config/config.h.in ${llvm_builded_incs_dir}/Config/config.h)
+configure_file(${llvm_include_path}/llvm/ADT/hash_map.h.in ${llvm_builded_incs_dir}/ADT/hash_map.h COPYONLY)
+configure_file(${llvm_include_path}/llvm/ADT/hash_set.h.in ${llvm_builded_incs_dir}/ADT/hash_set.h COPYONLY)
+configure_file(${llvm_include_path}/llvm/ADT/iterator.h.in ${llvm_builded_incs_dir}/ADT/iterator.h COPYONLY)
+configure_file(${llvm_include_path}/llvm/Support/DataTypes.h.in ${llvm_builded_incs_dir}/Support/DataTypes.h COPYONLY)
+configure_file(${llvm_include_path}/llvm/Config/config.h.in ${llvm_builded_incs_dir}/Config/config.h COPYONLY)
 
 file(READ ${llvm_include_path}/../win32/config.h vc_config_text)
 file(APPEND ${llvm_builded_incs_dir}/Config/config.h ${vc_config_text})

Modified: llvm/trunk/lib/AsmParser/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/AsmParser/CMakeLists.txt?rev=58090&r1=58089&r2=58090&view=diff

==============================================================================
--- llvm/trunk/lib/AsmParser/CMakeLists.txt (original)
+++ llvm/trunk/lib/AsmParser/CMakeLists.txt Fri Oct 24 06:24:33 2008
@@ -1,15 +1,39 @@
 # AsmParser, with a Bison generated parser:
 include(FindBison)
 find_bison()
+
+IF(BISON_EXECUTABLE)
 bison_generator(
   "llvmAsm"
   "${CMAKE_CURRENT_SOURCE_DIR}/llvmAsmParser.y"
   "${CMAKE_CURRENT_SOURCE_DIR}/llvmAsmParser.h"
   "${CMAKE_CURRENT_SOURCE_DIR}/llvmAsmParser.cpp"
   )
+ELSE(BISON_EXECUTABLE)
+  MESSAGE(STATUS "Bison not found, the pregenerated files will be used")
+
+  IF(WIN32)
+    FILE(TO_NATIVE_PATH ${CMAKE_CURRENT_SOURCE_DIR} WIN_SOURCE_DIR)
+
+    ADD_CUSTOM_COMMAND(
+      OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/llvmAsmParser.cpp"
+      DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/llvmAsmParser.cpp.cvs"
+      COMMAND copy \"${WIN_SOURCE_DIR}\\llvmAsmParser.cpp.cvs\" \"${WIN_SOURCE_DIR}\\llvmAsmParser.cpp\"
+    )
+    ADD_CUSTOM_COMMAND(
+      OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/llvmAsmParser.h"
+      DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/llvmAsmParser.h.cvs"
+      COMMAND copy \"${WIN_SOURCE_DIR}\\llvmAsmParser.h.cvs\" \"${WIN_SOURCE_DIR}\\llvmAsmParser.h\"
+    )
+  ELSE(WIN32)
+    MESSAGE(SEND_ERROR "Not implemented")
+    # fixme do the same with cp instead of copy
+  ENDIF(WIN32)
+ENDIF(BISON_EXECUTABLE)
 
 add_llvm_library(LLVMAsmParser
-  llvmAsmParser.cpp  # Generated from llvmAsmParser.y
+  llvmAsmParser.cpp  # Generated from llvmAsmParser.y or copyied from corresponding .cvs
+  llvmAsmParser.h    # needed for the associated custom command to work
   LLLexer.cpp
   Parser.cpp
   )





More information about the llvm-commits mailing list