mirror of
				https://github.com/janet-lang/janet
				synced 2025-10-31 07:33:01 +00:00 
			
		
		
		
	Distinguish between JANET_API and JANET_EXPORT
One is a way to export symbols, the other a way to reference API functions. Also include prebuilt dlljanet.dll and dlljanet.lib for windows to save people the trouble of compiling janet.c themselves.
This commit is contained in:
		| @@ -64,6 +64,10 @@ rc /nologo /fobuild\janet_win.res janet_win.rc | ||||
| %JANET_LINK% /out:janet.exe build\janet.obj build\shell.obj build\janet_win.res | ||||
| @if errorlevel 1 goto :BUILDFAIL | ||||
|  | ||||
| @rem Build dynamic library (dlljanet.dll) | ||||
| %JANET_LINK% /DLL /out:build\dlljanet.dll build\janet.obj | ||||
| @if errorlevel 1 goto :BUILDFAIL | ||||
|  | ||||
| @rem Build static library (libjanet.lib) | ||||
| %JANET_LINK_STATIC% /out:build\libjanet.lib build\janet.obj | ||||
| @if errorlevel 1 goto :BUILDFAIL | ||||
| @@ -122,6 +126,8 @@ copy janet.def dist\janet.def | ||||
| janet.exe tools\patch-header.janet src\include\janet.h src\conf\janetconf.h build\janet.h | ||||
| copy build\janet.h dist\janet.h | ||||
| copy build\libjanet.lib dist\libjanet.lib | ||||
| copy build\dlljanet.dll dist\dlljanet.dll | ||||
| copy build\dlljanet.lib dist\dlljanet.lib | ||||
|  | ||||
| @rem Create installer | ||||
| janet.exe -e "(->> janet/version (peg/match ''(* :d+ `.` :d+ `.` :d+)) first print)" > build\version.txt | ||||
|   | ||||
| @@ -235,6 +235,15 @@ extern "C" { | ||||
| #endif | ||||
|  | ||||
| /* How to export symbols */ | ||||
| #ifndef JANET_EXPORT | ||||
| #ifdef JANET_WINDOWS | ||||
| #define JANET_EXPORT __declspec(dllexport) | ||||
| #else | ||||
| #define JANET_EXPORT __attribute__((visibility ("default"))) | ||||
| #endif | ||||
| #endif | ||||
|  | ||||
| /* How declare API functions */ | ||||
| #ifndef JANET_API | ||||
| #ifdef JANET_WINDOWS | ||||
| #ifdef JANET_DLL_IMPORT | ||||
| @@ -734,6 +743,7 @@ JANET_API Janet janet_wrap_integer(int32_t x); | ||||
|         ? janet_nanbox_isnumber(x) \ | ||||
|         : janet_nanbox_checkauxtype((x), (t))) | ||||
|  | ||||
| /* Use JANET_API so that modules will use a local version of these functions if possible */ | ||||
| JANET_API void *janet_nanbox_to_pointer(Janet x); | ||||
| JANET_API Janet janet_nanbox_from_pointer(void *p, uint64_t tagmask); | ||||
| JANET_API Janet janet_nanbox_from_cpointer(const void *p, uint64_t tagmask); | ||||
| @@ -1952,10 +1962,10 @@ JANET_API void janet_register(const char *name, JanetCFunction cfun); | ||||
| #endif | ||||
| #ifndef JANET_ENTRY_NAME | ||||
| #define JANET_MODULE_ENTRY \ | ||||
|     JANET_MODULE_PREFIX JANET_API JanetBuildConfig _janet_mod_config(void) { \ | ||||
|     JANET_MODULE_PREFIX JANET_EXPORT JanetBuildConfig _janet_mod_config(void) { \ | ||||
|         return janet_config_current(); \ | ||||
|     } \ | ||||
|     JANET_MODULE_PREFIX JANET_API void _janet_init | ||||
|     JANET_MODULE_PREFIX JANET_EXPORT void _janet_init | ||||
| #else | ||||
| #define JANET_MODULE_ENTRY JANET_MODULE_PREFIX JANET_API void JANET_ENTRY_NAME | ||||
| #endif | ||||
|   | ||||
| @@ -132,6 +132,12 @@ | ||||
|             <Component Directory="CDir"> | ||||
|                 <File Source="dist\libjanet.lib"/> | ||||
|             </Component> | ||||
|             <Component Directory="CDir"> | ||||
|                 <File Source="dist\dlljanet.dll"/> | ||||
|             </Component> | ||||
|             <Component Directory="CDir"> | ||||
|                 <File Source="dist\dlljanet.lib"/> | ||||
|             </Component> | ||||
|  | ||||
|             <Component Id="LibraryComponent" Directory="LibraryDir" Guid="3860e981-5f94-4002-b5d5-2d9ec0d2792d" KeyPath="yes"> | ||||
|                 <RemoveFolder Id="RemoveLibraryDir" On="uninstall" /> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Calvin Rose
					Calvin Rose