Skip to content

Commit cdac77b

Browse files
Require C++17 for Halide. (#5282)
Require C++17 for Halide.
1 parent 3b046ea commit cdac77b

File tree

86 files changed

+162
-217
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

86 files changed

+162
-217
lines changed

.clang-format

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ SpacesBeforeTrailingComments: 2
4343
SpacesInAngles: false
4444
SpacesInCStyleCastParentheses: false
4545
SpacesInParentheses: false
46-
Standard: c++11
46+
Standard: c++17
4747
TabWidth: 8
4848
UseTab: Never
4949
...

CMakeLists.txt

+5-7
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,7 @@ include(MakeShellPath)
1717
include(CMakeDependentOption)
1818

1919
# Build Halide as a shared lib by default, but still honor command-line settings.
20-
if (NOT DEFINED BUILD_SHARED_LIBS)
21-
set(BUILD_SHARED_LIBS YES)
22-
endif ()
20+
option(BUILD_SHARED_LIBS "Build shared libraries" ON)
2321

2422
# Warn if the user did not set a build type and is using a single-configuration generator.
2523
get_property(IS_MULTI_CONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
@@ -40,13 +38,13 @@ endif ()
4038
# Export all symbols on Windows to match GCC/Clang behavior on Linux/macOS
4139
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
4240

43-
# Require standard C++14
41+
# Require standard C++17
4442
if(NOT CMAKE_CXX_STANDARD)
45-
set(CMAKE_CXX_STANDARD 14)
43+
set(CMAKE_CXX_STANDARD 17)
4644
set(CMAKE_CXX_STANDARD_REQUIRED ON)
4745
set(CMAKE_CXX_EXTENSIONS OFF)
48-
elseif(CMAKE_CXX_STANDARD LESS 14)
49-
message(FATAL_ERROR "Halide requires C++14 or newer")
46+
elseif(CMAKE_CXX_STANDARD LESS 17)
47+
message(FATAL_ERROR "Halide requires C++17 or newer")
5048
endif()
5149

5250
# Build Halide with ccache if the package is present

Makefile

+11-11
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ LLVM_GIT_LLD_INCLUDE_DIR = $(shell $(LLVM_CONFIG) --src-root | sed -e 's/\\/\//g
6363
LLVM_SYSTEM_LIBS=$(shell ${LLVM_CONFIG} --system-libs --link-static | sed -e 's/[\/&]/\\&/g' | sed 's/-llibxml2.tbd/-lxml2/')
6464
LLVM_AS = $(LLVM_BINDIR)/llvm-as
6565
LLVM_NM = $(LLVM_BINDIR)/llvm-nm
66-
LLVM_CXX_FLAGS = -std=c++11 $(filter-out -O% -g -fomit-frame-pointer -pedantic -W% -W, $(shell $(LLVM_CONFIG) --cxxflags | sed -e 's/\\/\//g' -e 's/\([a-zA-Z]\):/\/\1/g;s/-D/ -D/g;s/-O/ -O/g')) -I$(LLVM_GIT_LLD_INCLUDE_DIR)
66+
LLVM_CXX_FLAGS = -std=c++17 $(filter-out -O% -g -fomit-frame-pointer -pedantic -W% -W, $(shell $(LLVM_CONFIG) --cxxflags | sed -e 's/\\/\//g' -e 's/\([a-zA-Z]\):/\/\1/g;s/-D/ -D/g;s/-O/ -O/;s/c++14/c++17/g')) -I$(LLVM_GIT_LLD_INCLUDE_DIR)
6767
OPTIMIZE ?= -O3
6868
OPTIMIZE_FOR_BUILD_TIME ?= -O0
6969

@@ -252,7 +252,7 @@ LLVM_SHARED_LIBS = -Wl,-rpath=$(LLVM_LIBDIR) -L $(LLVM_LIBDIR) -lLLVM
252252

253253
LLVM_LIBS_FOR_SHARED_LIBHALIDE=$(if $(WITH_LLVM_INSIDE_SHARED_LIBHALIDE),$(LLVM_STATIC_LIBS),$(LLVM_SHARED_LIBS))
254254

255-
TUTORIAL_CXX_FLAGS ?= -std=c++11 -g -fno-omit-frame-pointer $(RTTI_CXX_FLAGS) -I $(ROOT_DIR)/tools $(SANITIZER_FLAGS) $(LLVM_CXX_FLAGS_LIBCPP)
255+
TUTORIAL_CXX_FLAGS ?= -std=c++17 -g -fno-omit-frame-pointer $(RTTI_CXX_FLAGS) -I $(ROOT_DIR)/tools $(SANITIZER_FLAGS) $(LLVM_CXX_FLAGS_LIBCPP)
256256
# The tutorials contain example code with warnings that we don't want
257257
# to be flagged as errors, so the test flags are the tutorial flags
258258
# plus our warning flags.
@@ -941,8 +941,8 @@ $(INCLUDE_DIR)/Halide.h: $(SRC_DIR)/../LICENSE.txt $(HEADERS) $(BIN_DIR)/build_h
941941
$(BIN_DIR)/build_halide_h $(SRC_DIR)/../LICENSE.txt $(HEADERS) > $(INCLUDE_DIR)/Halide.h
942942
# Also generate a precompiled version in the same folder so that anything compiled with a compatible set of flags can use it
943943
@mkdir -p $(INCLUDE_DIR)/Halide.h.gch
944-
$(CXX) -std=c++11 $(TEST_CXX_FLAGS) -I$(ROOT_DIR) $(OPTIMIZE) -x c++-header $(INCLUDE_DIR)/Halide.h -o $(INCLUDE_DIR)/Halide.h.gch/Halide.default.gch
945-
$(CXX) -std=c++11 $(TEST_CXX_FLAGS) -I$(ROOT_DIR) $(OPTIMIZE_FOR_BUILD_TIME) -x c++-header $(INCLUDE_DIR)/Halide.h -o $(INCLUDE_DIR)/Halide.h.gch/Halide.test.gch
944+
$(CXX) -std=c++17 $(TEST_CXX_FLAGS) -I$(ROOT_DIR) $(OPTIMIZE) -x c++-header $(INCLUDE_DIR)/Halide.h -o $(INCLUDE_DIR)/Halide.h.gch/Halide.default.gch
945+
$(CXX) -std=c++17 $(TEST_CXX_FLAGS) -I$(ROOT_DIR) $(OPTIMIZE_FOR_BUILD_TIME) -x c++-header $(INCLUDE_DIR)/Halide.h -o $(INCLUDE_DIR)/Halide.h.gch/Halide.test.gch
946946

947947
$(INCLUDE_DIR)/HalideRuntime%: $(SRC_DIR)/runtime/HalideRuntime%
948948
echo Copying $<
@@ -966,7 +966,7 @@ $(INCLUDE_DIR)/HalidePyTorchCudaHelpers.h: $(SRC_DIR)/runtime/HalidePyTorchCudaH
966966

967967
$(BIN_DIR)/build_halide_h: $(ROOT_DIR)/tools/build_halide_h.cpp
968968
@-mkdir -p $(@D)
969-
$(CXX) -std=c++11 $< -o $@
969+
$(CXX) -std=c++17 $< -o $@
970970

971971
-include $(OBJECTS:.o=.d)
972972
-include $(INITIAL_MODULES:.o=.d)
@@ -991,7 +991,7 @@ RUNTIME_TRIPLE_WIN_GENERIC_64 = "le64-unknown-windows-unknown"
991991

992992
# `-fno-threadsafe-statics` is very important here (note that it allows us to use a 'modern' C++
993993
# standard but still skip threadsafe guards for static initialization in our runtime code)
994-
RUNTIME_CXX_FLAGS = -std=c++11 -O3 -fno-vectorize -ffreestanding -fno-blocks -fno-exceptions -fno-unwind-tables -fno-threadsafe-statics
994+
RUNTIME_CXX_FLAGS = -std=c++17 -O3 -fno-vectorize -ffreestanding -fno-blocks -fno-exceptions -fno-unwind-tables -fno-threadsafe-statics
995995

996996
$(BUILD_DIR)/initmod.windows_%_x86_32.ll: $(SRC_DIR)/runtime/windows_%_x86.cpp $(BUILD_DIR)/clang_ok
997997
@mkdir -p $(@D)
@@ -1700,7 +1700,7 @@ $(FILTERS_DIR)/%.registration.o: $(FILTERS_DIR)/%.registration.cpp
17001700

17011701
$(FILTERS_DIR)/%.rungen: $(BUILD_DIR)/RunGenMain.o $(BIN_DIR)/$(TARGET)/runtime.a $(FILTERS_DIR)/%.registration.o $(FILTERS_DIR)/%.a
17021702
@mkdir -p $(@D)
1703-
$(CXX) -std=c++11 -I$(FILTERS_DIR) \
1703+
$(CXX) -std=c++17 -I$(FILTERS_DIR) \
17041704
$(BUILD_DIR)/RunGenMain.o \
17051705
$(BIN_DIR)/$(TARGET)/runtime.a \
17061706
$(call alwayslink,$(FILTERS_DIR)/$*.registration.o) \
@@ -1756,7 +1756,7 @@ $(FILTERS_DIR)/multi_rungen: $(BUILD_DIR)/RunGenMain.o $(BIN_DIR)/$(TARGET)/runt
17561756
$(FILTERS_DIR)/cxx_mangling.registration.o $(FILTERS_DIR)/cxx_mangling.a \
17571757
$(FILTERS_DIR)/pyramid.registration.o $(FILTERS_DIR)/pyramid.a
17581758
@mkdir -p $(@D)
1759-
$(CXX) -std=c++11 -I$(FILTERS_DIR) \
1759+
$(CXX) -std=c++17 -I$(FILTERS_DIR) \
17601760
$(BUILD_DIR)/RunGenMain.o \
17611761
$(BIN_DIR)/$(TARGET)/runtime.a \
17621762
$(call alwayslink,$(FILTERS_DIR)/blur2x2.registration.o) \
@@ -1777,7 +1777,7 @@ $(FILTERS_DIR)/multi_rungen2: $(BUILD_DIR)/RunGenMain.o $(BIN_DIR)/$(TARGET)/run
17771777
$(FILTERS_DIR)/cxx_mangling.a \
17781778
$(FILTERS_DIR)/pyramid.a
17791779
@mkdir -p $(@D)
1780-
$(CXX) -std=c++11 -I$(FILTERS_DIR) $^ $(GEN_AOT_LD_FLAGS) $(IMAGE_IO_LIBS) -o $@
1780+
$(CXX) -std=c++17 -I$(FILTERS_DIR) $^ $(GEN_AOT_LD_FLAGS) $(IMAGE_IO_LIBS) -o $@
17811781

17821782
$(BIN_DIR)/tutorial_%: $(ROOT_DIR)/tutorial/%.cpp $(BIN_DIR)/libHalide.$(SHARED_EXT) $(INCLUDE_DIR)/Halide.h $(INCLUDE_DIR)/HalideRuntime.h
17831783
@ if [[ $@ == *_run ]]; then \
@@ -2323,10 +2323,10 @@ $(DISTRIB_DIR)/halide.tgz: distrib
23232323
mv $(BUILD_DIR)/halide.tgz $(DISTRIB_DIR)/halide.tgz
23242324

23252325
$(BIN_DIR)/HalideTraceViz: $(ROOT_DIR)/util/HalideTraceViz.cpp $(INCLUDE_DIR)/HalideRuntime.h $(ROOT_DIR)/tools/halide_image_io.h $(ROOT_DIR)/tools/halide_trace_config.h
2326-
$(CXX) $(OPTIMIZE) -std=c++11 $(filter %.cpp,$^) -I$(INCLUDE_DIR) -I$(ROOT_DIR)/tools -L$(BIN_DIR) -o $@
2326+
$(CXX) $(OPTIMIZE) -std=c++17 $(filter %.cpp,$^) -I$(INCLUDE_DIR) -I$(ROOT_DIR)/tools -L$(BIN_DIR) -o $@
23272327

23282328
$(BIN_DIR)/HalideTraceDump: $(ROOT_DIR)/util/HalideTraceDump.cpp $(ROOT_DIR)/util/HalideTraceUtils.cpp $(INCLUDE_DIR)/HalideRuntime.h $(ROOT_DIR)/tools/halide_image_io.h
2329-
$(CXX) $(OPTIMIZE) -std=c++11 $(filter %.cpp,$^) -I$(INCLUDE_DIR) -I$(ROOT_DIR)/tools -I$(ROOT_DIR)/src/runtime -L$(BIN_DIR) $(IMAGE_IO_CXX_FLAGS) $(IMAGE_IO_LIBS) -o $@
2329+
$(CXX) $(OPTIMIZE) -std=c++17 $(filter %.cpp,$^) -I$(INCLUDE_DIR) -I$(ROOT_DIR)/tools -I$(ROOT_DIR)/src/runtime -L$(BIN_DIR) $(IMAGE_IO_CXX_FLAGS) $(IMAGE_IO_LIBS) -o $@
23302330

23312331
# Note: you must have CLANG_FORMAT_LLVM_INSTALL_DIR set for this rule to work.
23322332
# Let's default to the Ubuntu install location.

README.md

+3-1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ to an object file, or JIT-compile it and run it in the same process. Halide also
1616
provides a Python binding that provides full support for writing Halide embedded
1717
in Python without C++.
1818

19+
Halide requires C++17 (or later) to use.
20+
1921
For more detail about what Halide is, see http://halide-lang.org.
2022

2123
For API documentation see http://halide-lang.org/docs
@@ -97,7 +99,7 @@ Windows 7 and includes Ubuntu 18.04 LTS.
9799

98100
Compiled AOT pipelines are expected to have much broader platform support. The
99101
binaries use the C ABI, and we expect any compliant C compiler to be able to use
100-
the generated headers correctly. The C++ bindings currently require C++11. If
102+
the generated headers correctly. The C++ bindings currently require C++17. If
101103
you discover a compatibility problem with a generated pipeline, please open an
102104
issue.
103105

README_cmake.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -542,7 +542,7 @@ boilerplate.
542542
cmake_minimum_required(VERSION 3.16)
543543
project(HalideExample)
544544
545-
set(CMAKE_CXX_STANDARD 11) # or newer
545+
set(CMAKE_CXX_STANDARD 17) # or newer
546546
set(CMAKE_CXX_STANDARD_REQUIRED YES)
547547
set(CMAKE_CXX_EXTENSIONS NO)
548548
@@ -558,7 +558,7 @@ immediately after setting the minimum version.
558558

559559
The next three variables set the project-wide C++ standard. The first,
560560
[`CMAKE_CXX_STANDARD`][cmake_cxx_standard], simply sets the standard version.
561-
Halide requires at least C++11. The second,
561+
Halide requires at least C++17. The second,
562562
[`CMAKE_CXX_STANDARD_REQUIRED`][cmake_cxx_standard_required], tells CMake to
563563
fail if the compiler cannot provide the requested standard version. Lastly,
564564
[`CMAKE_CXX_EXTENSIONS`][cmake_cxx_extensions] tells CMake to disable

apps/HelloAndroid/build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ sources {
5151
executables {
5252
hello_generator {
5353
binaries.all {
54-
cppCompiler.args "-std=c++11", "-g", "-Wall", "-fno-rtti", "-I", "${projectDir}/../../include", "-I", "${projectDir}/../../build/include"
54+
cppCompiler.args "-std=c++17", "-g", "-Wall", "-fno-rtti", "-I", "${projectDir}/../../include", "-I", "${projectDir}/../../build/include"
5555
// "/bin" assumes Makefile build for Halide; "/build/lib" assumes CMake build
5656
linker.args "-lHalide", "-ldl", "-lpthread", "-lz", "-L", "${projectDir}/../../bin", "-L", "${projectDir}/../../build/lib"
5757
}

apps/HelloAndroid/build.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ set -e
33
android update project -p . --target android-17
44
mkdir -p bin
55
c++ jni/hello_generator.cpp ../../tools/GenGen.cpp \
6-
-g -fno-rtti -Wall -std=c++11 \
6+
-g -fno-rtti -Wall -std=c++17 \
77
-I ../../include -I ../../build/include \
88
-L ../../bin -lHalide -ldl -lpthread -lz \
99
-o bin/hello_generator

apps/HelloAndroid/jni/Application.mk

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,4 @@
55
APP_ABI := armeabi armeabi-v7a arm64-v8a mips x86_64 x86
66
APP_PLATFORM := android-17
77
APP_STL := gnustl_static
8-
APP_CPPFLAGS := -std=c++11
8+
APP_CPPFLAGS := -std=c++17

apps/HelloAndroidCamera2/build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ sources {
5656
executables {
5757
halide_generator {
5858
binaries.all {
59-
cppCompiler.args "-std=c++11", "-g", "-Wall", "-fno-rtti", "-I", "${projectDir}/../../include", "-I", "${projectDir}/../../build/include"
59+
cppCompiler.args "-std=c++17", "-g", "-Wall", "-fno-rtti", "-I", "${projectDir}/../../include", "-I", "${projectDir}/../../build/include"
6060
// "/bin" assumes Makefile build for Halide; "/build/lib" assumes CMake build
6161
linker.args "-lHalide", "-ldl", "-lpthread", "-lz", "-L", "${projectDir}/../../bin", "-L", "${projectDir}/../../build/lib"
6262
}

apps/HelloAndroidCamera2/build.sh

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,13 @@ fi
99
mkdir -p bin
1010

1111
c++ jni/edge_detect_generator.cpp ../../tools/GenGen.cpp \
12-
-g -fno-rtti -Wall -std=c++11 \
12+
-g -fno-rtti -Wall -std=c++17 \
1313
-I ../../include -I ../../build/include \
1414
-L ../../bin -lHalide -ldl -lpthread -lz \
1515
-o bin/edge_detect_generator
1616

1717
c++ jni/deinterleave_generator.cpp ../../tools/GenGen.cpp \
18-
-g -fno-rtti -Wall -std=c++11 \
18+
-g -fno-rtti -Wall -std=c++17 \
1919
-I ../../include -I ../../build/include \
2020
-L ../../bin -lHalide -ldl -lpthread -lz \
2121
-o bin/deinterleave_generator

apps/HelloAndroidCamera2/jni/Application.mk

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,4 @@
55
APP_ABI := armeabi armeabi-v7a arm64-v8a mips x86_64 x86
66
APP_PLATFORM := android-21
77
APP_STL := c++_static
8-
APP_CPPFLAGS := -std=c++11 -fno-rtti -fexceptions
8+
APP_CPPFLAGS := -std=c++17 -fno-rtti -fexceptions

apps/HelloWasm/CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ project(HelloWasm)
33

44
enable_testing()
55

6-
set(CMAKE_CXX_STANDARD 11)
6+
set(CMAKE_CXX_STANDARD 17)
77
set(CMAKE_CXX_STANDARD_REQUIRED YES)
88
set(CMAKE_CXX_EXTENSIONS NO)
99

apps/HelloiOS/HelloiOS.xcodeproj/project.pbxproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@
244244
);
245245
runOnlyForDeploymentPostprocessing = 0;
246246
shellPath = /bin/bash;
247-
shellScript = "echo \"${SRCROOT}\"\ncd \"${SRCROOT}/HelloiOS\"\n\n# Echoing commands to output makes it easier to debug XCode failures.\n# Failure on undefined vars is always a good idea.\nset -ex\n\n# xcode puts all sorts of junk in the environment which\n# prevents building a binary for osx (instead of ios).\n# sudo'ing to yourself gives a fresh environment.\nsudo -u ${USER} \\\nc++ reaction_diffusion_2_generator.cpp ${SRCROOT}/../../tools/GenGen.cpp \\\n-std=c++11 \\\n-fno-rtti \\\n-I ${SRCROOT}/../../include \\\n-I ${SRCROOT}/../../build/include \\\n-I ${SRCROOT}/../../tools \\\n-arch x86_64 \\\n-L ${SRCROOT}/../../bin \\\n-lHalide \\\n-o ${DERIVED_FILE_DIR}/reaction_diffusion_2_generator\n\n\nif [ \"${arch}\" == \"x86_64\" ]\nthen\n# assume simulator, which requires osx rather than ios\nTARGET=x86-64-osx\nelse\n# TODO: sniff arm-32 builds here; for now, just assume arm-64 only\nTARGET=arm-64-ios\nfi\n\nfor GEN in init update render; do\n(cd ${DERIVED_FILE_DIR}; \\\nDYLD_LIBRARY_PATH=${SRCROOT}/../../bin:${SRCROOT}/../../build/lib \\\n./reaction_diffusion_2_generator -g reaction_diffusion_2_${GEN} -f reaction_diffusion_2_${GEN} -n reaction_diffusion_2_${GEN} -o ${DERIVED_FILE_DIR} target=${TARGET}-user_context)\ndone\n\nfor GEN in init update render; do\n(cd ${DERIVED_FILE_DIR}; \\\nDYLD_LIBRARY_PATH=${SRCROOT}/../../bin:${SRCROOT}/../../build/lib \\\n./reaction_diffusion_2_generator -g reaction_diffusion_2_${GEN} -f reaction_diffusion_2_metal_${GEN} -n reaction_diffusion_2_metal_${GEN} -o ${DERIVED_FILE_DIR} target=${TARGET}-metal-user_context)\ndone\n";
247+
shellScript = "echo \"${SRCROOT}\"\ncd \"${SRCROOT}/HelloiOS\"\n\n# Echoing commands to output makes it easier to debug XCode failures.\n# Failure on undefined vars is always a good idea.\nset -ex\n\n# xcode puts all sorts of junk in the environment which\n# prevents building a binary for osx (instead of ios).\n# sudo'ing to yourself gives a fresh environment.\nsudo -u ${USER} \\\nc++ reaction_diffusion_2_generator.cpp ${SRCROOT}/../../tools/GenGen.cpp \\\n-std=c++17 \\\n-fno-rtti \\\n-I ${SRCROOT}/../../include \\\n-I ${SRCROOT}/../../build/include \\\n-I ${SRCROOT}/../../tools \\\n-arch x86_64 \\\n-L ${SRCROOT}/../../bin \\\n-lHalide \\\n-o ${DERIVED_FILE_DIR}/reaction_diffusion_2_generator\n\n\nif [ \"${arch}\" == \"x86_64\" ]\nthen\n# assume simulator, which requires osx rather than ios\nTARGET=x86-64-osx\nelse\n# TODO: sniff arm-32 builds here; for now, just assume arm-64 only\nTARGET=arm-64-ios\nfi\n\nfor GEN in init update render; do\n(cd ${DERIVED_FILE_DIR}; \\\nDYLD_LIBRARY_PATH=${SRCROOT}/../../bin:${SRCROOT}/../../build/lib \\\n./reaction_diffusion_2_generator -g reaction_diffusion_2_${GEN} -f reaction_diffusion_2_${GEN} -n reaction_diffusion_2_${GEN} -o ${DERIVED_FILE_DIR} target=${TARGET}-user_context)\ndone\n\nfor GEN in init update render; do\n(cd ${DERIVED_FILE_DIR}; \\\nDYLD_LIBRARY_PATH=${SRCROOT}/../../bin:${SRCROOT}/../../build/lib \\\n./reaction_diffusion_2_generator -g reaction_diffusion_2_${GEN} -f reaction_diffusion_2_metal_${GEN} -n reaction_diffusion_2_metal_${GEN} -o ${DERIVED_FILE_DIR} target=${TARGET}-metal-user_context)\ndone\n";
248248
};
249249
/* End PBXShellScriptBuildPhase section */
250250

apps/bgu/CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ project(bgu)
44
enable_testing()
55

66
# Set up language settings
7-
set(CMAKE_CXX_STANDARD 11)
7+
set(CMAKE_CXX_STANDARD 17)
88
set(CMAKE_CXX_STANDARD_REQUIRED YES)
99
set(CMAKE_CXX_EXTENSIONS NO)
1010

apps/bilateral_grid/CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ project(bilateral_grid)
44
enable_testing()
55

66
# Set up language settings
7-
set(CMAKE_CXX_STANDARD 11)
7+
set(CMAKE_CXX_STANDARD 17)
88
set(CMAKE_CXX_STANDARD_REQUIRED YES)
99
set(CMAKE_CXX_EXTENSIONS NO)
1010

apps/blur/CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ project(blur)
44
enable_testing()
55

66
# Set up language settings
7-
set(CMAKE_CXX_STANDARD 11)
7+
set(CMAKE_CXX_STANDARD 17)
88
set(CMAKE_CXX_STANDARD_REQUIRED YES)
99
set(CMAKE_CXX_EXTENSIONS NO)
1010

apps/c_backend/CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ project(c_backend)
44
enable_testing()
55

66
# Set up language settings
7-
set(CMAKE_CXX_STANDARD 11)
7+
set(CMAKE_CXX_STANDARD 17)
88
set(CMAKE_CXX_STANDARD_REQUIRED YES)
99
set(CMAKE_CXX_EXTENSIONS NO)
1010

apps/camera_pipe/CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ project(camera_pipe)
44
enable_testing()
55

66
# Set up language settings
7-
set(CMAKE_CXX_STANDARD 11)
7+
set(CMAKE_CXX_STANDARD 17)
88
set(CMAKE_CXX_STANDARD_REQUIRED YES)
99
set(CMAKE_CXX_EXTENSIONS NO)
1010

apps/conv_layer/CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ project(conv_layer)
44
enable_testing()
55

66
# Set up language settings
7-
set(CMAKE_CXX_STANDARD 11)
7+
set(CMAKE_CXX_STANDARD 17)
88
set(CMAKE_CXX_STANDARD_REQUIRED YES)
99
set(CMAKE_CXX_EXTENSIONS NO)
1010

apps/cuda_mat_mul/CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ endif ()
1717
enable_testing()
1818

1919
# Set up language settings
20-
set(CMAKE_CXX_STANDARD 11)
20+
set(CMAKE_CXX_STANDARD 17)
2121
set(CMAKE_CXX_STANDARD_REQUIRED YES)
2222
set(CMAKE_CXX_EXTENSIONS NO)
2323

apps/depthwise_separable_conv/CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ project(depthwise_separable_conv)
44
enable_testing()
55

66
# Set up language settings
7-
set(CMAKE_CXX_STANDARD 11)
7+
set(CMAKE_CXX_STANDARD 17)
88
set(CMAKE_CXX_STANDARD_REQUIRED YES)
99
set(CMAKE_CXX_EXTENSIONS NO)
1010

apps/fft/CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ project(fft)
44
enable_testing()
55

66
# Set up language settings
7-
set(CMAKE_CXX_STANDARD 11)
7+
set(CMAKE_CXX_STANDARD 17)
88
set(CMAKE_CXX_STANDARD_REQUIRED YES)
99
set(CMAKE_CXX_EXTENSIONS NO)
1010

apps/fft/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ $(BIN)/%/fft_inverse_c2c.a: $(GENERATOR_BIN)/fft.generator
6767

6868
$(BIN)/%/fft_aot_test: fft_aot_test.cpp $(BIN)/%/fft_forward_r2c.a $(BIN)/%/fft_inverse_c2r.a $(BIN)/%/fft_forward_c2c.a $(BIN)/%/fft_inverse_c2c.a
6969
@mkdir -p $(@D)
70-
$(CXX) -I$(BIN)/$* -I$(HALIDE_DISTRIB_PATH)/include/ -std=c++11 $^ -o $@ $(LDFLAGS) $(HALIDE_SYSTEM_LIBS)
70+
$(CXX) -I$(BIN)/$* -I$(HALIDE_DISTRIB_PATH)/include/ -std=c++17 $^ -o $@ $(LDFLAGS) $(HALIDE_SYSTEM_LIBS)
7171

7272
clean:
7373
rm -rf $(BIN)

apps/hannk/CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ enable_testing()
1111
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
1212

1313
# Set up language settings
14-
set(CMAKE_CXX_STANDARD 11)
14+
set(CMAKE_CXX_STANDARD 17)
1515
set(CMAKE_CXX_STANDARD_REQUIRED YES)
1616
set(CMAKE_CXX_EXTENSIONS NO)
1717

apps/hannk/delegate/CMakeLists.txt

+18-6
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,23 @@
11
# --------------- registrar (static-library) delegate
22

3-
add_library(hannk_delegate_registrar STATIC
4-
hannk_delegate_provider.cpp
3+
add_library(hannk_delegate STATIC
54
hannk_delegate.cpp)
5+
target_link_libraries(hannk_delegate PRIVATE
6+
hannk_log_tflite
7+
interpreter_lower
8+
tensorflowlite_headers
9+
Halide::Runtime)
10+
target_include_directories(hannk_delegate PRIVATE
11+
$<BUILD_INTERFACE:${hannk_SOURCE_DIR}>)
12+
13+
# --------------- registrar (static-library) delegate
14+
15+
add_library(hannk_delegate_registrar STATIC
16+
hannk_delegate_provider.cpp)
617
target_link_libraries(hannk_delegate_registrar PRIVATE
7-
interpreter
818
error_util
19+
interpreter
20+
hannk_delegate
921
hannk_log_tflite
1022
tensorflowlite_headers
1123
Halide::Runtime)
@@ -19,11 +31,11 @@ target_include_directories(hannk_delegate_registrar PRIVATE
1931
# on Mac we must declare the library to be MODULE rather than SHARED to get this.
2032
# Apparently on Linux they are basically the same, so, use it everywhere for now.
2133
add_library(hannk_delegate_external MODULE
22-
hannk_delegate_adaptor.cpp
23-
hannk_delegate.cpp)
34+
hannk_delegate_adaptor.cpp)
2435
target_link_libraries(hannk_delegate_external PRIVATE
25-
interpreter
2636
error_util
37+
interpreter
38+
hannk_delegate
2739
hannk_log_tflite
2840
tensorflowlite_headers
2941
Halide::Runtime)

apps/hannk/interpreter/CMakeLists.txt

+6-2
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,17 @@ add_library(elementwise_program STATIC
44
target_include_directories(elementwise_program PUBLIC $<BUILD_INTERFACE:${hannk_SOURCE_DIR}>)
55
target_link_libraries(elementwise_program PRIVATE Halide::Runtime)
66

7+
add_library(interpreter_lower STATIC
8+
lower.cpp)
9+
target_include_directories(interpreter_lower PUBLIC $<BUILD_INTERFACE:${hannk_SOURCE_DIR}>)
10+
target_link_libraries(interpreter_lower PRIVATE Halide::Runtime)
11+
712
add_library(interpreter STATIC
813
interpreter.cpp
914
interval.cpp
10-
lower.cpp
1115
model.cpp
1216
ops.cpp
1317
transforms.cpp)
1418
target_include_directories(interpreter PUBLIC $<BUILD_INTERFACE:${hannk_SOURCE_DIR}>)
15-
target_link_libraries(interpreter PRIVATE elementwise_program op_impls Halide::Runtime)
19+
target_link_libraries(interpreter PRIVATE elementwise_program op_impls interpreter_lower Halide::Runtime)
1620

0 commit comments

Comments
 (0)