-
Notifications
You must be signed in to change notification settings - Fork 5
/
CMakeLists.txt
79 lines (58 loc) · 2.66 KB
/
CMakeLists.txt
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
cmake_minimum_required(VERSION 3.0)
project(limboole
VERSION 1.2)
set(VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR})
# =============================================
# Setup limboole sources, executables and tests.
# =============================================
set(LIMBOOLE_EXECUTABLE_SRCS
${CMAKE_CURRENT_SOURCE_DIR}/main.c
${CMAKE_CURRENT_SOURCE_DIR}/limboole.c
)
set(TESTLIMBOOLE_EXECUTABLE_SRCS
${CMAKE_CURRENT_SOURCE_DIR}/test.c
${CMAKE_CURRENT_SOURCE_DIR}/limboole.c
)
set(DIMACS2BOOLE_SRCS
${CMAKE_CURRENT_SOURCE_DIR}/dimacs2boole.c
)
add_executable(limboole ${LIMBOOLE_EXECUTABLE_SRCS})
add_executable(testlimboole ${TESTLIMBOOLE_EXECUTABLE_SRCS})
add_executable(dimacs2boole ${DIMACS2BOOLE_SRCS})
set(CMAKE_C_FLAGS ${CMAKE_C_FLAGS} -Os)
target_compile_definitions(limboole PRIVATE LIMBOOLE_USE_PICOSAT LIMBOOLE_USE_DEPQBF)
target_compile_definitions(testlimboole PRIVATE LIMBOOLE_USE_PICOSAT LIMBOOLE_USE_DEPQBF)
target_compile_definitions(dimacs2boole PRIVATE LIMBOOLE_USE_PICOSAT LIMBOOLE_USE_DEPQBF)
# =============================================
# Setup VERSION
# =============================================
add_definitions(-DVERSION="${VERSION}")
# =============================================
# Setup SAT backend linkage.
# =============================================
add_subdirectory(picosat-960)
add_subdirectory(nenofex-version-1.1)
add_subdirectory(depqbf-version-6.03)
target_link_libraries(limboole picosat qdpll)
target_link_libraries(testlimboole picosat qdpll)
if(CMAKE_CXX_COMPILER MATCHES "/em\\+\\+(-[a-zA-Z0-9.])?$")
set_target_properties(limboole PROPERTIES LINK_FLAGS "-s INVOKE_RUN=0 -s MODULARIZE=1 -s EXIT_RUNTIME=0 -s EXPORT_NAME='createLimbooleModule' -s EXPORTED_FUNCTIONS=['_limboole_extended','_main'] -s EXTRA_EXPORTED_RUNTIME_METHODS=['FS','callMain','cwrap']")
set_target_properties(dimacs2boole PROPERTIES LINK_FLAGS "-s INVOKE_RUN=0 -s EXIT_RUNTIME=0 -s MODULARIZE=1 -s EXPORT_NAME='createDimacsToBooleModule' -s EXTRA_EXPORTED_RUNTIME_METHODS=['FS','callMain']")
endif()
# =============================================
# Install all targets
# =============================================
set(INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR})
install(TARGETS limboole
RUNTIME DESTINATION ${INSTALL_DIR}
LIBRARY DESTINATION ${INSTALL_DIR}
ARCHIVE DESTINATION ${INSTALL_DIR})
install(TARGETS dimacs2boole
RUNTIME DESTINATION ${INSTALL_DIR}
LIBRARY DESTINATION ${INSTALL_DIR}
ARCHIVE DESTINATION ${INSTALL_DIR})
install(FILES
${CMAKE_CURRENT_SOURCE_DIR}/README
${CMAKE_CURRENT_SOURCE_DIR}/LICENSE
${CMAKE_CURRENT_SOURCE_DIR}/index.html
DESTINATION ${INSTALL_DIR})