set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Ddisc_union=union" )
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Ddisc_union=union" )


#include_directories( ${ROSE_INCLUDES} )
include_directories(${KDE4_INCLUDES} ${KDE4_INCLUDE_DIR} ${QT_INCLUDES} ${Boost_INCLUDE_DIRS} ${CMAKE_BINARY_DIR}/src/roseSupport)

#set(  CMAKE_VERBOSE_MAKEFILE  true )

#Headers generated by ROSETTA
# Must keep the list up-to-date, 
# Make will repeatedly run the make rule if one of them no longer exists
set(ROSETTA_HEADERS
#    ${CMAKE_BINARY_DIR}/src/frontend/SageIII/AST_FILE_IO.h         
    ${CMAKE_BINARY_DIR}/src/frontend/SageIII/AstQueryMemoryPool.h  
    ${CMAKE_BINARY_DIR}/src/frontend/SageIII/Cxx_Grammar.h 
    ${CMAKE_BINARY_DIR}/src/frontend/SageIII/Cxx_GrammarMemoryPoolSupport.h
    ${CMAKE_BINARY_DIR}/src/frontend/SageIII/Cxx_GrammarTreeTraversalAccessEnums.h
    ${CMAKE_BINARY_DIR}/src/frontend/SageIII/StorageClasses.h
   )

#source files generated by ROSETTA
set(ROSETTA_SRC
    ${CMAKE_BINARY_DIR}/src/frontend/SageIII/Cxx_Grammar.C
    ${CMAKE_BINARY_DIR}/src/frontend/SageIII/Cxx_GrammarCheckingIfDataMembersAreInMemoryPool.C
    ${CMAKE_BINARY_DIR}/src/frontend/SageIII/Cxx_GrammarCopyMemberFunctions.C
    ${CMAKE_BINARY_DIR}/src/frontend/SageIII/Cxx_GrammarGetChildIndex.C
    ${CMAKE_BINARY_DIR}/src/frontend/SageIII/Cxx_GrammarMemoryPoolSupport.C  
    ${CMAKE_BINARY_DIR}/src/frontend/SageIII/Cxx_GrammarNewAndDeleteOperators.C                
    ${CMAKE_BINARY_DIR}/src/frontend/SageIII/Cxx_GrammarNewConstructors.C
    ${CMAKE_BINARY_DIR}/src/frontend/SageIII/Cxx_GrammarProcessDataMemberReferenceToPointers.C  
    ${CMAKE_BINARY_DIR}/src/frontend/SageIII/Cxx_GrammarReturnClassHierarchySubTree.C      
    ${CMAKE_BINARY_DIR}/src/frontend/SageIII/Cxx_GrammarReturnDataMemberPointers.C  
    ${CMAKE_BINARY_DIR}/src/frontend/SageIII/Cxx_GrammarRTI.C
    ${CMAKE_BINARY_DIR}/src/frontend/SageIII/Cxx_GrammarTraverseMemoryPool.C
    ${CMAKE_BINARY_DIR}/src/frontend/SageIII/Cxx_GrammarTreeTraversalSuccessorContainer.C
    ${CMAKE_BINARY_DIR}/src/frontend/SageIII/Cxx_GrammarVariantEnumNames.C
#Does not seem to be compiled
#    ${CMAKE_BINARY_DIR}/src/frontend/SageIII/astFileIO/SourcesOfIRNodesAstFileIOSupport.C
    )

# DQ (12/1/2009): Add the StorageClasses.C unless on Windows as we test this more.
if (NOT WIN32)
set(ROSETTA_SRC ${ROSETTA_SRC} ${CMAKE_BINARY_DIR}/src/frontend/SageIII/StorageClasses.C ${CMAKE_BINARY_DIR}/src/frontend/SageIII/AST_FILE_IO.C)
endif (NOT WIN32)

#Tell cmake that these files are generated by ROSETTA and will only be available at compile time
SET_SOURCE_FILES_PROPERTIES(
    ${ROSETTA_SRC} 
    ${ROSETTA_HEADERS}  
    PROPERTIES GENERATED 1
    )

#Tell cmake that the preprocessor is generated from this source
SET_SOURCE_FILES_PROPERTIES( 
    ${CMAKE_BINARY_DIR}/src/frontend/SageIII/lex.yy.C 
    PROPERTIES GENERATED 1
    )

#Tell cmake that the ompparser is generated from this source
SET_SOURCE_FILES_PROPERTIES(
    ${CMAKE_BINARY_DIR}/src/frontend/SageIII/ompparser.C
    ${CMAKE_BINARY_DIR}/src/frontend/SageIII/ompparser.h
    ${CMAKE_BINARY_DIR}/src/frontend/SageIII/omp-lex.yy.C
    PROPERTIES GENERATED 1
    )

#Tell cmake that these files are generated by the binary frontend
SET_SOURCE_FILES_PROPERTIES(
     ${CMAKE_BINARY_DIR}/src/frontend/BinaryDisassembly/armInstructionEnumPrinter.C 
     ${CMAKE_BINARY_DIR}/src/frontend/BinaryDisassembly/powerpcInstructionEnumPrinter.C 
     PROPERTIES GENERATED 1
     )

# Tell cmake that these files are generated (see src/util/CMakeLists.txt).
SET_SOURCE_FILES_PROPERTIES(
     ${CMAKE_BINARY_DIR}/src/roseSupport/stringify.C
     ${CMAKE_BINARY_DIR}/src/roseSupport/stringify.h
     PROPERTIES GENERATED 1
     )


####### SOURCE FILES IN ROSE

set( STORAGECLASSES_SRC      
    ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astFileIO/StorageClassMemoryManagement.C
   )

#add_library(storageclasses ${STORAGECLASSES_SRC} )

# DQ (11/28/2009): Note that both DAG.C and DirectedGraph.C contain only templates and 
# are included in other source files as required. They do not need to be compiled 
# separately and generate a warning to the MSVC linker because they contain no symbols.
  set(rose_util_src 
      ${CMAKE_SOURCE_DIR}/src/util/stringSupport/FileNameClassifier.C
      ${CMAKE_SOURCE_DIR}/src/util/rose_getline.C
      ${CMAKE_BINARY_DIR}/src/util/rose_paths.C
      ${CMAKE_SOURCE_DIR}/src/util/stringSupport/escape.C
      ${CMAKE_SOURCE_DIR}/src/util/graphs/TypedFusion.C
      ${CMAKE_SOURCE_DIR}/src/util/graphs/DGBaseGraphImpl.C
      ${CMAKE_SOURCE_DIR}/src/util/graphs/TransAnalysis.C
      ${CMAKE_SOURCE_DIR}/src/util/graphs/SCCAnalysis.C
      ${CMAKE_SOURCE_DIR}/src/util/commandlineProcessing/commandline_processing.C
      ${CMAKE_SOURCE_DIR}/src/util/commandlineProcessing/sla++.C
      ${CMAKE_SOURCE_DIR}/src/util/processSupport.C
#     ${CMAKE_SOURCE_DIR}/src/util/support/DirectedGraph.C
      ${CMAKE_SOURCE_DIR}/src/util/support/CommandOptions.C
#     ${CMAKE_SOURCE_DIR}/src/util/support/DAG.C
      ${CMAKE_SOURCE_DIR}/src/util/support/VectorCommandOptions.C
      ${CMAKE_SOURCE_DIR}/src/util/stringSupport/string_functions.cpp
#     ${CMAKE_SOURCE_DIR}/src/util/stringSupport/escape.C

     )


