Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F27037320
CMakeLists.txt
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Authored By
Unknown
Size
2 KB
Referenced Files
None
Subscribers
None
CMakeLists.txt
View Options
cmake_minimum_required(VERSION 3.8)
project(mockturtle LANGUAGES CXX)
set(MOCKTURTLE_CXX_STANDARD "17" CACHE STRING "C++ standard")
set(CMAKE_CXX_STANDARD ${MOCKTURTLE_CXX_STANDARD})
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# Options
option(MOCKTURTLE_EXAMPLES "Build examples" ON)
option(MOCKTURTLE_TEST "Build tests" OFF)
option(MOCKTURTLE_EXPERIMENTS "Build experiments" OFF)
option(BILL_Z3 "Enable Z3 interface for bill library" OFF)
option(ENABLE_COVERAGE "Enable coverage reporting for gcc/clang" OFF)
option(ENABLE_MATPLOTLIB "Enable matplotlib library in experiments" OFF)
option(ENABLE_NAUTY "Enable the Nauty library for percy" OFF)
option(ENABLE_ABC "Enable linking ABC as a static library" OFF)
option(ENABLE_CACHE_STATS "Enable cache stats" OFF)
if(UNIX)
# show quite some warnings (but remove some intentionally)
include(CheckCXXCompilerFlag)
add_compile_options(-W -Wall -Wextra)
foreach (WARNING unknown-pragmas gnu-anonymous-struct nested-anon-types)
check_cxx_compiler_flag("-Wno-${WARNING}" HAS_WNO_${WARNING})
if (HAS_WNO_${WARNING})
add_compile_options(-Wno-${WARNING})
endif()
endforeach()
if (ENABLE_COVERAGE)
add_compile_options(-O0 -g --coverage -fprofile-arcs -ftest-coverage)
endif()
endif()
if(MSVC)
add_compile_options(/EHsc /bigobj)
endif()
if (WIN32)
set(ENABLE_NAUTY OFF)
endif()
add_subdirectory(include)
add_subdirectory(lib)
add_subdirectory(src)
if(ENABLE_NAUTY)
add_definitions(-DENABLE_NAUTY)
endif()
if (ENABLE_ABC)
if (NOT EXISTS ${PROJECT_SOURCE_DIR}/lib/abc_static/libabc.a)
message(FATAL_ERROR "Cannot find libabc.a in lib/abc_static/. For more info, see https://github.com/lsils/abc-staticlib")
endif()
endif()
############################################# Generate Doxygen Documentation
# Option to build docs
option(BUILD_DOC "Build API documentation with Doxygen" ON)
if(BUILD_DOC)
find_package(Doxygen QUIET)
if(NOT DOXYGEN_FOUND)
message(WARNING "Doxygen not found. Set BUILD_DOC=OFF or install Doxygen.")
else()
# Graphviz (dot) for diagrams — optional
find_program(DOT_EXE dot)
set(DOXYGEN_HAVE_DOT "NO")
if(DOT_EXE)
set(DOXYGEN_HAVE_DOT "YES")
endif()
configure_file(
"${CMAKE_SOURCE_DIR}/Doxyfile.in"
"${CMAKE_BINARY_DIR}/Doxyfile"
@ONLY
)
# docs target
add_custom_target(docs
COMMAND "${DOXYGEN_EXECUTABLE}" "${CMAKE_BINARY_DIR}/Doxyfile"
WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
COMMENT "Generating API documentation with Doxygen"
VERBATIM
)
# Optional: convenience target to clean generated docs
add_custom_target(docs-clean
COMMAND "${CMAKE_COMMAND}" -E rm -rf "${DOXYGEN_OUTPUT_DIR}"
COMMENT "Removing generated documentation in ${DOXYGEN_OUTPUT_DIR}"
VERBATIM
)
endif()
endif()
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Tue, Oct 27, 8:37 PM (11 h, 28 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
405020
Default Alt Text
CMakeLists.txt (2 KB)
Attached To
Mode
R272 SoC_NEM_Synthesis
Attached
Detach File
Event Timeline