From f5d55b2655c68c8d24413704809ff60d89e52abc Mon Sep 17 00:00:00 2001 From: Mineplay Date: Wed, 9 Apr 2025 18:19:41 -0500 Subject: [PATCH] feat(build): setup basic cmake build system for c library --- .gitignore | 1 + CMakeLists.txt | 25 +++++++++++++++++++++++++ Src/Main.c | 6 ++++++ 3 files changed, 32 insertions(+) create mode 100644 .gitignore create mode 100644 CMakeLists.txt create mode 100644 Src/Main.c diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2d82e85 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +Build \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..a6564ca --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,25 @@ +cmake_minimum_required(VERSION 3.10) +project(Hallocy C) + +set(CMAKE_C_STANDARD 11) +set(CMAKE_C_STANDARD_REQUIRED ON) + +include_directories(${PROJECT_SOURCE_DIR}/Include) +file(GLOB_RECURSE SRC_FILES "${PROJECT_SOURCE_DIR}/Src/*.c") + +add_library(Hallocy STATIC ${SRC_FILES}) +add_executable(HallocyApp ${PROJECT_SOURCE_DIR}/Src/Main.c) + +target_link_libraries(HallocyApp Hallocy) + +if (MSVC) + target_compile_options(Hallocy PRIVATE /W4 /Zl) +else() + target_compile_options(Hallocy PRIVATE -mavx512f -mavx512vl) + target_compile_options(HallocyApp PRIVATE -mavx512f -mavx512vl) + + target_compile_options(Hallocy PRIVATE -march=native) + target_compile_options(HallocyApp PRIVATE -march=native) + + target_compile_options(Hallocy PRIVATE -Wall -Wextra -pedantic) +endif() \ No newline at end of file diff --git a/Src/Main.c b/Src/Main.c new file mode 100644 index 0000000..8321e25 --- /dev/null +++ b/Src/Main.c @@ -0,0 +1,6 @@ +#include + +int main() { + printf("Hello, World!\n"); + return 0; +} \ No newline at end of file