# # Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # if( ${TARGET_ARCHITECTURE} STREQUAL "x86_64" ) set(ARCH_DEP_FILES x86_64-Linux/ll_abi.cpp ) elseif( ${TARGET_ARCHITECTURE} STREQUAL "aarch64" ) set(ARCH_DEP_FILES aarch64-Linux/ll_abi.cpp ) elseif( ${TARGET_ARCHITECTURE} STREQUAL "ppc64le" ) set(ARCH_DEP_FILES ppc64le-Linux/ll_abi.cpp ) endif() set(SOURCES ${ARCH_DEP_FILES} bihutil.cpp dinitutl.cpp dinit.cpp dtypeutl.cpp fenddf.cpp ilmutil.cpp listing.cpp mwd.cpp semsym.cpp semutil0.cpp symtab.cpp symacc.cpp upper.cpp xref.cpp expreg.cpp exputil.cpp regutil.cpp expdf.cpp ili-rewrite.cpp ilidf.cpp iliutil.cpp iltutil.cpp expand.cpp expatomics.cpp expsmp.cpp exp_ftn.cpp exp_fvec.cpp exp_rte.cpp outliner.cpp rmsmove.cpp scope.cpp rbtree.cpp ll_dbgutl.cpp dwarf_names.cpp llassem.cpp llassem_common.cpp asm_anno.cpp main.cpp version.cpp cgmain.cpp fastset.cpp lldebug.cpp llutil.cpp ll_ftn.cpp ll_structure.cpp ll_write.cpp ll_builder.cpp llopt.cpp llsched.cpp machreg.cpp kmpcutil.cpp verify.cpp ompaccel.cpp tgtutil.cpp ) set(COMMON_DEFS MMD NOVECTORIZE IN_FLANG2 ) set(INCLUDE_DIRS ${TOOLS_SHARED_DIR} ${FLANG_INCLUDE_DIR} ${FLANG_SOURCE_DIR}/lib/scutil ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/${TARGET_ARCHITECTURE}-${TARGET_OS} ${UTILS_SYMTAB_BIN_DIR} # Symbol table headers ${UTILS_ILI_BIN_DIR} # ILI IR headers ${UTILS_ILM_BIN_DIR} # ILM IR headers ${UTILS_MACHAR_BIN_DIR} # ILM IR headers ${UTILS_UPPER_BIN_DIR} # `Upper' headers ${UTILS_SHARED_DIR} ) set(SHARED_SOURCES ${SHARED_SOURCES} ${LIB_SOURCE_DIR}/ADT/hash.c ${LIB_SOURCE_DIR}/ArgParser/arg_parser.c ${LIB_SOURCE_DIR}/ArgParser/debug_action.c ${LIB_SOURCE_DIR}/ArgParser/xflag.c ) foreach(FILE ${SHARED_SOURCES}) get_filename_component(TOFILE ${FILE} NAME) add_custom_command(OUTPUT ${TOFILE}pp COMMAND ${CMAKE_COMMAND} -E create_symlink ${FILE} ${TOFILE}pp MAIN_DEPENDENCY ${FILE}) set(SHARED_CPP_SOURCES ${SHARED_CPP_SOURCES} ${TOFILE}pp) endforeach() add_flang_executable(flang2 ${SOURCES} ${SHARED_CPP_SOURCES} ) target_compile_definitions(flang2 PRIVATE ${COMMON_DEFS} ) target_compile_options(flang2 PRIVATE ${COMPILE_OPTS} ) target_link_libraries(flang2 flangArgParser ${FLANG_LIB_DIR}/scutil.a -lm ) add_dependencies(flang2 gen_backend_error_headers # Error message headers gen_backend_symtab # Symbol table headers gen_backend_symini # Symbol table (symini) headers gen_backend_ili # ILI IR headers gen_backend_ilm # ILM IR headers gen_backend_machar # Machar headers gen_backend_upper # `Upper' headers ) if (FLANG_INCLUDE_DOCS) add_dependencies(flang2 gen_sphinx_docs ) endif() target_include_directories(flang2 PRIVATE ${INCLUDE_DIRS} ) # Install flang2 executable install(TARGETS flang2 RUNTIME DESTINATION bin) # Local Variables: # mode: cmake # End: