Skip to content

Commit b986e64

Browse files
committed
Misc CMake fixes.
- zstd external project requires CMake 3.7, so GIT_SHALLOW can be used unconditionally. - Use `option` to declare OFFLINE. - Expand `OFFLINE` in the ExternalProject calls instead of using an intermediate variable. - Set CMP0135 to NEW.
1 parent 022f20b commit b986e64

1 file changed

Lines changed: 24 additions & 21 deletions

File tree

CMakeLists.txt

Lines changed: 24 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@ cmake_minimum_required(VERSION 3.7.0)
77

88
project(vitasdk)
99

10+
if(POLICY CMP0135)
11+
cmake_policy(SET CMP0135 NEW)
12+
endif()
13+
1014
# Use the following gcc version
1115
set(GCC_VERSION 13.2.0)
1216
set(GCC_HASH SHA256=e275e76442a6067341a27f04c5c6b83d8613144004c0413528863dc6b5c743da)
@@ -56,12 +60,7 @@ set(VITA_MAKEPKG_TAG master CACHE STRING "vita-makepkg branch name, commit id or
5660
# Location to save the downloaded tarballs. Can be overriden from command line.
5761
set(DOWNLOAD_DIR ${CMAKE_BINARY_DIR}/downloads CACHE PATH "Default download path for tarballs")
5862

59-
set(OFFLINE YES CACHE BOOL "Check repo updates")
60-
set(UPDATE_DISCONNECTED_SUPPORT UPDATE_DISCONNECTED ${OFFLINE})
61-
62-
if("${CMAKE_VERSION}" VERSION_GREATER 3.6.0)
63-
set(GIT_SHALLOW_SUPPORT GIT_SHALLOW 1)
64-
endif()
63+
option(OFFLINE "Check repo updates" ON)
6564

6665
# Installation directory. Can be overriden from command line.
6766
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
@@ -164,6 +163,7 @@ function(toolchain_deps toolchain_deps_dir toolchain_install_dir toolchain_suffi
164163
ExternalProject_Add(zstd${suffix}
165164
URL https://github.com/facebook/zstd/archive/refs/tags/v${ZSTD_VERSION}.tar.gz
166165
URL_HASH ${ZSTD_HASH}
166+
DOWNLOAD_DIR ${DOWNLOAD_DIR}
167167
SOURCE_SUBDIR "build/cmake"
168168
CMAKE_ARGS ${toolchain_cmake_args}
169169
"-DCMAKE_INSTALL_PREFIX=${toolchain_deps_dir}"
@@ -194,7 +194,8 @@ function(toolchain_deps toolchain_deps_dir toolchain_install_dir toolchain_suffi
194194
DEPENDS zlib${suffix}
195195
GIT_REPOSITORY https://github.com/vitasdk/libzip
196196
GIT_TAG ${LIBZIP_TAG}
197-
${GIT_SHALLOW_SUPPORT}
197+
GIT_SHALLOW 1
198+
UPDATE_DISCONNECTED ${OFFLINE}
198199
PATCH_COMMAND patch -d <SOURCE_DIR> -p3 -t -N < ${PROJECT_SOURCE_DIR}/patches/libzip.patch
199200
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${toolchain_deps_dir}
200201
${toolchain_cmake_args} ${libzip_configure}
@@ -282,6 +283,8 @@ function(toolchain_deps toolchain_deps_dir toolchain_install_dir toolchain_suffi
282283
DEPENDS gmp${suffix}
283284
GIT_REPOSITORY https://github.com/Meinersbur/isl
284285
GIT_TAG isl-${ISL_VERSION}
286+
GIT_SHALLOW 1
287+
UPDATE_DISCONNECTED ${OFFLINE}
285288
DOWNLOAD_DIR ${DOWNLOAD_DIR}
286289
CONFIGURE_COMMAND cd <SOURCE_DIR> && ./autogen.sh
287290
COMMAND ${CMAKE_COMMAND} -E env ${compiler_flags} ${wrapper_command} <SOURCE_DIR>/configure
@@ -309,15 +312,15 @@ function(toolchain_deps toolchain_deps_dir toolchain_install_dir toolchain_suffi
309312
DEPENDS libelf${suffix} zlib${suffix} libzip${suffix} libyaml${suffix}
310313
GIT_REPOSITORY https://github.com/vitasdk/vita-toolchain
311314
GIT_TAG ${TOOLCHAIN_TAG}
312-
${GIT_SHALLOW_SUPPORT}
315+
GIT_SHALLOW 1
313316
# Set prefix to "/" here to be able to install twice
314317
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=/ ${toolchain_cmake_args}
315318
-DTOOLCHAIN_DEPS_DIR=${toolchain_deps_dir}
316319
BUILD_COMMAND $(MAKE)
317320
INSTALL_COMMAND $(MAKE) install DESTDIR=${toolchain_install_dir}
318321
# Save the commit id for tracking purposes
319322
COMMAND ${GIT_EXECUTABLE} -C <SOURCE_DIR> rev-parse HEAD > ${CMAKE_BINARY_DIR}/vita-toolchain-version.txt
320-
${UPDATE_DISCONNECTED_SUPPORT}
323+
UPDATE_DISCONNECTED ${OFFLINE}
321324
)
322325

323326
ExternalProject_Add(binutils${suffix}
@@ -531,7 +534,7 @@ ExternalProject_add(vita-headers
531534
DEPENDS binutils_${build_suffix} vita-toolchain_${build_suffix}
532535
GIT_REPOSITORY https://github.com/vitasdk/vita-headers
533536
GIT_TAG ${HEADERS_TAG}
534-
${GIT_SHALLOW_SUPPORT}
537+
GIT_SHALLOW 1
535538
# CONFIGURE_COMMAND ""
536539
# BUILD_COMMAND VITA_LIBS_GEN=${vita_libs_gen_command}
537540
# ARCH=${binutils_prefix}
@@ -560,14 +563,14 @@ ExternalProject_add(vita-headers
560563
COMMAND ${CMAKE_COMMAND} -E copy_directory <SOURCE_DIR>/db ${CMAKE_INSTALL_PREFIX}/share/vita-headers/db
561564
# Save the commit id for tracking purposes
562565
COMMAND ${GIT_EXECUTABLE} -C <SOURCE_DIR> rev-parse HEAD > ${CMAKE_BINARY_DIR}/vita-headers-version.txt
563-
${UPDATE_DISCONNECTED_SUPPORT}
566+
UPDATE_DISCONNECTED ${OFFLINE}
564567
)
565568

566569
ExternalProject_Add(newlib
567570
DEPENDS binutils_${target_suffix} gcc-base vita-headers
568571
GIT_REPOSITORY https://github.com/vitasdk/newlib
569572
GIT_TAG ${NEWLIB_TAG}
570-
${GIT_SHALLOW_SUPPORT}
573+
GIT_SHALLOW 1
571574
# Pass the compiler_target_tools here so newlib picks up the fresh gcc-base compiler
572575
CONFIGURE_COMMAND ${CMAKE_COMMAND} -E env ${compiler_flag} ${toolchain_tools} ${compiler_target_tools}
573576
${wrapper_command} <SOURCE_DIR>/configure "CFLAGS_FOR_TARGET=-g -O2 -ffunction-sections -fdata-sections"
@@ -589,7 +592,7 @@ ExternalProject_Add(newlib
589592
COMMAND $(MAKE) install DESTDIR=${toolchain_build_install_dir}
590593
# Save the commit id for tracking purposes
591594
COMMAND ${GIT_EXECUTABLE} -C <SOURCE_DIR> rev-parse HEAD > ${CMAKE_BINARY_DIR}/newlib-version.txt
592-
${UPDATE_DISCONNECTED_SUPPORT}
595+
UPDATE_DISCONNECTED ${OFFLINE}
593596
)
594597

595598
# Build a complete gcc compiler to be able to compile the full gcc for the host when crosscompiling.
@@ -637,7 +640,7 @@ ExternalProject_Add(pthread-embedded
637640
DEPENDS binutils_${target_suffix} gcc-base newlib vita-headers
638641
GIT_REPOSITORY https://github.com/vitasdk/pthread-embedded
639642
GIT_TAG ${PTHREAD_TAG}
640-
${GIT_SHALLOW_SUPPORT}
643+
GIT_SHALLOW 1
641644
# TODO: this project should have a proper makefile to support out-of-source builds
642645
BUILD_IN_SOURCE 1
643646
CONFIGURE_COMMAND ""
@@ -648,7 +651,7 @@ ExternalProject_Add(pthread-embedded
648651
COMMAND $(MAKE) install -C <SOURCE_DIR>/platform/vita PREFIX=${toolchain_build_install_dir}/${target_arch} install
649652
# Save the commit id for tracking purposes
650653
COMMAND ${GIT_EXECUTABLE} -C <SOURCE_DIR> rev-parse HEAD > ${CMAKE_BINARY_DIR}/pthread-embedded-version.txt
651-
${UPDATE_DISCONNECTED_SUPPORT}
654+
UPDATE_DISCONNECTED ${OFFLINE}
652655
)
653656

654657
ExternalProject_add(gcc-final
@@ -693,7 +696,7 @@ ExternalProject_add(gcc-final
693696
ExternalProject_Add(samples
694697
GIT_REPOSITORY https://github.com/vitasdk/samples
695698
GIT_TAG ${SAMPLES_TAG}
696-
${GIT_SHALLOW_SUPPORT}
699+
GIT_SHALLOW 1
697700
BUILD_IN_SOURCE 1
698701
CONFIGURE_COMMAND ""
699702
BUILD_COMMAND ""
@@ -702,35 +705,35 @@ ExternalProject_Add(samples
702705
-P ${CMAKE_SOURCE_DIR}/cmake/install_files.cmake
703706
# Save the commit id for tracking purposes
704707
COMMAND ${GIT_EXECUTABLE} -C <SOURCE_DIR> rev-parse HEAD > ${CMAKE_BINARY_DIR}/samples-version.txt
705-
${UPDATE_DISCONNECTED_SUPPORT}
708+
UPDATE_DISCONNECTED ${OFFLINE}
706709
)
707710

708711
ExternalProject_Add(vdpm
709712
GIT_REPOSITORY https://github.com/vitasdk/vdpm.git
710713
GIT_TAG ${VDPM_TAG}
711-
${GIT_SHALLOW_SUPPORT}
714+
GIT_SHALLOW 1
712715
BUILD_IN_SOURCE 1
713716
CONFIGURE_COMMAND ""
714717
BUILD_COMMAND ""
715718
INSTALL_COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_INSTALL_PREFIX}/bin/
716719
COMMAND ${CMAKE_COMMAND} -E copy_directory <SOURCE_DIR>/include ${CMAKE_INSTALL_PREFIX}/bin/include
717720
COMMAND ${CMAKE_COMMAND} -E copy <SOURCE_DIR>/vdpm ${CMAKE_INSTALL_PREFIX}/bin/
718721
COMMAND ${CMAKE_COMMAND} -E copy <SOURCE_DIR>/vitasdk-update ${CMAKE_INSTALL_PREFIX}/bin/
719-
${UPDATE_DISCONNECTED_SUPPORT}
722+
UPDATE_DISCONNECTED ${OFFLINE}
720723
)
721724

722725
ExternalProject_Add(vita-makepkg
723726
GIT_REPOSITORY https://github.com/vitasdk/vita-makepkg.git
724727
GIT_TAG ${VITA_MAKEPKG_TAG}
725-
${GIT_SHALLOW_SUPPORT}
728+
GIT_SHALLOW 1
726729
BUILD_IN_SOURCE 1
727730
CONFIGURE_COMMAND ""
728731
BUILD_COMMAND ""
729732
INSTALL_COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_INSTALL_PREFIX}/bin/
730733
COMMAND ${CMAKE_COMMAND} -E copy_directory <SOURCE_DIR>/libmakepkg ${CMAKE_INSTALL_PREFIX}/bin/libmakepkg
731734
COMMAND ${CMAKE_COMMAND} -E copy <SOURCE_DIR>/vita-makepkg ${CMAKE_INSTALL_PREFIX}/bin/
732735
COMMAND ${CMAKE_COMMAND} -E copy <SOURCE_DIR>/makepkg.conf.sample ${CMAKE_INSTALL_PREFIX}/bin/makepkg.conf
733-
${UPDATE_DISCONNECTED_SUPPORT}
736+
UPDATE_DISCONNECTED ${OFFLINE}
734737
)
735738

736739
if(${CMAKE_SYSTEM_NAME} STREQUAL "Windows")

0 commit comments

Comments
 (0)