CMakeLists.txt 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. PROJECT(dcc_original)
  2. CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
  3. OPTION(dcc_build_tests "Enable unit tests." OFF)
  4. ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS -D__UNIX__ -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS)
  5. IF(CMAKE_BUILD_TOOL MATCHES "(msdev|devenv|nmake)")
  6. ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS -D__UNIX__ -D_CRT_NONSTDC_NO_DEPRECATE)
  7. ADD_DEFINITIONS(/W4)
  8. ELSE()
  9. SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall --std=c++0x")
  10. SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -D_GLIBCXX_DEBUG " ) #--coverage
  11. ENDIF()
  12. SET(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/CMakeScripts;${CMAKE_MODULE_PATH})
  13. FIND_PACKAGE(LLVM)
  14. FIND_PACKAGE(Boost)
  15. IF(dcc_build_tests)
  16. FIND_PACKAGE(GMock)
  17. ENDIF()
  18. ADD_SUBDIRECTORY(3rd_party)
  19. llvm_map_components_to_libraries(REQ_LLVM_LIBRARIES jit native mc support)
  20. INCLUDE_DIRECTORIES(
  21. 3rd_party/libdisasm
  22. include
  23. include/idioms
  24. ${Boost_INCLUDE_DIRS}
  25. ${LLVM_INCLUDE_DIRS}
  26. )
  27. set(dcc_SOURCES
  28. src/dcc.cpp
  29. src/ast.cpp
  30. src/backend.cpp
  31. src/bundle.cpp
  32. src/chklib.cpp
  33. src/comwrite.cpp
  34. src/control.cpp
  35. src/dataflow.cpp
  36. src/disassem.cpp
  37. src/error.cpp
  38. src/fixwild.cpp
  39. src/frontend.cpp
  40. src/graph.cpp
  41. src/hlicode.cpp
  42. src/machine_x86.cpp
  43. src/icode.cpp
  44. src/idioms.cpp
  45. src/idioms/idiom1.cpp
  46. src/idioms/arith_idioms.cpp
  47. src/idioms/call_idioms.cpp
  48. src/idioms/epilogue_idioms.cpp
  49. src/idioms/mov_idioms.cpp
  50. src/idioms/neg_idioms.cpp
  51. src/idioms/shift_idioms.cpp
  52. src/idioms/xor_idioms.cpp
  53. src/locident.cpp
  54. src/parser.cpp
  55. src/perfhlib.cpp
  56. src/procs.cpp
  57. src/project.cpp
  58. src/Procedure.cpp
  59. src/proplong.cpp
  60. src/reducible.cpp
  61. src/scanner.cpp
  62. src/symtab.cpp
  63. src/udm.cpp
  64. src/BasicBlock.cpp
  65. )
  66. set(dcc_HEADERS
  67. include/ast.h
  68. include/bundle.h
  69. include/BinaryImage.h
  70. include/dcc.h
  71. include/disassem.h
  72. include/dosdcc.h
  73. include/error.h
  74. include/graph.h
  75. include/hlicode.h
  76. include/machine_x86.h
  77. include/icode.h
  78. include/idioms/idiom.h
  79. include/idioms/idiom1.h
  80. include/idioms/arith_idioms.h
  81. include/idioms/call_idioms.h
  82. include/idioms/epilogue_idioms.h
  83. include/idioms/mov_idioms.h
  84. include/idioms/neg_idioms.h
  85. include/idioms/shift_idioms.h
  86. include/idioms/xor_idioms.h
  87. include/locident.h
  88. include/perfhlib.h
  89. include/project.h
  90. include/scanner.h
  91. include/state.h
  92. include/symtab.h
  93. include/types.h
  94. include/Procedure.h
  95. include/StackFrame.h
  96. include/BasicBlock.h
  97. )
  98. SOURCE_GROUP(Source FILES ${dcc_SOURCES})
  99. SOURCE_GROUP(Headers FILES ${dcc_HEADERS})
  100. ADD_EXECUTABLE(dcc_original ${dcc_SOURCES} ${dcc_HEADERS})
  101. TARGET_LINK_LIBRARIES(dcc_original disasm_s ${REQ_LLVM_LIBRARIES})
  102. if(dcc_build_tests)
  103. ADD_SUBDIRECTORY(src)
  104. endif()