File tree Expand file tree Collapse file tree 8 files changed +87
-0
lines changed
Expand file tree Collapse file tree 8 files changed +87
-0
lines changed Original file line number Diff line number Diff line change 1+ ## wholearchive:
2+
3+ Export static library content from another shared library
Original file line number Diff line number Diff line change 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'
Original file line number Diff line number Diff line change 1+ #include " dll.h"
2+
3+ void foo () {}
Original file line number Diff line number Diff line change 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 ();
Original file line number Diff line number Diff line change 1+ #include " lib.h"
2+
3+ void bar ()
4+ {
5+ }
Original file line number Diff line number Diff line change 1+ #pragma once
2+
3+ void bar ();
Original file line number Diff line number Diff line change 1+ #include " dll.h"
2+
3+ int main ()
4+ {
5+ bar ();
6+ foo ();
7+ }
Original file line number Diff line number Diff line change 1+ #include " lib.h"
2+
3+ int main ()
4+ {
5+ bar ();
6+ }
You can’t perform that action at this time.
0 commit comments