Added CMake support

should make integration into visual studio easier for people
This commit is contained in:
cpunch 2021-02-11 20:34:04 -06:00
parent bc43eaaa75
commit 2e07715a7d
6 changed files with 25 additions and 2 deletions

3
.gitignore vendored
View File

@ -1,3 +1,4 @@
*.o *.o
bin bin
.vscode .vscode
CMakeFiles

20
CMakeLists.txt Normal file
View File

@ -0,0 +1,20 @@
cmake_minimum_required(VERSION 3.10)
project(cosmo VERSION 0.1.0 LANGUAGES C)
set(CMAKE_C_STANDARD 11)
set(CMAKE_C_STANDARD_REQUIRED True)
set(CMAKE_DISABLE_SOURCE_CHANGES ON CACHE BOOL "Prevent writing files to CMAKE_SOURCE_DIR under configure")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY bin)
set (CMAKE_C_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g -Wall")
set (CMAKE_LINKER_FLAGS_DEBUG "${CMAKE_LINKER_FLAGS_DEBUG} -fsanitize=address")
set (CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -O3 -Wall")
include(FetchContent)
file(GLOB sources CONFIGURE_DEPENDS ${PROJECT_SOURCE_DIR}/src/*.c)
add_executable(${PROJECT_NAME} main.c)
target_sources(${PROJECT_NAME} PRIVATE ${sources})
target_link_libraries(${PROJECT_NAME} m)
target_include_directories(${PROJECT_NAME} PUBLIC ${PROJECT_SOURCE_DIR}/src)
target_compile_features(${PROJECT_NAME} PRIVATE c_std_11)

View File

@ -33,7 +33,7 @@ CSRC=\
src/cvm.c\ src/cvm.c\
src/cobj.c\ src/cobj.c\
src/cbaselib.c\ src/cbaselib.c\
src/main.c\ main.c\
COBJ=$(CSRC:.c=.o) COBJ=$(CSRC:.c=.o)

View File

View File

@ -6,6 +6,7 @@
#include "clex.h" #include "clex.h"
#include <string.h> #include <string.h>
#include <stdarg.h>
// we don't actually hash the whole string :eyes: // we don't actually hash the whole string :eyes:
uint32_t hashString(const char *str, size_t sz) { uint32_t hashString(const char *str, size_t sz) {

View File

@ -7,6 +7,7 @@
#include "cvm.h" #include "cvm.h"
#include <string.h> #include <string.h>
#include <stdarg.h>
// we define all of this here because we only need it in this file, no need for it to be in the header /shrug // we define all of this here because we only need it in this file, no need for it to be in the header /shrug