blob: 6461705a11953d0c87c84217b57da966e682591c [file] [log] [blame]
# =============================================================================
# CMake module defining the Symbex project
# =============================================================================
message (STATUS "****** Defining project******")
# Definition of project name and supported languages
project (Symbex CXX C)
# Project structure : only add directories associated with the build of an
# internal library (i.e. containing a CMakeLists.txt defining a target)
# Sources within subdirectories are taken into account by the recursive
# look-up (see the specific CMakeLists.txt)
add_subdirectory (base)
add_subdirectory (builder)
add_subdirectory (collection)
add_subdirectory (common)
add_subdirectory (computer)
add_subdirectory (fam)
add_subdirectory (fml)
add_subdirectory (parser)
add_subdirectory (printer)
add_subdirectory (sew)
add_subdirectory (solver)
add_subdirectory (util)
# Main target C++ source files (all files matching patterns)
file (GLOB_RECURSE MAIN_CXX_SRC_FILES main/*.cpp main/*.h)
# Main target definition (association to its sources)
add_executable (symbex ${MAIN_CXX_SRC_FILES})
# Adhoc dependencies to force builds from sources (if a prerequisite is not found)
add_dependencies(symbex rescan_cvc4)
add_dependencies(symbex rescan_antlr2)
# Main target link - FIXME : duplicate fml and fam needed to link sucessfully
target_link_libraries (symbex sew parser fam fml fam builder solver computer fml common base collection printer util ${ANTLR2_LIBRARIES} ${ANTLR3_LIBRARIES} ${Boost_LIBRARIES} ${CVC4_LIBRARIES} ${lib_gmp_c} ${lib_gmp_cxx})