diff options
-rw-r--r-- | CMakeLists.txt | 3 | ||||
-rw-r--r-- | config.h.in | 1 | ||||
-rw-r--r-- | include/spm.h | 5 | ||||
-rw-r--r-- | src/CMakeLists.txt | 6 | ||||
-rw-r--r-- | src/compat.c | 9 | ||||
-rw-r--r-- | src/environment.c | 2 |
6 files changed, 22 insertions, 4 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index ee2fded..692488e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,9 +1,10 @@ -cmake_minimum_required(VERSION 3.15) +cmake_minimum_required(VERSION 3.11) project(spm C) include(CheckSymbolExists) set(CMAKE_C_STANDARD 99) check_symbol_exists(strsep string.h HAVE_STRSEP) +check_symbol_exists(reallocarray stdlib.h HAVE_REALLOCARRAY) configure_file(${CMAKE_SOURCE_DIR}/config.h.in ${CMAKE_BINARY_DIR}/include/config.h) add_subdirectory(src) diff --git a/config.h.in b/config.h.in index e78061d..b88f4a9 100644 --- a/config.h.in +++ b/config.h.in @@ -2,6 +2,7 @@ #define SPM_CONFIG_IN_H #cmakedefine HAVE_STRSEP 1 +#cmakedefine HAVE_REALLOCARRAY 1 #define SPM_PROGRAM_PREFIX "${CMAKE_INSTALL_PREFIX}" #define SPM_PROGRAM_BIN SPM_PROGRAM_PREFIX"/bin" #define SPM_PROGRAM_DATA SPM_PROGRAM_PREFIX"/share" diff --git a/include/spm.h b/include/spm.h index e4b866b..032a19b 100644 --- a/include/spm.h +++ b/include/spm.h @@ -92,4 +92,9 @@ _1________________________________________________" // GLOBALS spm_vars SPM_GLOBAL; +#ifdef __APPLE__ +extern char **environ; +#define __environ environ +#endif + #endif //SPM_SPM_H diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 8a0a69a..b9dc7f7 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -4,7 +4,11 @@ include_directories( ) add_executable(spm spm.c config.c compat.c deps.c fs.c rpath.c find.c shell.c archive.c str.c relocation.c install.c config_global.c manifest.c checksum.c extern/url.c version_spec.c spm_build.c mime.c internal_cmd.c environment.c mirrors.c strlist.c shlib.c) -target_link_libraries(spm rt crypto ssl curl) + +target_link_libraries(spm crypto ssl curl) +if (LINUX) + target_link_libraries(spm rt) +endif() if(MSVC) target_compile_options(spm PRIVATE /W4 /WX) diff --git a/src/compat.c b/src/compat.c index 062c939..5fd2cc4 100644 --- a/src/compat.c +++ b/src/compat.c @@ -13,4 +13,11 @@ char *strsep(char **sp, char *sep) *sp = p; return(s); } -#endif
\ No newline at end of file +#endif + +#ifndef HAVE_REALLOCARRAY +#include <stdlib.h> +void *reallocarray (void *__ptr, size_t __nmemb, size_t __size) { + return realloc(__ptr, __nmemb * __size); +} +#endif diff --git a/src/environment.c b/src/environment.c index b56b8de..f8d4fdb 100644 --- a/src/environment.c +++ b/src/environment.c @@ -395,4 +395,4 @@ void runtime_free(RuntimeEnv *env) { return; } strlist_free(env); -}
\ No newline at end of file +} |