cmake: Guard examples that require Boost.
authorMathias Preiner <mathias.preiner@gmail.com>
Sat, 15 Sep 2018 07:05:44 +0000 (00:05 -0700)
committerMathias Preiner <mathias.preiner@gmail.com>
Sat, 22 Sep 2018 23:30:59 +0000 (16:30 -0700)
examples/CMakeLists.txt
examples/api/CMakeLists.txt
examples/hashsmt/CMakeLists.txt
examples/hashsmt/sha1_collision.cpp
examples/nra-translate/CMakeLists.txt
examples/sets-translate/CMakeLists.txt

index 37efb84e146079c6be077b7d830831e14c8c37f8..493a7b3bbc6b3ac26c5ebe37e28f53f78e7bd628 100644 (file)
@@ -2,72 +2,30 @@ include_directories(${PROJECT_SOURCE_DIR}/src)
 include_directories(${PROJECT_SOURCE_DIR}/src/include)
 include_directories(${CMAKE_BINARY_DIR}/src)
 
-set(CVC4_EXAMPLES
-  simple_vc_cxx
-  simple_vc_quant_cxx
-  translator
-)
-set(CVC4_EXAMPLES_API
-  bitvectors
-  bitvectors-new
-  bitvectors_and_arrays
-  bitvectors_and_arrays-new
-  combination
-  combination-new
-  datatypes
-  datatypes-new
-  extract
-  extract-new
-  helloworld
-  helloworld-new
-  linear_arith
-  linear_arith-new
-  sets
-  sets-new
-  strings
-  strings-new
-)
-set(CVC4_EXAMPLES_HASHSMT
-  sha1_collision
-  sha1_inversion
-)
-set(CVC4_EXAMPLES_NRA_TRANSLATE
-  normalize
-  smt2info
-  smt2todreal
-  smt2toisat
-  smt2tomathematica
-  smt2toqepcad
-  smt2toredlog
-)
-set(CVC4_EXAMPLES_SETS_TRANSLATE
-  sets2arrays
-  sets2axioms
-)
+# Some of the examples require boost. Enable these examples if boost is
+# installed.
+find_package(Boost)
 
-set(EXAMPLES_BIN_DIR ${CMAKE_BINARY_DIR}/bin/examples) 
+set(EXAMPLES_BIN_DIR ${CMAKE_BINARY_DIR}/bin/examples)
+
+# Create target examples. Add a dependency for each examples you add.
+add_custom_target(examples)
 
 add_executable(simple_vc_cxx EXCLUDE_FROM_ALL simple_vc_cxx.cpp)
 target_link_libraries(simple_vc_cxx cvc4 cvc4parser)
+add_dependencies(examples simple_vc_cxx)
 
 add_executable(simple_vc_quant_cxx EXCLUDE_FROM_ALL simple_vc_quant_cxx.cpp)
 target_link_libraries(simple_vc_quant_cxx cvc4 cvc4parser)
+add_dependencies(examples simple_vc_quant_cxx)
 
 add_executable(translator EXCLUDE_FROM_ALL translator.cpp)
 target_link_libraries(translator cvc4 cvc4parser)
+add_dependencies(examples translator)
 
 set_target_properties(simple_vc_cxx simple_vc_quant_cxx translator
   PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${EXAMPLES_BIN_DIR})
 
-add_custom_target(examples
-  DEPENDS
-  ${CVC4_EXAMPLES}
-  ${CVC4_EXAMPLES_API}
-  ${CVC4_EXAMPLES_HASHSMT}
-  ${CVC4_EXAMPLES_NRA_TRANSLATE}
-  ${CVC4_EXAMPLES_SETS_TRANSLATE}
-)
-
 if(BUILD_BINDINGS_JAVA)
   find_package(Java REQUIRED)
   set(EXAMPLES_JAVA_CLASSPATH "${CMAKE_BINARY_DIR}/src/bindings/java/CVC4.jar")
index 55651e2387be08442c2e331110ef3f0689ca751d..4e4d81ed3fe851dd4e3da2f0e909322012b01548 100644 (file)
@@ -1,10 +1,32 @@
-set(EXAMPLES_API_BIN_DIR ${EXAMPLES_BIN_DIR}/api) 
+set(EXAMPLES_API_BIN_DIR ${EXAMPLES_BIN_DIR}/api)
+
+set(CVC4_EXAMPLES_API
+  bitvectors
+  bitvectors-new
+  bitvectors_and_arrays
+  bitvectors_and_arrays-new
+  combination
+  combination-new
+  datatypes
+  datatypes-new
+  extract
+  extract-new
+  helloworld
+  helloworld-new
+  linear_arith
+  linear_arith-new
+  sets
+  sets-new
+  strings
+  strings-new
+)
 
 foreach(example ${CVC4_EXAMPLES_API})
   add_executable(${example} EXCLUDE_FROM_ALL ${example}.cpp)
   target_link_libraries(${example} cvc4)
   set_target_properties(${example}
     PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${EXAMPLES_API_BIN_DIR})
