From d41f72280a4afd649cadcbd98d8ed3c95cd1adbd Mon Sep 17 00:00:00 2001 From: TheAlgorithm476 Date: Tue, 29 Apr 2025 11:13:22 +0200 Subject: [PATCH] Add CMath library + ensure it builds, links, and runs --- Package.swift | 19 +++++++++++++++++-- Sources/CMath/include/add_nums.h | 13 +++++++++++++ Sources/CMath/include/div_nums.h | 13 +++++++++++++ Sources/CMath/include/mul_nums.h | 13 +++++++++++++ Sources/CMath/include/spc_nums.h | 17 +++++++++++++++++ Sources/CMath/include/sub_nums.h | 13 +++++++++++++ Sources/CMath/lib/libcmath.so | Bin 0 -> 15368 bytes Sources/CMath/module.modulemap | 9 +++++++++ Sources/{ => PMCalc}/Localized.yml | 0 Sources/{ => PMCalc}/PMCalc.swift | 1 + Sources/{ => PMCalc}/ToolbarView.swift | 0 me.thealgorithm476.PMCalc.PMCalc.json | 3 ++- 12 files changed, 98 insertions(+), 3 deletions(-) create mode 100644 Sources/CMath/include/add_nums.h create mode 100644 Sources/CMath/include/div_nums.h create mode 100644 Sources/CMath/include/mul_nums.h create mode 100644 Sources/CMath/include/spc_nums.h create mode 100644 Sources/CMath/include/sub_nums.h create mode 100755 Sources/CMath/lib/libcmath.so create mode 100644 Sources/CMath/module.modulemap rename Sources/{ => PMCalc}/Localized.yml (100%) rename Sources/{ => PMCalc}/PMCalc.swift (99%) rename Sources/{ => PMCalc}/ToolbarView.swift (100%) diff --git a/Package.swift b/Package.swift index 2aac1ac..19b152f 100644 --- a/Package.swift +++ b/Package.swift @@ -17,15 +17,30 @@ let package = Package( name: "PMCalc", dependencies: [ .product(name: "Adwaita", package: "adwaita-swift"), - .product(name: "Localized", package: "localized") + .product(name: "Localized", package: "localized"), + "CMath" ], - path: "Sources", + path: "Sources/PMCalc", resources: [ .process("Localized.yml") ], + cSettings: [ + .headerSearchPath("Sources/CMath/include") + ], + linkerSettings: [ + .unsafeFlags([ + "-L./Sources/CMath/lib/", + "-lcmath" + ]) + ], plugins: [ .plugin(name: "GenerateLocalized", package: "localized") ] + ), + .systemLibrary( + name: "CMath", + path: "Sources/CMath", + providers: [] ) ], swiftLanguageModes: [.v5] diff --git a/Sources/CMath/include/add_nums.h b/Sources/CMath/include/add_nums.h new file mode 100644 index 0000000..6c98505 --- /dev/null +++ b/Sources/CMath/include/add_nums.h @@ -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 diff --git a/Sources/CMath/include/div_nums.h b/Sources/CMath/include/div_nums.h new file mode 100644 index 0000000..f9167c5 --- /dev/null +++ b/Sources/CMath/include/div_nums.h @@ -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 diff --git a/Sources/CMath/include/mul_nums.h b/Sources/CMath/include/mul_nums.h new file mode 100644 index 0000000..ccbc5a9 --- /dev/null +++ b/Sources/CMath/include/mul_nums.h @@ -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 diff --git a/Sources/CMath/include/spc_nums.h b/Sources/CMath/include/spc_nums.h new file mode 100644 index 0000000..8e456bc --- /dev/null +++ b/Sources/CMath/include/spc_nums.h @@ -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 diff --git a/Sources/CMath/include/sub_nums.h b/Sources/CMath/include/sub_nums.h new file mode 100644 index 0000000..00439e9 --- /dev/null +++ b/Sources/CMath/include/sub_nums.h @@ -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 diff --git a/Sources/CMath/lib/libcmath.so b/Sources/CMath/lib/libcmath.so new file mode 100755 index 0000000000000000000000000000000000000000..ff37e52ba1864fa943daa39a2f229bdccdcd2f89 GIT binary patch literal 15368 zcmeHOZ)_Y#6`!-?)QMy7nK+PttuIxK+%(;|X)KaLnse=SHejbtVv9y3S)F}%KGXY` zyFJG~wZ+6ON-#kIwN*dRs-GZ2MY05lQ00T2Kyj)dY>7${LdZp`bRh^|9hF`w%JJUJ zy!Cp07f?SSkancoH}iY%_h#nptY_Ez_8VGPXNAYZs8q5i*iwrzzf_!SB@4v%vKlyU zW}CR}swLHmTBJ%qB$-#Vu@A12ZNf=juM~D92}d69&nNWEAzzY%Cu!%c21-N~yvP&F z+sq?0!zc}}@q@<{Sn0Cwzs zGx%xx>yf->IS{AplKqjS{*C|->2zSf=mXcx!NYwF!ZU@K zTqZo;4YG~;kM3Vc{rs8CMDc}p_ipNW$@_=jMt%uuZjV0DFOJ{4%CnP=J$MMQ`{0M? zVe*H&e{tla*D4n3UVrvy2R`Z8{Q9|?ns2tJKvlMMg2q=uyR!_Ab17wy<0^%p0{k;< zE&E(ORG>T{1nUEd_{TE9gg+nAVckd)Uc;gb?)enBLh+A{|P zj%z|roddHrTwanKziGp14WeS+hSRme3GTs-fExif0&WD{2)Ge&Bj85Bjllmv1nwvg z{6ioAYqdU6HMff~{lzJ>qByIM|El^LA6>Ea9e|5XH{hr=`Wf06o4yOJu+rE8gbVwp zk$0i$Efo6-<_2)}Jl4V0n&Q0DIEId{NeTAft znhoHfRXV6H&WnDCkNuDB?*=u?Jlv;`@2|kBe*S%Poj$Q&g+}gpu~^In;qZ1<6SO@i zfot`T{99*0iIqO!Eh_a|0S?{yMa7G?r?vdaYo)bdazZPV(*pN+X>M3qm;;{ z)y!(F-d>Bng5Ohizi>i&a9o#hT$4n(oNchGnKf9w^&&i~5H^|JXjL<{;I_(F$JniY z%Vd`}IlLFUo4lhuU%MWZVdbmS`h<2ltTfMrbtOKP%R*$Zh4lAo8H0gM-)aOGoVTd# zoI0=FfNriYDm%JwNbtn845GK{C!ABS&Fa6=ZsK{r-GD~37#f@nD8{v$o(b)S{;IxD zyP0~A#$3oMR#kc7M?l3foRt3NvC$(NIdGoGhqT) zqz1h%>dKC(+nea}?ob>5?o zKbNl={tl}6gg_4y;?3*JR!mOJWS5ppiL-n}I``JTxlRNXsd<=3fd{Ec>QCWPfCUK6 z+Ox|n$F&0XU#J=WJ=($&W&B#?*RFN7qBFO+5pW~mM!=1L8v!>0ZUo#2xDjw8;6~tH z5y;E8R+i0}RTCAzXG`T5@f|R}H!Ca@ixI5ni^Yo|=RjTpxd3toWbFs=01onDkk#;< z76RD}a@(C^QOD;tDEO`xizj=Oc}BdRE$i;9z6iSQfNh1}Ip~AGva9oU)@}T{2eOkD}U-ii>;vhC;a9hCj6Z&=_?|_0qES~M!=1L z8v!>0ZUo#2xDjw8;6}iWfE$7T=Lk?FXSKTDrl;62Uw(%Jb z%Vr@M<$2OTi&zyWx z##~`6JP8>j^?Qk+g{nEN4e3;uSjMf$5FGHo&_+JAY{W$ZY%gy&q?!S&* z#ECdcDgSSQjfd4U=lQwD@dj(Y%2s9=4v*Iw!myCX9LD&V2IE0`4Otn{1Ny&OCFqj6MEes8oLY5s5qF-zRZrUizsr z{!x-~;P+<}?+9mfy1bsuU67_#sQG=k}b5edYDn2(Q+K@HzY7@980 zddE@52gi(qT~9sP)@3}^*?COsHG12g?9vR8b8jrq*SE6sdG>$F41X(=AM^IDB>sDS zEns~F;P}FTsp-*}8R!RTri6@8EuJt#>R>#hCR2%IC}oZ^)q?snL($+PLqWz3B7t;- zslm}WI1|!LF*Oy61`uQ_4~?3Pn(AP}WU3h&fg_$XFiHdiW`L=oh&)S?AW*3#sN!@9 z2GzlDAT~4r{U=QH4Bc`+{pmDQVZp>;9oVj%PglkL5%(my-L3fU$meiN`xU|Xd6S)A z?z;4tpH+Px~&(FG)+{Is5+#=yA^_KJCjS@&CwJ=-VCQ)Bbu4bhx(? zpZ0l@XOV0x(w&8T4QevwnFQVpf{j`_cRnHy1$_B z+?@8*CW-eAij7bAwMo1%p^%+uEwu^13<_L()IZ%%(07aUeInfl6OZDEH_JFh;?ws~ zGrItU;^W7q1Mx{tgUZgQ`-hz5({(}~h)41r2cP++Ws8txC(#x0m<0ve(D>;-vAPT& z$7(O{LIW{rZmEd>c?%I0;@hRQc5SvT(qT?2F%BExNAsb$;PV2F-9~2{9}}(bQ%6$i UXu=(2Y5tG*2*RHvkA#!|FJ};;#Q*>R literal 0 HcmV?d00001 diff --git a/Sources/CMath/module.modulemap b/Sources/CMath/module.modulemap new file mode 100644 index 0000000..16d4599 --- /dev/null +++ b/Sources/CMath/module.modulemap @@ -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" +} diff --git a/Sources/Localized.yml b/Sources/PMCalc/Localized.yml similarity index 100% rename from Sources/Localized.yml rename to Sources/PMCalc/Localized.yml diff --git a/Sources/PMCalc.swift b/Sources/PMCalc/PMCalc.swift similarity index 99% rename from Sources/PMCalc.swift rename to Sources/PMCalc/PMCalc.swift index f607410..ca0afc8 100644 --- a/Sources/PMCalc.swift +++ b/Sources/PMCalc/PMCalc.swift @@ -2,6 +2,7 @@ // https://docs.swift.org/swift-book import Adwaita +import CMath @main struct PMCalc: App { diff --git a/Sources/ToolbarView.swift b/Sources/PMCalc/ToolbarView.swift similarity index 100% rename from Sources/ToolbarView.swift rename to Sources/PMCalc/ToolbarView.swift diff --git a/me.thealgorithm476.PMCalc.PMCalc.json b/me.thealgorithm476.PMCalc.PMCalc.json index 9ce7bc5..d8aa641 100644 --- a/me.thealgorithm476.PMCalc.PMCalc.json +++ b/me.thealgorithm476.PMCalc.PMCalc.json @@ -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.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-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" ] } ]