Skip to content

Commit

Permalink
Change to C++17 for core
Browse files Browse the repository at this point in the history
TODO: Fix hack needed to build on macOS with C++17
  • Loading branch information
eigendude committed Mar 9, 2020
1 parent 1bb2fc9 commit f8fbae7
Show file tree
Hide file tree
Showing 10 changed files with 70 additions and 35 deletions.
3 changes: 1 addition & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ include(cmake/scripts/${CORE_SYSTEM_NAME}/PathSetup.cmake)
include(ExternalProject)

# Languages and global compiler settings
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_ASM_FLAGS "${CMAKE_C_FLAGS} -x assembler-with-cpp")
Expand Down Expand Up @@ -450,7 +450,6 @@ file(COPY ${CORE_ADDON_BINDINGS_FILES} ${CORE_ADDON_BINDINGS_DIRS}/

set(APP_LIB_DIR ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/lib/${APP_NAME_LC})
set(APP_INCLUDE_DIR ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/include/${APP_NAME_LC})
set(CXX11_SWITCH "-std=c++11")
configure_file(${CMAKE_SOURCE_DIR}/cmake/KodiConfig.cmake.in
${CORE_BUILD_DIR}/lib/${APP_NAME_LC}/${APP_NAME}Config.cmake @ONLY)
configure_file(${CMAKE_SOURCE_DIR}/cmake/scripts/common/AddonHelpers.cmake
Expand Down
18 changes: 0 additions & 18 deletions cmake/modules/FindCXX11.cmake

This file was deleted.

8 changes: 0 additions & 8 deletions cmake/scripts/common/PrepareEnv.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,6 @@ if(NOT EXISTS "${APP_INCLUDE_DIR}/")
file(MAKE_DIRECTORY ${APP_INCLUDE_DIR})
endif()

# make sure C++11 is always set
if(NOT WIN32)
string(REGEX MATCH "-std=(gnu|c)\\+\\+11" cxx11flag "${CMAKE_CXX_FLAGS}")
if(NOT cxx11flag)
set(CXX11_SWITCH "-std=c++11")
endif()
endif()

if(NOT CORE_SYSTEM_NAME)
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
set(CORE_SYSTEM_NAME "osx")
Expand Down
1 change: 0 additions & 1 deletion cmake/scripts/linux/ArchSetup.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,6 @@ if(KODI_DEPENDSBUILD)
set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
endif()

find_package(CXX11 REQUIRED)
include(LDGOLD)

include(CheckIncludeFiles)
Expand Down
1 change: 0 additions & 1 deletion cmake/scripts/linux/Install.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ set(APP_PREFIX ${prefix})
set(APP_LIB_DIR ${libdir}/${APP_NAME_LC})
set(APP_DATA_DIR ${datarootdir}/${APP_NAME_LC})
set(APP_INCLUDE_DIR ${includedir}/${APP_NAME_LC})
set(CXX11_SWITCH "-std=c++11")

# Set XBMC_STANDALONE_SH_PULSE so we can insert PulseAudio block into kodi-standalone
if(EXISTS ${CMAKE_SOURCE_DIR}/tools/Linux/kodi-standalone.sh.pulse)
Expand Down
2 changes: 0 additions & 2 deletions cmake/scripts/osx/ArchSetup.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,6 @@ endif()
# Additional SYSTEM_DEFINES
list(APPEND SYSTEM_DEFINES -DHAS_LINUX_NETWORK -DHAS_SDL -DHAS_ZEROCONF)

find_package(CXX11 REQUIRED)

list(APPEND CMAKE_SYSTEM_PREFIX_PATH ${NATIVEPREFIX})

list(APPEND DEPLIBS "-framework DiskArbitration" "-framework IOKit"
Expand Down
9 changes: 8 additions & 1 deletion tools/depends/target/p8-platform/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,13 @@ ARCHIVE=$(SOURCE).tar.gz

LIBDYLIB=$(PLATFORM)/build/lib$(LIBNAME).a

CMAKE_OPTIONS := \
-DCMAKE_INSTALL_LIBDIR=$(PREFIX)/lib \
-DBUILD_SHARED_LIBS=0 \
-DCMAKE_CXX_STANDARD=11 \
-DCMAKE_CXX_STANDARD_REQUIRED=ON \
-DCMAKE_CXX_EXTENSIONS=OFF \

all: .installed-$(PLATFORM)

$(TARBALLS_LOCATION)/$(ARCHIVE):
Expand All @@ -17,7 +24,7 @@ $(TARBALLS_LOCATION)/$(ARCHIVE):
$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
rm -rf $(PLATFORM); mkdir -p $(PLATFORM)/build
cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
cd $(PLATFORM)/build; $(CMAKE) -DBUILD_SHARED_LIBS=0 -DCMAKE_INSTALL_LIBDIR=$(PREFIX)/lib ..
cd $(PLATFORM)/build; $(CMAKE) $(CMAKE_OPTIONS) ..

$(LIBDYLIB): $(PLATFORM)
$(MAKE) -C $(PLATFORM)/build
Expand Down
4 changes: 3 additions & 1 deletion tools/depends/target/python27/Makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
include ../../Makefile.include
DEPS= ../../Makefile.include Makefile crosscompile.patch android.patch no-export-path.patch android-nl_langinfo.patch \
setup.patch fix-datetime.patch fix-ffi.patch android-binmodule.patch no-abort.patch urllib.patch modules.setup make-fork-optional.patch
setup.patch fix-datetime.patch fix-ffi.patch android-binmodule.patch no-abort.patch urllib.patch modules.setup make-fork-optional.patch \
Remove-register-keywork-for-C-17.patch

# lib name, version
LIBNAME=Python
Expand Down Expand Up @@ -42,6 +43,7 @@ $(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
cd $(PLATFORM); patch -p1 < ../android-binmodule.patch
cd $(PLATFORM); patch -p1 < ../no-abort.patch
cd $(PLATFORM); patch -p1 < ../android-nl_langinfo.patch
cd $(PLATFORM); patch -p1 < ../Remove-register-keywork-for-C-17.patch
ifeq ($(OS),ios)
cd $(PLATFORM); patch -p1 < ../make-fork-optional.patch
cd $(PLATFORM); patch -p1 < ../urllib.patch
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
--- a/Include/stringobject.h
+++ b/Include/stringobject.h
@@ -170,9 +170,9 @@ PyAPI_FUNC(PyObject*) PyString_AsDecodedString(
cause an exception). */

PyAPI_FUNC(int) PyString_AsStringAndSize(
- register PyObject *obj, /* string or Unicode object */
- register char **s, /* pointer to buffer variable */
- register Py_ssize_t *len /* pointer to length variable or NULL
+ PyObject *obj, /* string or Unicode object */
+ char **s, /* pointer to buffer variable */
+ Py_ssize_t *len /* pointer to length variable or NULL
(only possible for 0-terminated
strings) */
);
diff --git a/Include/unicodeobject.h b/Include/unicodeobject.h
index 7781f96..41ac80e 100644
--- a/Include/unicodeobject.h
+++ b/Include/unicodeobject.h
@@ -531,7 +531,7 @@ PyAPI_FUNC(int) PyUnicode_Resize(
*/

PyAPI_FUNC(PyObject*) PyUnicode_FromEncodedObject(
- register PyObject *obj, /* Object */
+ PyObject *obj, /* Object */
const char *encoding, /* encoding */
const char *errors /* error handling */
);
@@ -550,7 +550,7 @@ PyAPI_FUNC(PyObject*) PyUnicode_FromEncodedObject(
*/

PyAPI_FUNC(PyObject*) PyUnicode_FromObject(
- register PyObject *obj /* Object */
+ PyObject *obj /* Object */
);

PyAPI_FUNC(PyObject *) PyUnicode_FromFormatV(const char*, va_list);
@@ -572,7 +572,7 @@ PyAPI_FUNC(PyObject *) _PyUnicode_FormatAdvanced(PyObject *obj,
The buffer is copied into the new object. */

PyAPI_FUNC(PyObject*) PyUnicode_FromWideChar(
- register const wchar_t *w, /* wchar_t buffer */
+ const wchar_t *w, /* wchar_t buffer */
Py_ssize_t size /* size of buffer */
);

@@ -590,7 +590,7 @@ PyAPI_FUNC(PyObject*) PyUnicode_FromWideChar(

PyAPI_FUNC(Py_ssize_t) PyUnicode_AsWideChar(
PyUnicodeObject *unicode, /* Unicode object */
- register wchar_t *w, /* wchar_t buffer */
+ wchar_t *w, /* wchar_t buffer */
Py_ssize_t size /* size of buffer */
);

Original file line number Diff line number Diff line change
Expand Up @@ -837,7 +837,9 @@ void CDVDInputStreamBluray::OverlayCallbackARGB(const struct bd_argb_overlay_s *
/* uncompress and draw bitmap */
if (ov->argb && ov->cmd == BD_ARGB_OVERLAY_DRAW)
{
SOverlay overlay(new CDVDOverlayImage(), std::ptr_fun(CDVDOverlay::Release));
//! @todo
//SOverlay overlay(new CDVDOverlayImage(), std::ptr_fun(CDVDOverlay::Release));
SOverlay overlay(new CDVDOverlayImage());

overlay->palette_colors = 0;
overlay->palette = nullptr;
Expand Down

0 comments on commit f8fbae7

Please sign in to comment.