Skip to content

Commit 7024e25

Browse files
authored
Add cache entries for external library (#169)
- Fetched external libraries are now cached in .cache - Cache entry todo for pybind11
1 parent 17c25fd commit 7024e25

File tree

13 files changed

+104
-101
lines changed

13 files changed

+104
-101
lines changed

.cache/.dummy

Whitespace-only changes.

cmake/application.cmake

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,7 @@
11
include(FetchContent)
2-
32
set(FETCHCONTENT_QUIET FALSE)
43

5-
FetchContent_Declare(
6-
application
7-
DOWNLOAD_EXTRACT_TIMESTAMP TRUE
8-
URL https://github.com/chengcli/application/archive/refs/tags/v0.7.tar.gz)
9-
10-
FetchContent_MakeAvailable(application)
11-
12-
include_directories(${application_SOURCE_DIR})
4+
set(PACKAGE_NAME application)
5+
set(REPO_URL "https://github.com/chengcli/application")
6+
set(REPO_TAG "v0.7")
7+
add_package(${PACKAGE_NAME} ${REPO_URL} ${REPO_TAG} "" ON)

cmake/athena.cmake

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
include(FetchContent)
2-
32
set(FETCHCONTENT_QUIET FALSE)
43

54
set(patch_command
@@ -18,15 +17,16 @@ set(patch_command
1817
${CMAKE_CURRENT_SOURCE_DIR}/patches/33.bvals_cc_cpp.patch
1918
${CMAKE_CURRENT_SOURCE_DIR}/patches/34.bvals_cc_hpp.patch)
2019

21-
FetchContent_Declare(
22-
athenapp
23-
GIT_REPOSITORY https://github.com/chengcli/athenapp/
24-
GIT_TAG snap-mods
25-
PATCH_COMMAND ${patch_command}
26-
UPDATE_DISCONNECTED TRUE)
27-
# DOWNLOAD_EXTRACT_TIMESTAMP TRUE URL
20+
set(PACKAGE_NAME athenapp)
21+
set(REPO_URL "https://github.com/chengcli/athenapp")
22+
set(REPO_TAG "12b11a6004827ba4732c248c021be55b2906ab82")
23+
add_package(${PACKAGE_NAME} ${REPO_URL} ${REPO_TAG} "${patch_command}" ON)
24+
25+
# FetchContent_Declare( athenapp GIT_REPOSITORY
26+
# https://github.com/chengcli/athenapp/ GIT_TAG snap-mods PATCH_COMMAND
27+
# ${patch_command} UPDATE_DISCONNECTED TRUE) DOWNLOAD_EXTRACT_TIMESTAMP TRUE URL
2828
# https://github.com/chengcli/athenapp/archive/refs/tags/v0.8.tar.gz)
2929

30-
FetchContent_MakeAvailable(athenapp)
30+
# FetchContent_MakeAvailable(athenapp)
3131

32-
include_directories(${athenapp_SOURCE_DIR})
32+
# include_directories(${athenapp_SOURCE_DIR})

cmake/disort.cmake

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,7 @@ set(FETCHCONTENT_QUIET FALSE)
55
set_if_empty(ACCOUNT $ENV{GH_ACCOUNT})
66
set_if_empty(TOKEN $ENV{GH_TOKEN})
77

8-
option(DISORT "Build DISORT" OFF)
9-
10-
if(DISORT)
11-
FetchContent_Declare(
12-
pydisort
13-
DOWNLOAD_EXTRACT_TIMESTAMP TRUE
14-
URL https://${ACCOUNT}:${TOKEN}@github.com/zoeyzyhu/pydisort/archive/refs/tags/v0.8.0.tar.gz
15-
)
16-
17-
FetchContent_MakeAvailable(pydisort)
18-
endif()
8+
set(PACKAGE_NAME disort)
9+
set(REPO_URL "https://${ACCOUNT}:${TOKEN}@github.com/zoeyzyhu/pydisort")
10+
set(REPO_TAG "v0.8.0")
11+
add_package(${PACKAGE_NAME} ${REPO_URL} ${REPO_TAG} "" OFF)

cmake/exofmsrt.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@ set(FETCHCONTENT_QUIET FALSE)
44
set(PACKAGE_NAME exofmsrt)
55
set(REPO_URL "https://github.com/chengcli/Exo-FMS_column_ck")
66
set(REPO_TAG "36ba9fad0f87339c3c7b83dd9bf2b53eaba8223f")
7-
add_package(${PACKAGE_NAME} ${REPO_URL} ${REPO_TAG} OFF)
7+
add_package(${PACKAGE_NAME} ${REPO_URL} ${REPO_TAG} "" OFF)

cmake/gtest.cmake

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
include(FetchContent)
2-
32
set(FETCHCONTENT_QUIET TRUE)
43

5-
FetchContent_Declare(
6-
gtest
7-
DOWNLOAD_EXTRACT_TIMESTAMP TRUE
8-
URL https://github.com/google/googletest/archive/refs/tags/v1.13.0.tar.gz)
9-
4+
set(PACKAGE_NAME gtest)
5+
set(REPO_URL "https://github.com/google/googletest")
6+
set(REPO_TAG "v1.13.0")
107
set(INSTALL_GTEST OFF)
11-
FetchContent_MakeAvailable(gtest)
8+
9+
add_package(${PACKAGE_NAME} ${REPO_URL} ${REPO_TAG} "" ON)

cmake/macros/macro_add_package.cmake

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
macro(add_package name url tag option)
1+
macro(add_package name url tag patch option)
22
string(ASCII 27 Esc)
33
set(ColorReset "${Esc}[m")
44
set(Yellow "${Esc}[33m")
@@ -9,30 +9,34 @@ macro(add_package name url tag option)
99
string(TOUPPER ${name} nameu)
1010
option(${nameu} "Build ${name}" ${option})
1111

12-
if(${nameu})
12+
if(${${nameu}})
1313
if(EXISTS ${CACHE_FILE})
14-
if(NOT EXISTS ${CMAKE_BINARY_DIR}/_deps/${name}-src)
15-
message(
16-
STATUS "${Yellow}Find cached file ${name}-${tag}.tar.gz${ColorReset}")
17-
execute_process(COMMAND tar -xzf ${CACHE_FILE} -C ${CACHE_DIR})
18-
execute_process(COMMAND mv ${CACHE_DIR}/${name}-src
19-
${CMAKE_BINARY_DIR}/_deps/)
14+
if(NOT EXISTS ${CMAKE_BINARY_DIR}/_deps)
15+
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/_deps)
2016
endif()
2117

22-
FetchContent_Declare(${name} SOURCE_DIR
23-
${CMAKE_BINARY_DIR}/_deps/${name}-src)
18+
message(
19+
STATUS
20+
"${Yellow}Using cached library ${name}-${tag}.tar.gz${ColorReset}")
21+
22+
FetchContent_Declare(${name} DOWNLOAD_COMMAND tar -xzf ${CACHE_FILE} -C
23+
${CMAKE_BINARY_DIR}/_deps)
2424
else()
2525
FetchContent_Declare(
2626
${name}
2727
GIT_REPOSITORY ${url}
28-
GIT_TAG ${tag})
28+
GIT_TAG ${tag}
29+
PATCH_COMMAND ${patch}
30+
UPDATE_DISCONNECTED TRUE)
2931
endif()
3032

3133
FetchContent_MakeAvailable(${name})
3234
include_directories(${${name}_SOURCE_DIR})
3335

3436
if(NOT EXISTS ${CACHE_FILE})
35-
message(STATUS "Creating ${CACHE_FILE}")
37+
message(
38+
STATUS
39+
"${Yellow}Creating cached library ${name}-${tag}.tar.gz${ColorReset}")
3640
execute_process(COMMAND tar -czf ${CACHE_DIR}/${name}-${tag}.tar.gz -C
3741
${CMAKE_BINARY_DIR}/_deps ${name}-src)
3842
endif()
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
macro(add_package_noinclude name url tag patch option)
2+
string(ASCII 27 Esc)
3+
set(ColorReset "${Esc}[m")
4+
set(Yellow "${Esc}[33m")
5+
6+
set(CACHE_DIR "${CMAKE_SOURCE_DIR}/.cache")
7+
set(CACHE_FILE "${CACHE_DIR}/${name}-${tag}.tar.gz")
8+
9+
string(TOUPPER ${name} nameu)
10+
option(${nameu} "Build ${name}" ${option})
11+
12+
if(${${nameu}})
13+
if(EXISTS ${CACHE_FILE})
14+
if(NOT EXISTS ${CMAKE_BINARY_DIR}/_deps)
15+
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/_deps)
16+
endif()
17+
18+
message(
19+
STATUS
20+
"${Yellow}Using cached library ${name}-${tag}.tar.gz${ColorReset}")
21+
22+
FetchContent_Declare(${name} DOWNLOAD_COMMAND tar -xzf ${CACHE_FILE} -C
23+
${CMAKE_BINARY_DIR}/_deps)
24+
else()
25+
FetchContent_Declare(
26+
${name}
27+
GIT_REPOSITORY ${url}
28+
GIT_TAG ${tag}
29+
PATCH_COMMAND ${patch}
30+
UPDATE_DISCONNECTED TRUE)
31+
endif()
32+
33+
FetchContent_MakeAvailable(${name})
34+
35+
if(NOT EXISTS ${CACHE_FILE})
36+
message(
37+
STATUS
38+
"${Yellow}Creating cached library ${name}-${tag}.tar.gz${ColorReset}")
39+
execute_process(COMMAND tar -czf ${CACHE_DIR}/${name}-${tag}.tar.gz -C
40+
${CMAKE_BINARY_DIR}/_deps ${name}-src)
41+
endif()
42+
else()
43+
message(STATUS "${Yellow}Not building ${name}${ColorReset}")
44+
endif()
45+
endmacro()

cmake/minichem.cmake

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,7 @@
11
include(FetchContent)
2-
32
set(FETCHCONTENT_QUIET FALSE)
43

5-
option(MINICHEM "Build minichem" OFF)
6-
7-
if(MINICHEM)
8-
FetchContent_Declare(
9-
minichem
10-
GIT_REPOSITORY https://github.com/chengcli/mini_chem
11-
GIT_TAG main)
12-
FetchContent_MakeAvailable(minichem)
13-
14-
include_directories(${minichem_SOURCE_DIR})
15-
endif()
16-
4+
set(PACKAGE_NAME minichem)
5+
set(REPO_URL "https://github.com/chengcli/mini_chem")
6+
set(REPO_TAG "3372a500f038f83228c9f8f944b3fb6b2dedc572")
7+
add_package(${PACKAGE_NAME} ${REPO_URL} ${REPO_TAG} "" OFF)

cmake/modules/FindNetCDF.cmake

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,14 @@ if(NETCDF_INCLUDES AND NETCDF_LIBRARIES)
2626
set(NETCDF_FIND_QUIETLY TRUE)
2727
endif(NETCDF_INCLUDES AND NETCDF_LIBRARIES)
2828

29-
find_path(NETCDF_INCLUDES netcdf.h HINTS /opt/homebrew/include NETCDF_DIR ENV
30-
NETCDF_DIR)
29+
find_path(NETCDF_INCLUDES netcdf.h
30+
HINTS /opt/homebrew/include NETCDF_DIR $ENV{NETCDF_DIR}
31+
$ENV{NETCDF}/include $ENV{NC_ROOT}/include)
3132

32-
find_library(NETCDF_LIBRARIES_C NAMES netcdf)
33+
find_library(
34+
NETCDF_LIBRARIES_C
35+
NAMES netcdf
36+
HINTS $ENV{NETCDF}/lib $ENV{NC_ROOT}/lib)
3337
mark_as_advanced(NETCDF_LIBRARIES_C)
3438

3539
set(NetCDF_has_interfaces "YES") # will be set to NO if we're missing any

0 commit comments

Comments
 (0)