set( phpFrontend_SRC 
     ${CMAKE_SOURCE_DIR}/src/frontend/PHPFrontend/PHPFrontend.C
     )

set( astFixup_SRC
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astFixup/AstFixup.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astFixup/fixupforGnuBackendCompiler.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astFixup/fixupInClassDataInitialization.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astFixup/removeInitializedNamePtr.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astFixup/fixupDeclarations2.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astFixup/fixupFunctionDefinitions.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astFixup/fixupStorageAccessOfForwardTemplateDeclarations.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astFixup/fixupSourcePositionInformation.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astFixup/fixupEnumValues.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astFixup/fixupFriendTemplateDeclarations.C
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astFixup/fixupPrettyFunction.C 
   )

set( sage3_SRC
   ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/rose_attributes_list.C 
   ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/attachPreprocessingInfo.C 
   ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/attachPreprocessingInfoTraversal.C 
   ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/attributeListMap.C 
   ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/manglingSupport.C 
   ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/sageSupport.C 
   ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/fixupCopy_scopes.C 
   ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/fixupCopy_symbols.C 
   ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/fixupCopy_references.C 
   ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/rtiHelpers.C 
   ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/OmpAttribute.C 
   ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/ompAstConstruction.cpp
   ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/ompFortranParser.C 
   ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/dwarfSupport.C 
   ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/rose_graph_support.C
   ${CMAKE_BINARY_DIR}/src/frontend/SageIII/lex.yy.C
   ${CMAKE_BINARY_DIR}/src/frontend/SageIII/ompparser.C
   ${CMAKE_BINARY_DIR}/src/frontend/SageIII/omp-lex.yy.C
   ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/omplexer.ll
   ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/ompparser.yy
   )

set(MSTL_SRC
    ${CMAKE_SOURCE_DIR}/src/3rdPartyLibraries/MSTL/PDFGeneration.C 
    ${CMAKE_SOURCE_DIR}/src/3rdPartyLibraries/MSTL/DOTGraphInterface.C
   )

set(EDG_SAGE_Connection_SRC
    ${CMAKE_SOURCE_DIR}/src/frontend/CxxFrontend/EDG/EDG_SAGE_Connection/sage_gen_be.C
    ${CMAKE_SOURCE_DIR}/src/frontend/CxxFrontend/EDG/EDG_SAGE_Connection/wrapperFunctionsForEDG.C
   )

set(virtualCFG_SRC
    ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/virtualCFG/virtualCFG.C 
    ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/virtualCFG/virtualBinCFG.C 
    ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/virtualCFG/cfgToDot.C 
    ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/virtualCFG/memberFunctions.C
   )

set( binaryFrontend_SRC 
     ${CMAKE_SOURCE_DIR}/src/frontend/BinaryDisassembly/RoseBin_support.cpp 
     ${CMAKE_SOURCE_DIR}/src/frontend/BinaryDisassembly/instructionDispatch.cpp 
     ${CMAKE_SOURCE_DIR}/src/frontend/BinaryDisassembly/x86InstructionProperties.h 
     ${CMAKE_SOURCE_DIR}/src/frontend/BinaryDisassembly/x86InstructionProperties.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/BinaryDisassembly/armInstructionEnum.h 
     ${CMAKE_BINARY_DIR}/src/frontend/BinaryDisassembly/armInstructionEnumPrinter.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/BinaryDisassembly/powerpcInstructionEnum.h 
     ${CMAKE_BINARY_DIR}/src/frontend/BinaryDisassembly/powerpcInstructionEnumPrinter.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/BinaryDisassembly/powerpcInstructionProperties.h 
     ${CMAKE_SOURCE_DIR}/src/frontend/BinaryDisassembly/powerpcInstructionProperties.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/BinaryDisassembly/readTicl.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/BinaryDisassembly/RoseBin_file.cpp 
     ${CMAKE_SOURCE_DIR}/src/frontend/BinaryDisassembly/RoseFile.cpp 
     ${CMAKE_SOURCE_DIR}/src/frontend/BinaryDisassembly/RoseBin_buildTree.cpp 
     ${CMAKE_SOURCE_DIR}/src/frontend/BinaryDisassembly/RoseBin_IDAPRO_buildTree.cpp 
     ${CMAKE_SOURCE_DIR}/src/frontend/BinaryDisassembly/AST_BIN_Traversal.C
   )

set(rose_support_src 
      ${CMAKE_SOURCE_DIR}/src/roseSupport/transformationSupport.C 
      ${CMAKE_SOURCE_DIR}/src/roseSupport/optionDeclaration.C 
      ${CMAKE_SOURCE_DIR}/src/roseSupport/sourceLocationInheritedAttribute.C 
      ${CMAKE_SOURCE_DIR}/src/roseSupport/roseTranslators.C 
      ${CMAKE_SOURCE_DIR}/src/roseSupport/utility_functions.C 
      ${CMAKE_SOURCE_DIR}/src/roseSupport/memoryUsage.C
      ${CMAKE_BINARY_DIR}/src/roseSupport/stringify.C
     )



