54 lines
1.5 KiB
C
54 lines
1.5 KiB
C
/*
|
|
* Copyright 2011-2023 Blender Foundation
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
/* Portable snprintf and popen/pclose. */
|
|
|
|
#ifdef _MSC_VER
|
|
# if _MSC_VER < 1900
|
|
# define snprintf _snprintf
|
|
# endif
|
|
# define popen _popen
|
|
# define pclose _pclose
|
|
# define _CRT_SECURE_NO_WARNINGS
|
|
#endif
|
|
|
|
/* Macros for loading libraries. */
|
|
|
|
#ifdef _WIN32
|
|
# ifndef WIN32_LEAN_AND_MEAN
|
|
# define WIN32_LEAN_AND_MEAN
|
|
# endif
|
|
# define VC_EXTRALEAN
|
|
# include <windows.h>
|
|
|
|
typedef HMODULE DynamicLibrary;
|
|
|
|
# define dynamic_library_open(path) LoadLibraryA(path)
|
|
# define dynamic_library_close(lib) FreeLibrary(lib)
|
|
# define dynamic_library_find(lib, symbol) GetProcAddress(lib, symbol)
|
|
#else
|
|
# include <dlfcn.h>
|
|
|
|
typedef void* DynamicLibrary;
|
|
|
|
# define dynamic_library_open(path) dlopen(path, RTLD_NOW)
|
|
# define dynamic_library_close(lib) dlclose(lib)
|
|
# define dynamic_library_find(lib, symbol) dlsym(lib, symbol)
|
|
#endif
|
|
|