Skip to content

Commit af247b0

Browse files
committed
Add project wholearchive
1 parent 35830f2 commit af247b0

File tree

8 files changed

+87
-0
lines changed

8 files changed

+87
-0
lines changed

projects/wholearchive/Readme.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
## wholearchive:
2+
3+
Export static library content from another shared library

projects/wholearchive/premake5.lua

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
if (_ACTION == nil) then
2+
return
3+
end
4+
5+
local LocationDir = "solution/%{_ACTION}"
6+
7+
workspace "Project"
8+
location(LocationDir)
9+
configurations {"Debug", "Release"}
10+
11+
objdir(path.join(LocationDir, "obj")) -- premake adds $(configName)/$(AppName)
12+
targetdir(path.join(LocationDir, "bin/%{cfg.buildcfg}"))
13+
14+
startproject "app"
15+
16+
project "app"
17+
kind "ConsoleApp"
18+
targetname "app"
19+
20+
files { "src/main.cpp" }
21+
22+
defines { 'USING_DLL'}
23+
links 'dll'
24+
25+
project "dll"
26+
kind "SharedLib"
27+
targetname "dll"
28+
29+
files { "src/dll.cpp", 'src/dll.h' }
30+
31+
defines { 'MAKING_DLL' }
32+
links 'lib'
33+
34+
project "lib"
35+
kind "StaticLib"
36+
targetname "lib"
37+
38+
files { "src/lib.cpp", 'src/lib.h' }
39+
40+
project "test"
41+
kind "ConsoleApp"
42+
targetname "test"
43+
44+
files { "src/test.cpp" }
45+
links 'lib'

projects/wholearchive/src/dll.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#include "dll.h"
2+
3+
void foo() {}

projects/wholearchive/src/dll.h

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
#include "lib.h"
2+
3+
#ifdef _MSC_VER
4+
# ifdef MAKING_DLL
5+
# define IMPORT_EXPORT __declspec(dllexport)
6+
# elif defined(USING_DLL)
7+
# define IMPORT_EXPORT __declspec(dllimport)
8+
# else // not making nor using DLL
9+
# define IMPORT_EXPORT
10+
# endif
11+
#else
12+
# define IMPORT_EXPORT
13+
#endif
14+
15+
IMPORT_EXPORT void foo();

projects/wholearchive/src/lib.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
#include "lib.h"
2+
3+
void bar()
4+
{
5+
}

projects/wholearchive/src/lib.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#pragma once
2+
3+
void bar();

projects/wholearchive/src/main.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
#include "dll.h"
2+
3+
int main()
4+
{
5+
bar();
6+
foo();
7+
}

projects/wholearchive/src/test.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
#include "lib.h"
2+
3+
int main()
4+
{
5+
bar();
6+
}

0 commit comments

Comments
 (0)