set(roseDisassemblers_SRC
   ${CMAKE_SOURCE_DIR}/src/frontend/Disassemblers/InstructionEnumsX86.h
   ${CMAKE_SOURCE_DIR}/src/frontend/Disassemblers/Partitioner.C 
   ${CMAKE_SOURCE_DIR}/src/frontend/Disassemblers/IPDParser.C 
   ${CMAKE_SOURCE_DIR}/src/frontend/Disassemblers/Registers.C
   ${CMAKE_SOURCE_DIR}/src/frontend/Disassemblers/Disassembler.C 
   ${CMAKE_SOURCE_DIR}/src/frontend/Disassemblers/DisassemblerArm.C 
   ${CMAKE_SOURCE_DIR}/src/frontend/Disassemblers/DisassemblerPowerpc.C 
   ${CMAKE_SOURCE_DIR}/src/frontend/Disassemblers/DisassemblerX86.C
   ${CMAKE_SOURCE_DIR}/src/frontend/Disassemblers/Assembler.C 
   ${CMAKE_SOURCE_DIR}/src/frontend/Disassemblers/AssemblerX86.C 
   ${CMAKE_SOURCE_DIR}/src/frontend/Disassemblers/AssemblerX86Init.C
   ${CMAKE_SOURCE_DIR}/src/frontend/Disassemblers/AssemblerX86Init1.C
   ${CMAKE_SOURCE_DIR}/src/frontend/Disassemblers/AssemblerX86Init2.C
   ${CMAKE_SOURCE_DIR}/src/frontend/Disassemblers/AssemblerX86Init3.C
   ${CMAKE_SOURCE_DIR}/src/frontend/Disassemblers/AssemblerX86Init4.C
   ${CMAKE_SOURCE_DIR}/src/frontend/Disassemblers/AssemblerX86Init5.C
   ${CMAKE_SOURCE_DIR}/src/frontend/Disassemblers/AssemblerX86Init6.C
   ${CMAKE_SOURCE_DIR}/src/frontend/Disassemblers/AssemblerX86Init7.C
   ${CMAKE_SOURCE_DIR}/src/frontend/Disassemblers/AssemblerX86Init8.C
   ${CMAKE_SOURCE_DIR}/src/frontend/Disassemblers/AssemblerX86Init9.C
   )

set (unparser_SRC
      ${CMAKE_SOURCE_DIR}/src/backend/unparser/FortranCodeGeneration/unparseFortran_expressions.C
      ${CMAKE_SOURCE_DIR}/src/backend/unparser/FortranCodeGeneration/unparseFortran_modfile.C
      ${CMAKE_SOURCE_DIR}/src/backend/unparser/FortranCodeGeneration/unparseFortran_statements.C
      ${CMAKE_SOURCE_DIR}/src/backend/unparser/FortranCodeGeneration/unparseFortran_types.C
      ${CMAKE_SOURCE_DIR}/src/backend/unparser/CxxCodeGeneration/unparseCxx_types.C
      ${CMAKE_SOURCE_DIR}/src/backend/unparser/CxxCodeGeneration/unparseCxx_expressions.C
      ${CMAKE_SOURCE_DIR}/src/backend/unparser/CxxCodeGeneration/unparseCxx_statements.C
#      ${CMAKE_SOURCE_DIR}/src/backend/unparser/copy_unparser.C
      ${CMAKE_SOURCE_DIR}/src/backend/unparser/astUnparseAttribute.C
      ${CMAKE_SOURCE_DIR}/src/backend/unparser/unparser.C
      ${CMAKE_SOURCE_DIR}/src/backend/unparser/unparse_sym.C
      ${CMAKE_SOURCE_DIR}/src/backend/unparser/formatSupport/unparseFormatHelp.C
      ${CMAKE_SOURCE_DIR}/src/backend/unparser/formatSupport/unparse_format.C
      ${CMAKE_SOURCE_DIR}/src/backend/unparser/PHPCodeGeneration/unparsePHP.C
      ${CMAKE_SOURCE_DIR}/src/backend/unparser/languageIndependenceSupport/modified_sage_isUnaryOp.C
      ${CMAKE_SOURCE_DIR}/src/backend/unparser/languageIndependenceSupport/unparser_opt.C
      ${CMAKE_SOURCE_DIR}/src/backend/unparser/languageIndependenceSupport/modified_sage.C
      ${CMAKE_SOURCE_DIR}/src/backend/unparser/languageIndependenceSupport/name_qualification_support.C
      ${CMAKE_SOURCE_DIR}/src/backend/unparser/languageIndependenceSupport/unparse_debug.C
      ${CMAKE_SOURCE_DIR}/src/backend/unparser/languageIndependenceSupport/unparseLanguageIndependentConstructs.C
)


set(roseBinaryFormats_fileList_part0
   ### Utilities ###
   ${CMAKE_SOURCE_DIR}/src/frontend/BinaryFormats/DataConversion.C
   ${CMAKE_SOURCE_DIR}/src/frontend/BinaryFormats/ExecGeneric.C 
   ${CMAKE_SOURCE_DIR}/src/frontend/BinaryFormats/ExtentMap.C
   ${CMAKE_SOURCE_DIR}/src/frontend/BinaryFormats/Hexdump.C
   ${CMAKE_SOURCE_DIR}/src/frontend/BinaryFormats/Interpretation.C
   ${CMAKE_SOURCE_DIR}/src/frontend/BinaryFormats/MemoryMap.C 
   ${CMAKE_SOURCE_DIR}/src/frontend/BinaryFormats/Rva.C 

   ### Generic Base Classes ###
   ${CMAKE_SOURCE_DIR}/src/frontend/BinaryFormats/GenericDynamicLinking.C
   ${CMAKE_SOURCE_DIR}/src/frontend/BinaryFormats/GenericFile.C
   ${CMAKE_SOURCE_DIR}/src/frontend/BinaryFormats/GenericFormat.C
   ${CMAKE_SOURCE_DIR}/src/frontend/BinaryFormats/GenericHeader.C
   ${CMAKE_SOURCE_DIR}/src/frontend/BinaryFormats/GenericSection.C
   ${CMAKE_SOURCE_DIR}/src/frontend/BinaryFormats/GenericString.C

   ### Executable Linking Format (ELF) ###
   ${CMAKE_SOURCE_DIR}/src/frontend/BinaryFormats/ElfDynamicLinking.C 
   ${CMAKE_SOURCE_DIR}/src/frontend/BinaryFormats/ElfErrorFrame.C 
   ${CMAKE_SOURCE_DIR}/src/frontend/BinaryFormats/ElfFileHeader.C 
   ${CMAKE_SOURCE_DIR}/src/frontend/BinaryFormats/ElfNote.C 
   ${CMAKE_SOURCE_DIR}/src/frontend/BinaryFormats/ElfRelocation.C 
   ${CMAKE_SOURCE_DIR}/src/frontend/BinaryFormats/ElfSection.C 
   ${CMAKE_SOURCE_DIR}/src/frontend/BinaryFormats/ElfSectionTable.C 
   ${CMAKE_SOURCE_DIR}/src/frontend/BinaryFormats/ElfSegmentTable.C 
   ${CMAKE_SOURCE_DIR}/src/frontend/BinaryFormats/ElfStringTable.C 
   ${CMAKE_SOURCE_DIR}/src/frontend/BinaryFormats/ElfSymbolTable.C 
   ${CMAKE_SOURCE_DIR}/src/frontend/BinaryFormats/ElfSymbolVersion.C 

   ### Microsoft Windows PE Format */
   ${CMAKE_SOURCE_DIR}/src/frontend/BinaryFormats/PeExport.C
   ${CMAKE_SOURCE_DIR}/src/frontend/BinaryFormats/PeFileHeader.C
   ${CMAKE_SOURCE_DIR}/src/frontend/BinaryFormats/PeImportDirectory.C
   ${CMAKE_SOURCE_DIR}/src/frontend/BinaryFormats/PeImportHNTEntry.C
   ${CMAKE_SOURCE_DIR}/src/frontend/BinaryFormats/PeImportILTEntry.C
   ${CMAKE_SOURCE_DIR}/src/frontend/BinaryFormats/PeImportLookupTable.C
   ${CMAKE_SOURCE_DIR}/src/frontend/BinaryFormats/PeImportSection.C
   ${CMAKE_SOURCE_DIR}/src/frontend/BinaryFormats/PeRvaSizePair.C
   ${CMAKE_SOURCE_DIR}/src/frontend/BinaryFormats/PeSection.C
   ${CMAKE_SOURCE_DIR}/src/frontend/BinaryFormats/PeSectionTable.C
   ${CMAKE_SOURCE_DIR}/src/frontend/BinaryFormats/PeStringTable.C
   ${CMAKE_SOURCE_DIR}/src/frontend/BinaryFormats/PeSymbolTable.C

   ### Other Formats (partial implementations and not so well tested) ###
   ${CMAKE_SOURCE_DIR}/src/frontend/BinaryFormats/ExecDOS.C 
   ${CMAKE_SOURCE_DIR}/src/frontend/BinaryFormats/ExecNE.C 
   ${CMAKE_SOURCE_DIR}/src/frontend/BinaryFormats/ExecLE.C 
   )

