Add CMath library + ensure it builds, links, and runs

This commit is contained in:
TheAlgorithm476 2025-04-29 11:13:22 +02:00
parent 4814c6e7c2
commit d41f72280a
12 changed files with 98 additions and 3 deletions

View File

@ -17,15 +17,30 @@ let package = Package(
name: "PMCalc", name: "PMCalc",
dependencies: [ dependencies: [
.product(name: "Adwaita", package: "adwaita-swift"), .product(name: "Adwaita", package: "adwaita-swift"),
.product(name: "Localized", package: "localized") .product(name: "Localized", package: "localized"),
"CMath"
], ],
path: "Sources", path: "Sources/PMCalc",
resources: [ resources: [
.process("Localized.yml") .process("Localized.yml")
], ],
cSettings: [
.headerSearchPath("Sources/CMath/include")
],
linkerSettings: [
.unsafeFlags([
"-L./Sources/CMath/lib/",
"-lcmath"
])
],
plugins: [ plugins: [
.plugin(name: "GenerateLocalized", package: "localized") .plugin(name: "GenerateLocalized", package: "localized")
] ]
),
.systemLibrary(
name: "CMath",
path: "Sources/CMath",
providers: []
) )
], ],
swiftLanguageModes: [.v5] swiftLanguageModes: [.v5]

View File

@ -0,0 +1,13 @@
//
// add_nums.h
// CMath
//
// Created by TheAlgorithm476 on 28/03/2025.
//
#ifndef __ADD_NUMS_H
#define __ADD_NUMS_H
double add_nums(double a, double b);
#endif // __ADD_NUMS_H

View File

@ -0,0 +1,13 @@
//
// div_nums.h
// CMath
//
// Created by TheAlgorithm476 on 28/03/2025.
//
#ifndef __DIV_NUMS_H
#define __DIV_NUMS_H
double div_nums(double a, double b);
#endif // __DIV_NUMS_H

View File

@ -0,0 +1,13 @@
//
// mul_nums.h
// CMath
//
// Created by TheAlgorithm476 on 28/03/2025.
//
#ifndef __MUL_NUMS_H
#define __MUL_NUMS_H
double mul_nums(double a, double b);
#endif // __MUL_NUMS_H

View File

@ -0,0 +1,17 @@
//
// spc_nums.h
// CMath
//
// Created by TheAlgorithm476 on 28/03/2025.
//
#ifndef __SPC_NUMS_H
#define __SPC_NUMS_H
#define POOR_MANS_POW_GUESSES 12
#define NEWTONIAN_DIV_GUESSES 12
double pow(double x, double exp);
double sqrt(double x);
#endif // __SPC_NUMS_H

View File

@ -0,0 +1,13 @@
//
// sub_nums.h
// CMath
//
// Created by TheAlgorithm476 on 28/03/2025.
//
#ifndef __SUB_NUMS_H
#define __SUB_NUMS_H
double sub_nums(double a, double b);
#endif // __SUB_NUMS_H

BIN
Sources/CMath/lib/libcmath.so Executable file

Binary file not shown.

View File

@ -0,0 +1,9 @@
module CMath {
header "include/add_nums.h"
header "include/sub_nums.h"
header "include/mul_nums.h"
header "include/div_nums.h"
header "include/spc_nums.h"
export *
link "cmath"
}

View File

@ -2,6 +2,7 @@
// https://docs.swift.org/swift-book // https://docs.swift.org/swift-book
import Adwaita import Adwaita
import CMath
@main @main
struct PMCalc: App { struct PMCalc: App {

View File

@ -46,7 +46,8 @@
"install -Dm644 data/me.thealgorithm476.PMCalc.PMCalc.metainfo.xml $DESTDIR/app/share/metainfo/me.thealgorithm476.PMCalc.PMCalc.metainfo.xml", "install -Dm644 data/me.thealgorithm476.PMCalc.PMCalc.metainfo.xml $DESTDIR/app/share/metainfo/me.thealgorithm476.PMCalc.PMCalc.metainfo.xml",
"install -Dm644 data/me.thealgorithm476.PMCalc.PMCalc.desktop $DESTDIR/app/share/applications/me.thealgorithm476.PMCalc.PMCalc.desktop", "install -Dm644 data/me.thealgorithm476.PMCalc.PMCalc.desktop $DESTDIR/app/share/applications/me.thealgorithm476.PMCalc.PMCalc.desktop",
"install -Dm644 data/icons/me.thealgorithm476.PMCalc.PMCalc.svg $DESTDIR/app/share/icons/hicolor/scalable/apps/me.thealgorithm476.PMCalc.PMCalc.svg", "install -Dm644 data/icons/me.thealgorithm476.PMCalc.PMCalc.svg $DESTDIR/app/share/icons/hicolor/scalable/apps/me.thealgorithm476.PMCalc.PMCalc.svg",
"install -Dm644 data/icons/me.thealgorithm476.PMCalc.PMCalc-symbolic.svg $DESTDIR/app/share/icons/hicolor/symbolic/apps/me.thealgorithm476.PMCalc.PMCalc-symbolic.svg" "install -Dm644 data/icons/me.thealgorithm476.PMCalc.PMCalc-symbolic.svg $DESTDIR/app/share/icons/hicolor/symbolic/apps/me.thealgorithm476.PMCalc.PMCalc-symbolic.svg",
"install -Dm644 Sources/CMath/lib/libcmath.so /app/lib/libcmath.so"
] ]
} }
] ]