aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore25
-rw-r--r--examples/tester/main.c9
-rw-r--r--examples/tester/main.rs2
-rw-r--r--premake5.lua131
-rw-r--r--src/psi.c6
-rw-r--r--src/psi.h7
6 files changed, 177 insertions, 3 deletions
diff --git a/.gitignore b/.gitignore
index 476e319..f3f4346 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,10 +1,29 @@
+.DS_Store
+.cache/
+
+.vs/
.vscode/
.idea/
-.vs/
+compile_flags.txt
+compile_commands.json
+
+# premake / build output
+bin/
+bin-int/
+build/
+builddir/
+
+*.make
+Makefile
+
+*.sln
+*.vcxproj
+*.vcxproj.*
+
+# rust (reference sources during the port)
debug/
target/
-
Cargo.lock
**/*.rs.bk
-*.pdb \ No newline at end of file
+*.pdb
diff --git a/examples/tester/main.c b/examples/tester/main.c
new file mode 100644
index 0000000..9a9428f
--- /dev/null
+++ b/examples/tester/main.c
@@ -0,0 +1,9 @@
+#include <stdio.h>
+
+#include "psi.h"
+
+int main(void)
+{
+ printf("psi %s\n", psi_version());
+ return 0;
+}
diff --git a/examples/tester/main.rs b/examples/tester/main.rs
index 8a9a41c..ecebd34 100644
--- a/examples/tester/main.rs
+++ b/examples/tester/main.rs
@@ -67,6 +67,7 @@ fn main() {
if run_clifford {
clifford::run_all(&mut results);
}
+
if run_non_clifford {
non_clifford::run_all(&mut results);
@@ -91,6 +92,7 @@ fn main() {
if run_bench {
benchmarks::run_all(&mut results);
}
+
if !results.is_empty() {
print_benchmark_table(&results);
diff --git a/premake5.lua b/premake5.lua
new file mode 100644
index 0000000..8aa81ca
--- /dev/null
+++ b/premake5.lua
@@ -0,0 +1,131 @@
+output_dir = "%{cfg.buildcfg}-%{cfg.system}"
+
+function setup_target()
+ targetdir ("bin/" .. output_dir)
+ objdir ("bin-int/" .. output_dir .. "/%{prj.name}")
+ staticruntime "On"
+end
+
+function setup_c_target()
+ setup_target()
+
+ filter "configurations:debug"
+ runtime "Debug"
+ symbols "On"
+ filter { "configurations:release", "configurations:dist" }
+ runtime "Release"
+ optimize "Speed"
+ filter "configurations:dist"
+ symbols "Off"
+ filter {}
+end
+
+newaction {
+ trigger = "clean",
+ description = "Remove build output and generated project files",
+
+ execute = function()
+ os.rmdir("bin")
+ os.rmdir("bin-int")
+ os.remove("Makefile")
+
+ for _, file in ipairs(os.matchfiles("*.make")) do
+ os.remove(file)
+ end
+
+ print("Cleaned build output and generated project files")
+ end
+}
+
+workspace "psi"
+ architecture "x64"
+ startproject "tester"
+ multiprocessorcompile "On"
+
+ configurations {
+ "debug",
+ "release",
+ "dist",
+ }
+
+ filter "system:windows"
+ defines "PSI_WINDOWS"
+ filter "system:linux"
+ defines "PSI_LINUX"
+ filter "system:macosx"
+ architecture "ARM64"
+ defines "PSI_MACOS"
+ filter {}
+
+project "psi"
+ kind "StaticLib"
+ language "C"
+ cdialect "C17"
+
+ setup_c_target()
+
+ files {
+ "src/**.h",
+ "src/**.c",
+ }
+
+ includedirs "src"
+
+ filter { "system:macosx or system:linux" }
+ buildoptions {
+ "-Wall",
+ "-Wextra",
+ "-Werror",
+ "-pedantic",
+ }
+ filter "system:windows"
+ systemversion "latest"
+ filter {}
+
+ filter "configurations:debug"
+ defines "PSI_DEBUG"
+ filter "configurations:release"
+ defines "PSI_RELEASE"
+ filter "configurations:dist"
+ defines "PSI_DIST"
+ filter {}
+
+project "tester"
+ kind "ConsoleApp"
+ language "C"
+ cdialect "C17"
+
+ setup_c_target()
+
+ files {
+ "examples/tester/**.h",
+ "examples/tester/**.c",
+ }
+
+ includedirs {
+ "src",
+ "examples/tester",
+ }
+
+ links "psi"
+
+ filter { "system:macosx or system:linux" }
+ links "m"
+
+ buildoptions {
+ "-Wall",
+ "-Wextra",
+ "-Werror",
+ "-pedantic",
+ }
+ filter "system:windows"
+ systemversion "latest"
+ filter {}
+
+ filter "configurations:debug"
+ defines "PSI_DEBUG"
+ filter "configurations:release"
+ defines "PSI_RELEASE"
+ filter "configurations:dist"
+ defines "PSI_DIST"
+ filter {}
diff --git a/src/psi.c b/src/psi.c
new file mode 100644
index 0000000..6be2831
--- /dev/null
+++ b/src/psi.c
@@ -0,0 +1,6 @@
+#include "psi.h"
+
+const char *psi_version(void)
+{
+ return "0.1.0";
+}
diff --git a/src/psi.h b/src/psi.h
new file mode 100644
index 0000000..8c62319
--- /dev/null
+++ b/src/psi.h
@@ -0,0 +1,7 @@
+#pragma once
+
+#define PSI_VERSION_MAJOR 0
+#define PSI_VERSION_MINOR 1
+#define PSI_VERSION_PATCH 0
+
+const char *psi_version(void);