set(roseBinaryLoader_SRC
   ${CMAKE_SOURCE_DIR}/src/frontend/BinaryLoader/BinaryLoader.C
   ${CMAKE_SOURCE_DIR}/src/frontend/BinaryLoader/BinaryLoaderElf.C
   ${CMAKE_SOURCE_DIR}/src/frontend/BinaryLoader/BinaryLoaderElfObj.C
   ${CMAKE_SOURCE_DIR}/src/frontend/BinaryLoader/BinaryLoaderPe.C
   )

set( roseAsmUnparser_SRC 
     ${CMAKE_SOURCE_DIR}/src/backend/asmUnparser/unparseX86Asm.C 
     ${CMAKE_SOURCE_DIR}/src/backend/asmUnparser/unparseArmAsm.C 
     ${CMAKE_SOURCE_DIR}/src/backend/asmUnparser/unparsePowerpcAsm.C 
     ${CMAKE_SOURCE_DIR}/src/backend/asmUnparser/AsmUnparser.C
     ${CMAKE_SOURCE_DIR}/src/backend/asmUnparser/AsmUnparser_compat.C
   )

set( libastMerge_SRC     
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astMerge/merge_support.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astMerge/test_support.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astMerge/buildMangledNameMap.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astMerge/buildSetOfFrontendSpecificNodes.C
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astMerge/deleteNodes.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astMerge/fixupTraversal.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astMerge/nullifyAST.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astMerge/buildReplacementMap.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astMerge/collectAssociateNodes.C
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astMerge/deleteOrphanNodes.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astMerge/normalizeTypes.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astMerge/requiredNodes.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astMerge/merge.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astMerge/AstFixParentTraversal.C
   )


set( midend_src
 ${CMAKE_SOURCE_DIR}/src/midend/midend_roseh_pch.cpp
 ${CMAKE_SOURCE_DIR}/src/midend/abstractHandle/abstract_handle.cpp
 ${CMAKE_SOURCE_DIR}/src/midend/abstractHandle/loopAdapter.cpp
 ${CMAKE_SOURCE_DIR}/src/midend/abstractHandle/roseAdapter.cpp
 ${CMAKE_SOURCE_DIR}/src/midend/astQuery/nodeQueryInheritedAttribute.C
 ${CMAKE_SOURCE_DIR}/src/midend/astQuery/nameQuery.C
 ${CMAKE_SOURCE_DIR}/src/midend/astQuery/astQueryInheritedAttribute.C
 ${CMAKE_SOURCE_DIR}/src/midend/astQuery/numberQueryInheritedAttribute.C
 ${CMAKE_SOURCE_DIR}/src/midend/astQuery/booleanQuery.C
 ${CMAKE_SOURCE_DIR}/src/midend/astQuery/booleanQueryInheritedAttribute.C
 ${CMAKE_SOURCE_DIR}/src/midend/astQuery/numberQuery.C
 ${CMAKE_SOURCE_DIR}/src/midend/astQuery/astQuery.C
 ${CMAKE_SOURCE_DIR}/src/midend/astQuery/nameQueryInheritedAttribute.C
 #${CMAKE_SOURCE_DIR}/src/midend/astQuery/queryVariant.C
 ${CMAKE_SOURCE_DIR}/src/midend/astQuery/nodeQuery.C
 ${CMAKE_SOURCE_DIR}/src/midend/binaryAnalyses/GraphAlgorithms.C
 ${CMAKE_SOURCE_DIR}/src/midend/binaryAnalyses/binary_analysis.C
 #${CMAKE_SOURCE_DIR}/src/midend/binaryAnalyses/libraryIdentification/libraryIdentification_writer.C
 #${CMAKE_SOURCE_DIR}/src/midend/binaryAnalyses/libraryIdentification/libraryIdentifiction_reader.C
#${CMAKE_SOURCE_DIR}/src/midend/binaryAnalyses/libraryIdentification/functionIdentification.C
 ${CMAKE_SOURCE_DIR}/src/midend/astDiagnostics/AstConsistencyTests.C
 ${CMAKE_SOURCE_DIR}/src/midend/astDiagnostics/AstWarnings.C
 ${CMAKE_SOURCE_DIR}/src/midend/astDiagnostics/AstPerformance.C
 ${CMAKE_SOURCE_DIR}/src/midend/astDiagnostics/AstStatistics.C
)



set (AST_REWRITE_SRC
${CMAKE_SOURCE_DIR}/src/midend/astRewriteMechanism/rewriteASTFragementString.C  
${CMAKE_SOURCE_DIR}/src/midend/astRewriteMechanism/rewriteLowLevelInterface.C     
${CMAKE_SOURCE_DIR}/src/midend/astRewriteMechanism/rewriteTemplateInstantiations.C
${CMAKE_SOURCE_DIR}/src/midend/astRewriteMechanism/nodeCollection.C               
${CMAKE_SOURCE_DIR}/src/midend/astRewriteMechanism/rewriteDebuggingSupport.C    
${CMAKE_SOURCE_DIR}/src/midend/astRewriteMechanism/rewriteMidLevelInterface.C     
${CMAKE_SOURCE_DIR}/src/midend/astRewriteMechanism/rewriteTypeDeclaration.C
${CMAKE_SOURCE_DIR}/src/midend/astRewriteMechanism/rewriteAccumulatedAttribute.C  
${CMAKE_SOURCE_DIR}/src/midend/astRewriteMechanism/rewriteHighLevelInterface.C  
${CMAKE_SOURCE_DIR}/src/midend/astRewriteMechanism/rewriteSynthesizedAttribute.C
)


