mirror of
https://github.com/nasa/trick.git
synced 2025-02-21 09:31:49 +00:00
As usual a new LLVM version brings changes. Found that ICG needs to be built with c++14. Also found a couple of API changes in main. Enclosed the changes in ifdef statements.
This commit is contained in:
parent
da2d3b83c0
commit
67fd753736
@ -31,6 +31,7 @@ target_compile_options( trick-ICG PUBLIC -DLIBCLANG_MAJOR=${LLVM_VERSION_MAJOR}
|
|||||||
target_include_directories( trick-ICG PUBLIC ${UDUNITS2_INCLUDES} )
|
target_include_directories( trick-ICG PUBLIC ${UDUNITS2_INCLUDES} )
|
||||||
target_include_directories( trick-ICG PUBLIC ${LLVM_INCLUDE_DIRS} )
|
target_include_directories( trick-ICG PUBLIC ${LLVM_INCLUDE_DIRS} )
|
||||||
set_property(SOURCE trick-ICG APPEND PROPERTY OBJECT_DEPENDS ${CMAKE_BINARY_DIR}/include/mongoose/mongoose.h)
|
set_property(SOURCE trick-ICG APPEND PROPERTY OBJECT_DEPENDS ${CMAKE_BINARY_DIR}/include/mongoose/mongoose.h)
|
||||||
|
set_target_properties( trick-ICG PROPERTIES CXX_STANDARD 14)
|
||||||
|
|
||||||
target_link_libraries( trick-ICG
|
target_link_libraries( trick-ICG
|
||||||
-lclangFrontend
|
-lclangFrontend
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
#include "llvm/Support/CommandLine.h"
|
#include "llvm/Support/CommandLine.h"
|
||||||
#include "llvm/Support/raw_ostream.h"
|
#include "llvm/Support/raw_ostream.h"
|
||||||
|
|
||||||
|
#include "clang/Basic/Builtins.h"
|
||||||
#include "clang/Frontend/CompilerInstance.h"
|
#include "clang/Frontend/CompilerInstance.h"
|
||||||
#include "clang/Basic/TargetOptions.h"
|
#include "clang/Basic/TargetOptions.h"
|
||||||
#include "clang/Basic/TargetInfo.h"
|
#include "clang/Basic/TargetInfo.h"
|
||||||
@ -93,6 +94,9 @@ int main(int argc, char * argv[]) {
|
|||||||
ci.getLangOpts().WChar = true ;
|
ci.getLangOpts().WChar = true ;
|
||||||
ci.getLangOpts().CPlusPlus = true ;
|
ci.getLangOpts().CPlusPlus = true ;
|
||||||
ci.getLangOpts().CPlusPlus11 = true ;
|
ci.getLangOpts().CPlusPlus11 = true ;
|
||||||
|
#if (LIBCLANG_MAJOR >= 6)
|
||||||
|
ci.getLangOpts().CPlusPlus14 = true ;
|
||||||
|
#endif
|
||||||
ci.getLangOpts().CXXOperatorNames = true ;
|
ci.getLangOpts().CXXOperatorNames = true ;
|
||||||
#if (LIBCLANG_MAJOR >= 6)
|
#if (LIBCLANG_MAJOR >= 6)
|
||||||
ci.getLangOpts().DoubleSquareBracketAttributes = true ;
|
ci.getLangOpts().DoubleSquareBracketAttributes = true ;
|
||||||
@ -133,13 +137,18 @@ int main(int argc, char * argv[]) {
|
|||||||
// Set all of the defaults to c++
|
// Set all of the defaults to c++
|
||||||
#if (LIBCLANG_MAJOR > 3) || ((LIBCLANG_MAJOR == 3) && (LIBCLANG_MINOR >= 9))
|
#if (LIBCLANG_MAJOR > 3) || ((LIBCLANG_MAJOR == 3) && (LIBCLANG_MINOR >= 9))
|
||||||
llvm::Triple trip (to.Triple) ;
|
llvm::Triple trip (to.Triple) ;
|
||||||
#if (LIBCLANG_MAJOR >= 5)
|
#if (LIBCLANG_MAJOR >= 10)
|
||||||
|
clang::CompilerInvocation::setLangDefaults(ci.getLangOpts(), clang::Language::CXX, trip, ppo) ;
|
||||||
|
#elif (LIBCLANG_MAJOR >= 5)
|
||||||
clang::CompilerInvocation::setLangDefaults(ci.getLangOpts(), clang::InputKind::CXX, trip, ppo) ;
|
clang::CompilerInvocation::setLangDefaults(ci.getLangOpts(), clang::InputKind::CXX, trip, ppo) ;
|
||||||
#else
|
#else
|
||||||
clang::CompilerInvocation::setLangDefaults(ci.getLangOpts(), clang::IK_CXX, trip, ppo) ;
|
clang::CompilerInvocation::setLangDefaults(ci.getLangOpts(), clang::IK_CXX, trip, ppo) ;
|
||||||
#endif
|
#endif
|
||||||
// setting the language defaults clears the c++11 flag.
|
// setting the language defaults clears the c++11 flag.
|
||||||
ci.getLangOpts().CPlusPlus11 = true ;
|
ci.getLangOpts().CPlusPlus11 = true ;
|
||||||
|
#if (LIBCLANG_MAJOR >= 6)
|
||||||
|
ci.getLangOpts().CPlusPlus14 = true ;
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
clang::Preprocessor& pp = ci.getPreprocessor();
|
clang::Preprocessor& pp = ci.getPreprocessor();
|
||||||
|
|
||||||
@ -201,7 +210,11 @@ int main(int argc, char * argv[]) {
|
|||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
// Open up the input file and parse it
|
// Open up the input file and parse it
|
||||||
|
#if (LIBCLANG_MAJOR >= 10)
|
||||||
|
const clang::FileEntry* fileEntry = ci.getFileManager().getFile(inputFilePath).get();
|
||||||
|
#else
|
||||||
const clang::FileEntry* fileEntry = ci.getFileManager().getFile(inputFilePath);
|
const clang::FileEntry* fileEntry = ci.getFileManager().getFile(inputFilePath);
|
||||||
|
#endif
|
||||||
free(inputFilePath);
|
free(inputFilePath);
|
||||||
#if (LIBCLANG_MAJOR > 3) || ((LIBCLANG_MAJOR == 3) && (LIBCLANG_MINOR >= 5))
|
#if (LIBCLANG_MAJOR > 3) || ((LIBCLANG_MAJOR == 3) && (LIBCLANG_MINOR >= 5))
|
||||||
ci.getSourceManager().setMainFileID(ci.getSourceManager().createFileID(fileEntry, clang::SourceLocation(), clang::SrcMgr::C_User));
|
ci.getSourceManager().setMainFileID(ci.getSourceManager().createFileID(fileEntry, clang::SourceLocation(), clang::SrcMgr::C_User));
|
||||||
|
@ -2,7 +2,7 @@ TRICK_HOME := $(abspath $(dir $(lastword $(MAKEFILE_LIST)))../../..)
|
|||||||
# The config_${HOST_TYPE}.mk file provides LLVM_HOME
|
# The config_${HOST_TYPE}.mk file provides LLVM_HOME
|
||||||
include ${TRICK_HOME}/share/trick/makefiles/Makefile.common
|
include ${TRICK_HOME}/share/trick/makefiles/Makefile.common
|
||||||
|
|
||||||
CXXFLAGS := -g -I$(shell $(LLVM_HOME)/bin/llvm-config --includedir) -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -fno-rtti $(UDUNITS_INCLUDES) -std=c++11
|
CXXFLAGS := -g -I$(shell $(LLVM_HOME)/bin/llvm-config --includedir) -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -fno-rtti $(UDUNITS_INCLUDES)
|
||||||
|
|
||||||
CLANG_MAJOR := $(shell $(LLVM_HOME)/bin/llvm-config --version | cut -f1 -d.)
|
CLANG_MAJOR := $(shell $(LLVM_HOME)/bin/llvm-config --version | cut -f1 -d.)
|
||||||
CLANG_MINOR := $(shell $(LLVM_HOME)/bin/llvm-config --version | cut -f2 -d.)
|
CLANG_MINOR := $(shell $(LLVM_HOME)/bin/llvm-config --version | cut -f2 -d.)
|
||||||
@ -10,6 +10,13 @@ CLANG_PATCHLEVEL := $(shell $(LLVM_HOME)/bin/llvm-config --version | cut -f3 -d.
|
|||||||
# check to see if version is greater than 3.5
|
# check to see if version is greater than 3.5
|
||||||
CLANG_MINOR_GTEQ5 := $(shell [ $(CLANG_MAJOR) -gt 3 -o \( $(CLANG_MAJOR) -eq 3 -a $(CLANG_MINOR) -ge 5 \) ] && echo 1)
|
CLANG_MINOR_GTEQ5 := $(shell [ $(CLANG_MAJOR) -gt 3 -o \( $(CLANG_MAJOR) -eq 3 -a $(CLANG_MINOR) -ge 5 \) ] && echo 1)
|
||||||
|
|
||||||
|
CLANG_MAJOR_GTEQ10 := $(shell [ $(CLANG_MAJOR) -ge 10 ] && echo 1)
|
||||||
|
ifeq ($(CLANG_MAJOR_GTEQ10),1)
|
||||||
|
CXXFLAGS += -std=c++14
|
||||||
|
else
|
||||||
|
CXXFLAGS += -std=c++11
|
||||||
|
endif
|
||||||
|
|
||||||
LLVMLDFLAGS := $(shell $(LLVM_HOME)/bin/llvm-config --ldflags) $(UDUNITS_LDFLAGS)
|
LLVMLDFLAGS := $(shell $(LLVM_HOME)/bin/llvm-config --ldflags) $(UDUNITS_LDFLAGS)
|
||||||
|
|
||||||
OBJ_DIR := object_$(TRICK_HOST_CPU)
|
OBJ_DIR := object_$(TRICK_HOST_CPU)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user