+  add_dependencies(examples ${example})
 endforeach()
 
 if(BUILD_BINDINGS_JAVA)
index 718399f79289a99043bdfdfa25884ec2599c41b7..bf7c910b982b80bf28c74320f7504fdf1f6dc3c7 100644 (file)
@@ -1,12 +1,18 @@
 include_directories(.)
 
-set(EXAMPLES_HASHSMT_BIN_DIR ${EXAMPLES_BIN_DIR}/hashsmt) 
+set(EXAMPLES_HASHSMT_BIN_DIR ${EXAMPLES_BIN_DIR}/hashsmt)
 
-add_executable(sha1_inversion EXCLUDE_FROM_ALL sha1_inversion.cpp word.cpp)
-target_link_libraries(sha1_inversion cvc4)
+if(Boost_FOUND)
+  add_executable(sha1_inversion EXCLUDE_FROM_ALL sha1_inversion.cpp word.cpp)
+  target_link_libraries(sha1_inversion cvc4)
+  add_dependencies(examples sha1_inversion)
+  set_target_properties(sha1_inversion
+    PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${EXAMPLES_HASHSMT_BIN_DIR})
+endif()
 
 add_executable(sha1_collision EXCLUDE_FROM_ALL sha1_collision.cpp word.cpp)
 target_link_libraries(sha1_collision cvc4)
+add_dependencies(examples sha1_collision)
 
-set_target_properties(sha1_inversion sha1_collision
+set_target_properties(sha1_collision
   PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${EXAMPLES_HASHSMT_BIN_DIR})
index 49e02861445cca8f2deda522b899a8922530344c..3527074558c4d02b54f82cb78880ef479122f67f 100644 (file)
@@ -22,7 +22,6 @@
  *      Author: dejan
  */
 
-#include <boost/uuid/sha1.hpp>
 #include <fstream>
 #include <iostream>
 #include <sstream>
index 2b1a849dedce5ad66301707a9df8bbaa73a2ecbc..19317604c483760cdf82d2cf64bd6c571aeaa841 100644 (file)
@@ -1,8 +1,19 @@
-set(EXAMPLES_NRA_TRANSLATE_BIN_DIR ${EXAMPLES_BIN_DIR}/nra-translate) 
+set(EXAMPLES_NRA_TRANSLATE_BIN_DIR ${EXAMPLES_BIN_DIR}/nra-translate)
+
+set(CVC4_EXAMPLES_NRA_TRANSLATE
+  normalize
+  smt2info
+  smt2todreal
+  smt2toisat
+  smt2tomathematica
+  smt2toqepcad
+  smt2toredlog
+)
 
 foreach(example ${CVC4_EXAMPLES_NRA_TRANSLATE})
   add_executable(${example} EXCLUDE_FROM_ALL ${example}.cpp)
   target_link_libraries(${example} cvc4 cvc4parser)
   set_target_properties(${example}
     PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${EXAMPLES_NRA_TRANSLATE_BIN_DIR})
+  add_dependencies(examples ${example})
 endforeach()
index fcbb8e3c8cd6e7d2dd75811068f566c9d13a1444..bcf220f32f244dfd81b70a6893e1fbe7054ca95b 100644 (file)
@@ -1,11 +1,16 @@
-set(EXAMPLES_SETS_TRANSLATE_BIN_DIR ${EXAMPLES_BIN_DIR}/sets-translate) 
+set(EXAMPLES_SETS_TRANSLATE_BIN_DIR ${EXAMPLES_BIN_DIR}/sets-translate)
 
-add_executable(sets2arrays EXCLUDE_FROM_ALL sets_translate.cpp)
-target_link_libraries(sets2arrays cvc4 cvc4parser)
+if(Boost_FOUND)
+  add_executable(sets2arrays EXCLUDE_FROM_ALL sets_translate.cpp)
+  target_link_libraries(sets2arrays cvc4 cvc4parser)
+  add_dependencies(examples sets2arrays)
 
-add_executable(sets2axioms EXCLUDE_FROM_ALL sets_translate.cpp)
-target_compile_definitions(sets2axioms PRIVATE -DENABLE_AXIOMS)
-target_link_libraries(sets2axioms cvc4 cvc4parser)
+  add_executable(sets2axioms EXCLUDE_FROM_ALL sets_translate.cpp)
+  target_compile_definitions(sets2axioms PRIVATE -DENABLE_AXIOMS)
+  target_link_libraries(sets2axioms cvc4 cvc4parser)
+  add_dependencies(examples sets2axioms)
+
+  set_target_properties(sets2arrays sets2axioms
+    PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${EXAMPLES_SETS_TRANSLATE_BIN_DIR})
+endif()
 
-set_target_properties(sets2arrays sets2axioms
-  PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${EXAMPLES_SETS_TRANSLATE_BIN_DIR})