set( libabstractHandle_SRC
     ${CMAKE_SOURCE_DIR}/src/midend/abstractHandle/abstract_handle.cpp 
     ${CMAKE_SOURCE_DIR}/src/midend/abstractHandle/roseAdapter.cpp
   )

set(rose_diagnostics_src
      ${CMAKE_SOURCE_DIR}/src/midend/astDiagnostics/AstConsistencyTests.C 
      ${CMAKE_SOURCE_DIR}/src/midend/astDiagnostics/AstWarnings.C
      ${CMAKE_SOURCE_DIR}/src/midend/astDiagnostics/AstStatistics.C 
      ${CMAKE_SOURCE_DIR}/src/midend/astDiagnostics/AstPerformance.C
)

set(libastprocessing_SRC  
   ${CMAKE_SOURCE_DIR}/src/midend/astProcessing/AstPDFGeneration.C 
   ${CMAKE_SOURCE_DIR}/src/midend/astProcessing/AstNodeVisitMapping.C 
   ${CMAKE_SOURCE_DIR}/src/midend/astProcessing/AstTextAttributesHandling.C 
   ${CMAKE_SOURCE_DIR}/src/midend/astProcessing/AstDOTGeneration.C 
   ${CMAKE_SOURCE_DIR}/src/midend/astProcessing/AstProcessing.C 
   ${CMAKE_SOURCE_DIR}/src/midend/astProcessing/AstSimpleProcessing.C 
   ${CMAKE_SOURCE_DIR}/src/midend/astProcessing/Ast.C 
   ${CMAKE_SOURCE_DIR}/src/midend/astProcessing/AstNodePtrs.C 
   ${CMAKE_SOURCE_DIR}/src/midend/astProcessing/AstSuccessorsSelectors.C 
   ${CMAKE_SOURCE_DIR}/src/midend/astProcessing/AstAttributeMechanism.C 
   ${CMAKE_SOURCE_DIR}/src/midend/astProcessing/AstReverseSimpleProcessing.C 
   ${CMAKE_SOURCE_DIR}/src/midend/astProcessing/AstClearVisitFlags.C 
   ${CMAKE_SOURCE_DIR}/src/midend/astProcessing/AstTraversal.C 
   ${CMAKE_SOURCE_DIR}/src/midend/astProcessing/AstCombinedSimpleProcessing.C 
   )
if (NOT WIN32)
set( libastprocessing_SRC  ${libastprocessing_SRC} 
   ${CMAKE_SOURCE_DIR}/src/midend/astProcessing/AstSharedMemoryParallelSimpleProcessing.C 
   ${CMAKE_SOURCE_DIR}/src/midend/astProcessing/AstRestructure.C 
   )
endif (NOT WIN32)


set( midend_util_src
${CMAKE_SOURCE_DIR}/src/midend/astUtil/astInterface/CPPAstInterface.C
${CMAKE_SOURCE_DIR}/src/midend/astUtil/astInterface/AstInterface.C
${CMAKE_SOURCE_DIR}/src/midend/astUtil/symbolicVal/SymbolicVal.C
${CMAKE_SOURCE_DIR}/src/midend/astUtil/symbolicVal/SymbolicOperator.C
${CMAKE_SOURCE_DIR}/src/midend/astUtil/symbolicVal/SymbolicUnwrapCond.C
${CMAKE_SOURCE_DIR}/src/midend/astUtil/symbolicVal/SymbolicBound.C
${CMAKE_SOURCE_DIR}/src/midend/astUtil/symbolicVal/SymbolicFind.C
${CMAKE_SOURCE_DIR}/src/midend/astUtil/symbolicVal/SymbolicExpr.C
${CMAKE_SOURCE_DIR}/src/midend/astUtil/annotation/OperatorAnnotation.C
${CMAKE_SOURCE_DIR}/src/midend/astUtil/annotation/AnnotIO.C
${CMAKE_SOURCE_DIR}/src/midend/astUtil/annotation/AnnotGen.C
${CMAKE_SOURCE_DIR}/src/midend/astUtil/annotation/AnnotCollect.C
${CMAKE_SOURCE_DIR}/src/midend/astUtil/annotation/AnnotDescriptors.C
${CMAKE_SOURCE_DIR}/src/midend/astUtil/annotation/OperatorDescriptors.C
${CMAKE_SOURCE_DIR}/src/midend/astUtil/annotation/AnnotExpr.C
${CMAKE_SOURCE_DIR}/src/midend/astUtil/annotation/TypeAnnotation.C
${CMAKE_SOURCE_DIR}/src/midend/astUtil/astSupport/ProcessAstTree.C
${CMAKE_SOURCE_DIR}/src/midend/astUtil/astSupport/StmtInfoCollect.C
)

set( midend_binary_src
${CMAKE_SOURCE_DIR}/src/midend/binaryAnalyses/RoseBin_CallGraphAnalysis.cpp
${CMAKE_SOURCE_DIR}/src/midend/binaryAnalyses/RoseBin_FlowAnalysis.cpp
${CMAKE_SOURCE_DIR}/src/midend/binaryAnalyses/RoseBin_DataFlowAnalysis.cpp
${CMAKE_SOURCE_DIR}/src/midend/binaryAnalyses/RoseBin_CompareAnalysis.cpp
${CMAKE_SOURCE_DIR}/src/midend/binaryAnalyses/RoseBin_printInstructions.cpp
${CMAKE_SOURCE_DIR}/src/midend/binaryAnalyses/RoseBin_ControlFlowAnalysis.cpp
${CMAKE_SOURCE_DIR}/src/midend/binaryAnalyses/dataflowanalyses/RoseBin_Emulate.cpp
${CMAKE_SOURCE_DIR}/src/midend/binaryAnalyses/dataflowanalyses/RoseBin_DataFlowAbstract.cpp
${CMAKE_SOURCE_DIR}/src/midend/binaryAnalyses/dataflowanalyses/RoseBin_VariableAnalysis.cpp
${CMAKE_SOURCE_DIR}/src/midend/binaryAnalyses/dataflowanalyses/InterruptAnalysis.cpp
${CMAKE_SOURCE_DIR}/src/midend/binaryAnalyses/dataflowanalyses/RoseBin_DefUseAnalysis.cpp
${CMAKE_SOURCE_DIR}/src/midend/binaryAnalyses/instructionSemantics/findConstants.C
${CMAKE_SOURCE_DIR}/src/midend/binaryAnalyses/instructionSemantics/InsnSemanticsExpr.C
${CMAKE_SOURCE_DIR}/src/midend/binaryAnalyses/instructionSemantics/SMTSolver.C
${CMAKE_SOURCE_DIR}/src/midend/binaryAnalyses/instructionSemantics/SymbolicSemantics.C
${CMAKE_SOURCE_DIR}/src/midend/binaryAnalyses/instructionSemantics/YicesSolver.C
${CMAKE_SOURCE_DIR}/src/midend/binaryAnalyses/instructionSemantics/VirtualMachineSemantics.C
)


