Skip to content

Commit 59f3233

Browse files
committed
premake5 functions
1 parent 13a10d1 commit 59f3233

File tree

14 files changed

+69
-26
lines changed

14 files changed

+69
-26
lines changed

01_SimpleCApp/build.lua

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
cpptNewProject("01_SimpleCApp")

02_Pointers/build.lua

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
cpptNewProject("02_Pointers")

03_MemoryUtils/build.lua

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
cpptNewProject("03_MemoryUtils")

04_INIParser/INIApi.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#pragma once
22

3-
#ifdef INI_BUILD_DLL
3+
#ifdef __04_INIParser_BUILD_DLL
44
#define INI_API __declspec(dllexport)
55
#else
66
#define INI_API __declspec(dllimport)

04_INIParser/build.lua

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
cpptNewProject("04_INIParser")
2+
cpptSetSharedLib()

05_INIExplorer/build.lua

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
cpptNewProject("05_INIExplorer")
2+
defines { "INIEXPLORER_DEFAULT_FORMAT1" }
3+
links { "04_INIParser" }
4+
debugargs { "config.ini" }

05_INIExplorer/main.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#include <INIx.h>
1+
#include <04_INIParser/INIx.h>
22

33
#include <stdio.h>
44
#include <string.h>

06_AdvancedCStructs/build.lua

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
cpptNewProject("06_AdvancedCStructs")

07_SimpleCppApp/build.lua

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
cpptNewProject("07_SimpleCppApp")

08_CatsAndDogs/build.lua

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
cpptNewProject("08_CatsAndDogs")

09_INIpp/build.lua

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
cpptNewProject("09_INIpp")

Exercises/E01_Functions/build.lua

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
cpptNewProject("E01_Functions", "Exercises/E01_Functions")

cpptutorial.lua

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
function cpptNewProject(projectName, src)
2+
srcdir = projectName
3+
if src ~= nil then
4+
srcdir = src
5+
end
6+
7+
project(projectName)
8+
kind "ConsoleApp"
9+
language "C++"
10+
cppdialect "C++20"
11+
12+
targetdir "%{wks.location}/build/bin/%{cfg.architecture}-%{cfg.buildcfg}/"
13+
objdir "%{wks.location}/build/obj/%{cfg.architecture}-%{cfg.buildcfg}/%{prj.name}/"
14+
15+
location("%{wks.location}/" .. srcdir)
16+
files {
17+
"%{prj.location}/**.h", "%{prj.location}/**.hpp", "%{prj.location}/**.hh", "%{prj.location}/**.hxx",
18+
"%{prj.location}/**.c", "%{prj.location}/**.cpp", "%{prj.location}/**.cc", "%{prj.location}/**.cxx",
19+
"%{prj.location}/**.lua", "%{prj.location}/**.txt", "%{prj.location}/**.md", "%{prj.location}/**.ini",
20+
}
21+
includedirs { "%{wks.location}", "%{prj.location}" }
22+
23+
defines { "__%{prj.name}_BUILD" }
24+
25+
filter "configurations:Debug"
26+
defines { "DEBUG", "_DEBUG" }
27+
symbols "On"
28+
filter {}
29+
30+
filter "configurations:Release"
31+
defines { "NDEBUG" }
32+
optimize "On"
33+
filter {}
34+
end
35+
36+
function cpptSetSharedLib()
37+
kind "SharedLib"
38+
defines { "__%{prj.name}_BUILD_DLL" }
39+
end

premake5.lua

+14-24
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,20 @@
1+
include "cpptutorial.lua"
2+
13
workspace "CppTutorial"
24
configurations { "Debug", "Release" }
35
architecture "x64"
46
location "./"
57

6-
projectName = "08_CatsAndDogs"
7-
project(projectName)
8-
kind "ConsoleApp"
9-
language "C++"
10-
cppdialect "C++20"
11-
12-
targetdir "%{wks.location}/build/bin/%{cfg.architecture}-%{cfg.buildcfg}/"
13-
objdir "%{wks.location}/build/obj/%{cfg.architecture}-%{cfg.buildcfg}/%{prj.name}/"
14-
15-
location("%{wks.location}/" .. projectName)
16-
files {
17-
"%{prj.location}/**.h", "%{prj.location}/**.hpp", "%{prj.location}/**.hh", "%{prj.location}/**.hxx",
18-
"%{prj.location}/**.c", "%{prj.location}/**.cpp", "%{prj.location}/**.cc", "%{prj.location}/**.cxx",
19-
"%{prj.location}/**.lua", "%{prj.location}/**.txt", "%{prj.location}/**.md", "%{prj.location}/**.ini",
20-
}
21-
22-
filter "configurations:Debug"
23-
defines { "DEBUG", "_DEBUG" }
24-
symbols "On"
25-
filter {}
8+
include "./01_SimpleCApp/build.lua"
9+
include "./02_Pointers/build.lua"
10+
include "./03_MemoryUtils/build.lua"
11+
include "./04_INIParser/build.lua"
12+
include "./05_INIExplorer/build.lua"
13+
include "./06_AdvancedCStructs/build.lua"
14+
include "./07_SimpleCppApp/build.lua"
15+
include "./08_CatsAndDogs/build.lua"
16+
include "./09_INIpp/build.lua"
2617

27-
filter "configurations:Release"
28-
defines { "NDEBUG" }
29-
optimize "On"
30-
filter {}
18+
group "Exercises"
19+
include "./Exercises/E01_Functions/build.lua"
20+
group ""

0 commit comments

Comments
 (0)