Unverified Commit dc45651b authored by ArthurSonzogni's avatar ArthurSonzogni
Browse files

Update script for >=v3.10.5

Starting from v3.10.5, the update script will directly take the
CMakeLists and a few other files directly from the upstream repository.
parent f253e966
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -12,6 +12,8 @@ include(FetchContent)

FetchContent_Declare(json
  GIT_REPOSITORY https://github.com/ArthurSonzogni/nlohmann_json_cmake_fetchcontent
  GIT_PROGRESS TRUE
  GIT_SHALLOW TRUE
  GIT_TAG v3.10.4)

FetchContent_GetProperties(json)
+49 −34
Original line number Diff line number Diff line
@@ -27,10 +27,32 @@ print("Releases already contained in this repository are " + str(tags))

# Go over the release_url_map in reverse order; if a release is not yet a Git
# tag, download the file, commit and add a tag
did_update = False
for tag, url, body in release_url_map[::-1]:
  if not tag in tags:
    print("Downloading release " + tag + " from " + url)
  if tag in tags:
    continue

  print("Downloading release " + tag)
  if tag >= "v3.10.5":
      os.system("rm -rf ./tmp")
      os.system("rm -rf ./include")
      os.system("git clone https://github.com/nlohmann/json ./tmp --depth 1 --branch {}".format(tag));
      os.system("cp -rf ./tmp/single_include .")
      os.system("cp -rf ./tmp/include/nlohmann/json_fwd.hpp ./single_include/nlohmann/")
      os.system("cp -rf ./tmp/cmake .")
      os.system("cp -rf ./tmp/CMakeLists.txt .")
      os.system("cp -rf ./tmp/meson.build .")
      os.system("cp -rf ./tmp/LICENSE.MIT .")
      os.system("rm -rf ./tmp")
      os.makedirs('./cmake', mode=0o777, exist_ok=True)
      os.makedirs('./test', mode=0o777, exist_ok=True)
      with open("./cmake/ci.cmake", "w") as f:
        f .write("message(FATAL_ERROR \"The JSON_CI option is not available" \
                 "when using the nlohmann_json_cmake_fetchcontent repository.\")")
      with open("./test/CMakeLists.txt", "w") as f:
        f.write("message(FATAL_ERROR \"The JSON_CI option is not available" \
                "when using the nlohmann_json_cmake_fetchcontent repository.\")")
      os.system("git add .")
  else:
      os.makedirs('./include', mode=0o777, exist_ok=True)
      os.makedirs('./include/nlohmann', mode=0o777, exist_ok=True)
      data = urllib.request.urlopen(url).read();
@@ -61,10 +83,3 @@ for tag, url, body in release_url_map[::-1]:
  # Commit:
  subprocess.call(['git', 'commit', '-m', 'Upstream release ' + tag])
  subprocess.call(['git', 'tag', '-a', tag, '-m', body])

    did_update = True

# Push the updated Git repository
if did_update:
  subprocess.call(['git', 'push', '--tags'])
  subprocess.call(['git', 'push'])