set( midend_pa_src
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/annotationLanguageParser/language-lexer.cc 
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/annotationLanguageParser/language-parser.cc 
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/annotationLanguageParser/annotations.cc 
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/annotationLanguageParser/annvariable.cc 
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/annotationLanguageParser/structure.cc 
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/annotationLanguageParser/enum_property.cc 
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/annotationLanguageParser/procedure.cc 
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/annotationLanguageParser/set_property.cc 
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/annotationLanguageParser/pointerrule.cc 
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/annotationLanguageParser/analyze.cc 
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/annotationLanguageParser/rule.cc 
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/annotationLanguageParser/broadway_expr.cc 
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/annotationLanguageParser/report.cc 
${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/defUseAnalysis/DefUseAnalysisAbstract.cpp
${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/defUseAnalysis/DefUseAnalysis.cpp
${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/defUseAnalysis/GlobalVarAnalysis.cpp
${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/defUseAnalysis/LivenessAnalysis.cpp
${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/defUseAnalysis/dfaToDot.cpp
${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/defUseAnalysis/DefUseAnalysis_perFunction.cpp
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/defUseAnalysis/runTest.cpp
${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/graphAnalysis/RoseBin_GmlGraph.cpp
${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/graphAnalysis/RoseBin_Graph.cpp
${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/graphAnalysis/RoseBin_DotGraph.cpp
${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/valuePropagation/ValueAnnot.C
${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/valuePropagation/ValuePropagate.C
${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/variableRenaming/VariableRenaming.C
${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/OAWrap/OAWrap.C
${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/OAWrap/SAGE2OA.C
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/proceduralSlicing/SlicingInfo.C
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/sideEffectAnalysis/sideEffect.C
${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/CallGraphAnalysis/CallGraphDB.C
${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/CallGraphAnalysis/CallGraph.C
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/CallGraphAnalysis/callgraph_example.C
${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/CallGraphAnalysis/ClassHierarchyGraph.C
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/OpenAnalysis/CFG/OARIFG.C
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/OpenAnalysis/CFG/TarjanIntervals.C
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/OpenAnalysis/CFG/CFG.C
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/OpenAnalysis/CallGraph/CallGraph.C
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/OpenAnalysis/Utils/BaseGraph.C
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/OpenAnalysis/Utils/Tree.C
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/OpenAnalysis/Utils/DGraph.C
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/OpenAnalysis/Utils/UnionFindUniverse.C
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/OpenAnalysis/Utils/Graph.C
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/OpenAnalysis/Utils/trtest.C
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/OpenAnalysis/Utils/grtest.C
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/OpenAnalysis/SSA/DomTree.C
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/OpenAnalysis/SSA/SSA.C
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/OpenAnalysis/SSA/Phi.C
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/staticInterproceduralSlicing/createFDG.C
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/staticInterproceduralSlicing/testCDG.C
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/staticInterproceduralSlicing/generateSFCFG.C
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/staticInterproceduralSlicing/printDUC.C
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/staticInterproceduralSlicing/createDDG.C
${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/staticInterproceduralSlicing/MergedDependenceGraph.C
${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/staticInterproceduralSlicing/ControlFlowGraph.C
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/staticInterproceduralSlicing/multiPassTest.C
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/staticInterproceduralSlicing/newControlDependenceGraph.C
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/staticInterproceduralSlicing/testDDG.C
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/staticInterproceduralSlicing/testSlicing.C
${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/staticInterproceduralSlicing/FunctionDependenceGraph.C
${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/staticInterproceduralSlicing/ControlDependenceGraph.C
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/staticInterproceduralSlicing/generateSFBDT.C
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/staticInterproceduralSlicing/createSDG.C
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/staticInterproceduralSlicing/generateSFDT.C
${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/staticInterproceduralSlicing/DependenceGraph.C
${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/staticInterproceduralSlicing/EDefUse.C
${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/staticInterproceduralSlicing/DataDependenceGraph.C
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/staticInterproceduralSlicing/generateSFDF.C
${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/staticInterproceduralSlicing/SlicingInfo.C
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/staticInterproceduralSlicing/slice.C
${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/staticInterproceduralSlicing/CreateSlice.C
${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/staticInterproceduralSlicing/CreateSliceSet.C
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/staticInterproceduralSlicing/newDU.C
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/staticInterproceduralSlicing/testSDG.C
${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/staticInterproceduralSlicing/SystemDependenceGraph.C
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/staticInterproceduralSlicing/createCDG.C
${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/staticInterproceduralSlicing/DefUseExtension.C
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/distributedMemoryAnalysis/functionNames.C
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/distributedMemoryAnalysis/DistributedMemoryAnalysis.C
${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/CFG/CFG_OA.C
${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/CFG/CFG_ROSE.C
${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/pointerAnal/PtrAnalCFG.C
${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/pointerAnal/PtrAnal.C
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/CallGraphAnalysisMySQL/Callgraph.C
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/CallGraphAnalysisMySQL/callgraph_example.C
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/CallGraphAnalysisMySQL/Classhierarchy.C
${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/dataflowAnalysis/DataFlowAnalysis.C
${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/dataflowAnalysis/ReachingDefinition.C
${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/dataflowAnalysis/DefUseChain.C
${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/graphAnalysis/SB_Graph.C
${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/graphAnalysis/CallGraphAnalysis.C
${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/graphAnalysis/RoseSrc_CallGraphAnalysis.C
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/dominatorTreesAndDominanceFrontiers/ControlFlowGraph.C
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/dominatorTreesAndDominanceFrontiers/DominanceFrontier.C
#${CMAKE_SOURCE_DIR}/src/midend/programAnalysis/dominatorTreesAndDominanceFrontiers/DominatorTree.C
)


set( midend_pt_src
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/astOutlining/NameGenerator.cc
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/astOutlining/Preprocess.cc
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/astOutlining/Outliner.cc
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/astOutlining/Insert.cc
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/astOutlining/NonLocalDecls.cc
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/astOutlining/ExtractIfs.cc
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/astOutlining/Case.cc
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/astOutlining/Block.cc
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/astOutlining/PreprocIfs.cc
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/astOutlining/This.cc
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/astOutlining/Check.cc
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/astOutlining/NonLocalControlFlow.cc
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/astOutlining/ASTtools.cc
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/astOutlining/PrePostTraversal.cc
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/astOutlining/GenerateFunc.cc
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/astOutlining/IfDirectiveContextFinder.cc
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/astOutlining/Jumps.cc
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/astOutlining/IfDirectiveExtractor.cc
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/astOutlining/VarSym.cc
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/astOutlining/PreprocessingInfo.cc
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/astOutlining/PragmaInterface.cc
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/astOutlining/StmtRewrite.cc
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/astOutlining/CollectVars.cc
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/astOutlining/ThisExprs.cc
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/astOutlining/Copy.cc
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/astOutlining/If.cc
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/astOutlining/Transform.cc
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/astOutlining/GenerateCall.cc
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/ompLowering/omp_lowering.cpp
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/astInlining/isPotentiallyModified.C
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/astInlining/replaceExpressionWithStatement.C
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/astInlining/inliner.C
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/astInlining/inlinerSupport.C
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/implicitCodeGeneration/defaultFunctionGenerator.C
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/implicitCodeGeneration/destructorCallAnnotator.C
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/implicitCodeGeneration/analysisUtils.C
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/implicitCodeGeneration/shortCircuitingTransformation.C
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/partialRedundancyElimination/expressionTreeEqual.C
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/partialRedundancyElimination/controlFlowGraph.C
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/partialRedundancyElimination/pre.C
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/constantFolding/constantFolding.C
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/functionCallNormalization/FunctionNormalization.C
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/finiteDifferencing/finiteDifferencing.C
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/finiteDifferencing/patternRewrite.C
)


set( graphs 
     ${CMAKE_SOURCE_DIR}/src/util/graphs/DGBaseGraphImpl.C 
     ${CMAKE_SOURCE_DIR}/src/util/graphs/SCCAnalysis.C  
     ${CMAKE_SOURCE_DIR}/src/util/graphs/TransAnalysis.C  
     ${CMAKE_SOURCE_DIR}/src/util/graphs/TypedFusion.C 
     GLOBAL )


set( libsageInterface_SRC  
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/sageInterface/sageInterface.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/sageInterface/sageInterface_asm.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/sageInterface/sageInterface_type.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/sageInterface/generateUniqueName.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/sageInterface/sageBuilder.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/sageInterface/sageBuilder_fortran.C
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/sageInterface/sageBuilderAsm.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/sageInterface/abiStuff.C
   )


set( libastTokenStream_SRC
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astTokenStream/createMap.C  
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astTokenStream/doCompleteMapping.C  
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astTokenStream/linearizeAST.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astTokenStream/unparseMacro.C
   )


set( libastHiddenTypeAndDeclarationLists_SRC      
  ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astHiddenTypeAndDeclarationLists/HiddenList.C  
  ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astHiddenTypeAndDeclarationLists/HiddenList_Intersection.C 
  ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astHiddenTypeAndDeclarationLists/HiddenList_Output.C 
  ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astHiddenTypeAndDeclarationLists/NamespacesAndClassTraversal.C
   )


set( libastVisualization_SRC 
  ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astVisualization/astGraph.C 
  ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astVisualization/AstAttributeDOT.C 
  ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astVisualization/wholeAST.C 
  ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astVisualization/copyGraph.C 
  ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astVisualization/walrus.C 
)



set( midend_loopproc_src
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/loopProcessing/prepostTransformation/PrivatizeScalar.C
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/loopProcessing/prepostTransformation/BreakupStmt.C
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/loopProcessing/prepostTransformation/LoopUnroll.C
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/loopProcessing/computation/LoopTreeTransform.C
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/loopProcessing/computation/LoopTree.C
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/loopProcessing/computation/LoopTreeDummyNode.C
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/loopProcessing/computation/LoopTreeShadow.C
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/loopProcessing/computation/DepCompTransform.C
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/loopProcessing/computation/LoopTreeDepComp.C
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/loopProcessing/computation/LoopTreeLocality.C
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/loopProcessing/slicing/CompSliceDepGraph.C
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/loopProcessing/slicing/DynamicCompSlice.C
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/loopProcessing/slicing/CompSliceLocality.C
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/loopProcessing/slicing/CompSlice.C
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/loopProcessing/slicing/DependenceHoisting.C
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/loopProcessing/depGraph/TransDepGraph.C
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/loopProcessing/depGraph/DepGraphBuild.C
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/loopProcessing/depGraph/LoopAnalysis.C
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/loopProcessing/outsideInterface/ArrayRewrite.C
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/loopProcessing/outsideInterface/ArrayAnnot.C
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/loopProcessing/outsideInterface/ArrayInterface.C
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/loopProcessing/driver/CopyArrayAnal.C
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/loopProcessing/driver/LoopTransformInterface.C
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/loopProcessing/driver/FusionAnal.C
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/loopProcessing/driver/NormalizeCPP.C
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/loopProcessing/driver/InterchangeAnal.C
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/loopProcessing/driver/LoopTransformOptions.C
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/loopProcessing/driver/TransformComputation.C
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/loopProcessing/driver/BlockingAnal.C
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/loopProcessing/driver/TypedFusionImpl.C
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/loopProcessing/depInfo/StmtDepAnal.C
#${CMAKE_SOURCE_DIR}/src/midend/programTransformation/loopProcessing/depInfo/DepTestStatistics.C
#${CMAKE_SOURCE_DIR}/src/midend/programTransformation/loopProcessing/depInfo/PlatoOmegaInterface.C
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/loopProcessing/depInfo/DepInfo.C
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/loopProcessing/depInfo/DepRel.C
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/loopProcessing/depInfo/DepInfoSet.C
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/loopProcessing/depInfo/DomainInfo.C
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/loopProcessing/depInfo/DepEDD.C
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/loopProcessing/depInfo/ReuseAnalysis.C
${CMAKE_SOURCE_DIR}/src/midend/programTransformation/loopProcessing/depInfo/DepInfoAnal.C
)


set( libastPostProcessing_SRC
${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astPostProcessing/astPostProcessing.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astPostProcessing/fixupSymbolTables.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astPostProcessing/markForOutputInCodeGeneration.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astPostProcessing/processTemplateHandlingOptions.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astPostProcessing/checkIsModifiedFlag.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astPostProcessing/fixupTemplateInstantiations.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astPostProcessing/markTemplateInstantiationsForOutput.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astPostProcessing/resetParentPointers.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astPostProcessing/fixupDefiningAndNondefiningDeclarations.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astPostProcessing/markCompilerGenerated.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astPostProcessing/markTemplateSpecializationsForOutput.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astPostProcessing/resetTemplateNames.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astPostProcessing/initializeExplicitScopeData.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astPostProcessing/fixupDeclarations.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astPostProcessing/markOverloadedTemplateInstantiations.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astPostProcessing/markTransformationsForOutput.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astPostProcessing/markBackendCompilerSpecificFunctions.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astPostProcessing/fixupNullPointers.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astPostProcessing/fixupNames.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astPostProcessing/fixupTypes.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astPostProcessing/fixupConstructorPreinitializationLists.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astPostProcessing/propagateHiddenListData.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astPostProcessing/resolveFortranReferences.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astPostProcessing/insertFortranContainsStatement.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astPostProcessing/markLhsValues.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astPostProcessing/fixupUseAndUsingDeclarations.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astPostProcessing/buildStatementNumbering.C
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astPostProcessing/fixupCxxSymbolTablesToSupportAliasingSymbols.C 
     ${CMAKE_SOURCE_DIR}/src/frontend/SageIII/astPostProcessing/normalizeTypedefSequenceLists.C
   )












####### ADDING DIRECTORIES
add_subdirectory(util)
add_subdirectory(ROSETTA)
add_subdirectory(frontend)
add_subdirectory(midend)
add_subdirectory(backend)
add_subdirectory(roseSupport)
add_subdirectory(3rdPartyLibraries)
add_subdirectory(roseIndependentSupport)
add_subdirectory(roseExtensions)




########### next target ###############
set(rose_LIB_SRCS dummyCppFileForLibrose.C 
 ${ROSETTA_SRC} 
 ${EDG_SAGE_Connection_SRC}
 ${unparser_SRC}
 ${sage3_SRC}
 ${MSTL_SRC} 
 ${virtualCFG_SRC} 
 ${rose_support_src}
 ${roseDisassemblers_SRC}
 ${roseBinaryFormats_fileList_part0}
 ${roseBinaryLoader_SRC}
 ${roseAsmUnparser_SRC}
 ${phpFrontend_SRC}
 ${libastMerge_SRC}
 ${astFixup_SRC}
 ${midend_src}
 ${libabstractHandle_SRC}
 ${rose_diagnostics_src}
 ${libastprocessing_SRC}
 ${midend_util_src}
 ${midend_binary_src}
 ${midend_pa_src}
 ${midend_pt_src}
 ${rose_util_src}
 ${libsageInterface_SRC}
 ${libastTokenStream_SRC}
 ${libastHiddenTypeAndDeclarationLists_SRC}
 ${libastVisualization_SRC}
 ${midend_loopproc_src}
 ${libastPostProcessing_SRC}
 ${binaryFrontend_SRC}
# ${AST_REWRITE_SRC}
)
# commented out AST_REWRITE as it does not compile under Windows: error C2244: 'MidLevelRewrite<ASTNodeCollection>::AST_FragmentIdentificationTraversal::evaluateSynthesizedAttribute' : unable to match function definition to an existing declaration
if (NOT WIN32)
set(rose_LIB_SRCS ${rose_LIB_SRCS} ${AST_REWRITE_SRC})
endif (NOT WIN32)

###############################################################################################################################
### The stringify.h and stringify.C files have prototypes and definitions for functions that convert enum constants
### to strings. The add_custom_target is necessary because the add_custom_command only applies to the current directory
### (this CMakeList.txt file), but we use these two files when building librose in a higher directory.
add_custom_command(
     OUTPUT  ${CMAKE_BINARY_DIR}/src/roseSupport/stringify.C ${CMAKE_BINARY_DIR}/src/roseSupport/stringify.h
     COMMAND perl ${CMAKE_SOURCE_DIR}/scripts/stringify.pl --header --generic --output=${CMAKE_BINARY_DIR}/src/roseSupport/stringify.C ${CMAKE_SOURCE_DIR}/src ${CMAKE_BINARY_DIR}/src/frontend/SageIII
     #FIXME: This should also depend on all the files that contain enums, but I'm not sure how to do that. [RPM 2010-10-15]
     DEPENDS ${CMAKE_SOURCE_DIR}/scripts/stringify.pl
     )
add_custom_target(
     generate_stringify
     DEPENDS ${CMAKE_BINARY_DIR}/src/roseSupport/stringify.C ${CMAKE_BINARY_DIR}/src/roseSupport/stringify.h
     )
add_dependencies(generate_stringify rosetta_generated)
###############################################################################################################################


add_library(ROSE_DLL SHARED ${rose_LIB_SRCS} )
add_dependencies(ROSE_DLL OMPPARSER ROSE_PREPROCESSOR edg33 libhpdf generate_stringify) 

# tps : independant Components : ROSE, libhpdf
set(LINK_FILES
   edg33
#   PHP_FRONTEND_LIB 
   libhpdf
)

if ( enable-smaller-generated-files )
set(ROSE_TARGET_LINK 
   libgeneratedIR 
   ${LINK_FILES}
)

else ( enable-smaller-generated-files )
# tps (12/14/2009) : Created a variable for the dependend libraries. Make sure that order is correct.
set(ROSE_TARGET_LINK 
   ${LINK_FILES}
)

endif ( enable-smaller-generated-files )


#Liao, link static libraries into the shared librose library
#target_link_libraries(rose ${libastMerge}) # library name are global, should not use ${}
# we need to double check if this solution will be portable on different platforms
if (NOT WIN32)
target_link_libraries(ROSE_DLL ${ROSE_TARGET_LINK} )
else (NOT WIN32)
target_link_libraries(ROSE_DLL ${ROSE_TARGET_LINK} shlwapi.lib )
endif (NOT WIN32)

set_target_properties(ROSE_DLL PROPERTIES VERSION 1.0.0 SOVERSION 1)
install(TARGETS ROSE_DLL ${INSTALL_TARGETS_DEFAULT_ARGS})

########### next target ###############

set(testSharedRoseLib_SRCS testRoseLib.C)

add_executable(testSharedRoseLib ${testSharedRoseLib_SRCS}  )


target_link_libraries(testSharedRoseLib ${KDE4_KDECORE_LIBS} ROSE_DLL edg33 ${link_with_libraries} ${Boost_LIBRARIES}
					${ROSE_TARGET_LINK}
    )

########### install files ###############

install(FILES  rose.h       roseInternal.h       rose_msvc.h       msvc_stdint.h DESTINATION ${INCLUDE_INSTALL_DIR})



