-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
61 lines (48 loc) · 1.84 KB
/
CMakeLists.txt
File metadata and controls
61 lines (48 loc) · 1.84 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
cmake_minimum_required(VERSION 3.5)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_COMPILER clang++-3.8)
project(icfpc2018)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY bin)
file(MAKE_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
file(MAKE_DIRECTORY "./nbts")
file(MAKE_DIRECTORY "./tmp")
enable_testing()
set(CMAKE_CXX_FLAGS "-Wall -Wextra -O2")
set(CMAKE_CXX_FLAGS_DEBUG "-g3 -O2 -pg")
set(CMAKE_CXX_FLAGS_RELEASE "-O2 -s -DNDEBUG -march=native")
file(GLOB AI_MAINS AI/*/*.cpp)
# AIのMAINのビルド
foreach (AI_MAIN ${AI_MAINS})
get_filename_component(AI_MAIN_NAME ${AI_MAIN} NAME_WE)
add_executable(${AI_MAIN_NAME} ${AI_MAIN})
endforeach (AI_MAIN)
# tracerのビルド
add_executable(tracer4 "tracer/tracer4.cpp")
add_executable(tracer5 "tracer/tracer5.cpp")
add_executable(tracer6 "tracer/tracer6.cpp")
file(GLOB R_FILES problemsF/*.r)
add_test(NAME MAKE
COMMAND make)
add_custom_target(ExecuteTrace ALL
COMMAND go build -o bin/ExecuteTrace "ExecuteTrace/ExecuteTrace.go")
#問題のループ
foreach(R_FILE ${R_FILES})
# 問題名
get_filename_component(PROBLEM ${R_FILE} NAME_WE)
foreach (AI_MAIN ${AI_MAINS})
# AI名
get_filename_component(AI ${AI_MAIN} NAME_WE)
file(MAKE_DIRECTORY "./out/${AI}")
set(TEST_NAME "${AI}_${PROBLEM}")
set(MODEL_SRC "./problemsF/${PROBLEM}_src.mdl")
set(MODEL_TGT "./problemsF/${PROBLEM}_tgt.mdl")
set(TMP_FILE "./tmp/${TEST_NAME}.nbt")
set(OUTPUT_FILE "./nbts/${TEST_NAME}.nbt")
set(COMM "./bin/${AI} ${MODEL_SRC} ${MODEL_TGT} ${TMP_FILE} && mv ${TMP_FILE} ${OUTPUT_FILE}")
add_test(NAME ${TEST_NAME}
COMMAND sh -c ${COMM}
)
set_tests_properties(${TEST_NAME} PROPERTIES DEPENDS MAKE)
set_tests_properties(${TEST_NAME} PROPERTIES LABELS ${TEST_NAME})
endforeach()
endforeach()