diff --git a/.gitignore b/.gitignore index 3371c0f..c5ed1cd 100644 --- a/.gitignore +++ b/.gitignore @@ -3,7 +3,6 @@ build/ a.out limit runner -CMakeLists.txt main demo .DS_Store diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index f37519a..0000000 --- a/.travis.yml +++ /dev/null @@ -1,10 +0,0 @@ -language: python -python: - - "2.7" -sudo: required -before_install: - - sudo apt-get -qq update - - sudo apt-get install libseccomp-dev -install: - - sudo python setup.py install -script: cd tests && sudo python test.py diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..6a17f04 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,29 @@ +cmake_minimum_required(VERSION 2.5) +project(judger C) + +#set(CMAKE_VERBOSE_MAKEFILE ON) +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/output/lib) +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/output/bin) + +set(BASE_CMAKE_C_FLAGS "-Wall -Werror -O3 -std=c99") +set(CMAKE_C_FLAGS "${BASE_CMAKE_C_FLAGS}") + + +# make judger lib +file(GLOB SOURCE "src/*.c") +add_library(judger SHARED ${SOURCE}) +target_link_libraries(judger pthread dl) + + +# make language seccomp rules +file(GLOB RULE_SOURCE src/rules/*) +foreach(lang_rule_path ${RULE_SOURCE}) + file(RELATIVE_PATH lang_name ${CMAKE_CURRENT_SOURCE_DIR}/src/rules ${lang_rule_path}) + add_library("rule_${lang_name}" SHARED "${lang_rule_path}/rule.c") + target_link_libraries("rule_${lang_name}" seccomp) +endforeach(lang_rule_path src/rules) + + +# make tests +add_executable(run_test test/main.c ${SOURCE}) +target_link_libraries(run_test pthread dl seccomp)