CMake: Add some more libraries

This commit is contained in:
Miodrag Milanovic 2025-02-13 08:57:01 +01:00
parent 3a4d609060
commit 698162d868
3 changed files with 55 additions and 1 deletions

View File

@ -2,6 +2,8 @@ cmake_minimum_required(VERSION 3.13)
project(yosys LANGUAGES CXX C)
set(YOSYS_VER "0.50+1")
list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
include(CheckCXXCompilerFlag)
set(CMAKE_CXX_STANDARD 17)
@ -15,6 +17,10 @@ set(CMAKE_C_EXTENSIONS OFF)
find_package(FLEX 2.6 REQUIRED)
find_package(BISON 3.0 REQUIRED)
find_package(Python3 3.5 REQUIRED COMPONENTS Interpreter)
find_package(ZLIB REQUIRED)
find_package(Readline REQUIRED)
#find_package(Editline REQUIRED)
find_package(TCL 8.6 REQUIRED)
add_executable(yosys)
#target_include_directories(yosys PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
@ -22,6 +28,11 @@ add_executable(yosys)
#target_compile_definitions(yosys PRIVATE _YOSYS_)
include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
add_compile_definitions(_YOSYS_)
add_compile_definitions(YOSYS_ENABLE_READLINE)
#add_compile_definitions(YOSYS_ENABLE_EDITLINE)
add_compile_definitions(YOSYS_ENABLE_TCL)
target_include_directories(yosys PRIVATE ${TCL_INCLUDE_PATH})
add_subdirectory(kernel)
add_subdirectory(libs)
@ -89,4 +100,7 @@ add_subdirectory(techlibs/quicklogic)
add_subdirectory(techlibs/sf2)
add_subdirectory(techlibs/xilinx)
target_link_libraries(yosys PRIVATE z)
target_link_libraries(yosys PRIVATE ZLIB::ZLIB)
target_link_libraries(yosys PRIVATE ${READLINE_LIBRARY})
#target_link_libraries(yosys PRIVATE ${EDITLINE_LIBRARY})
target_link_libraries(yosys PRIVATE ${TCL_LIBRARY})

13
cmake/FindEditline.cmake Normal file
View File

@ -0,0 +1,13 @@
# Modified from FindReadline.cmake (PH Feb 2012)
if(EDITLINE_INCLUDE_DIR AND EDITLINE_LIBRARY)
set(EDITLINE_FOUND TRUE)
else()
find_path(EDITLINE_INCLUDE_DIR readline.h PATH_SUFFIXES editline edit/readline)
find_library(EDITLINE_LIBRARY NAMES edit)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Editline DEFAULT_MSG EDITLINE_INCLUDE_DIR EDITLINE_LIBRARY)
mark_as_advanced(EDITLINE_INCLUDE_DIR EDITLINE_LIBRARY)
endif()

27
cmake/FindReadline.cmake Normal file
View File

@ -0,0 +1,27 @@
# from http://websvn.kde.org/trunk/KDE/kdeedu/cmake/modules/FindReadline.cmake
# http://websvn.kde.org/trunk/KDE/kdeedu/cmake/modules/COPYING-CMAKE-SCRIPTS
# --> BSD licensed
#
# GNU Readline library finder
if(READLINE_INCLUDE_DIR AND READLINE_LIBRARY AND NCURSES_LIBRARY)
set(READLINE_FOUND TRUE)
else()
find_path(READLINE_INCLUDE_DIR readline/readline.h /usr/include/readline)
# 2008-04-22 The next clause used to read like this:
#
# FIND_LIBRARY(READLINE_LIBRARY NAMES readline)
# FIND_LIBRARY(NCURSES_LIBRARY NAMES ncurses )
# include(FindPackageHandleStandardArgs)
# FIND_PACKAGE_HANDLE_STANDARD_ARGS(Readline DEFAULT_MSG NCURSES_LIBRARY READLINE_INCLUDE_DIR READLINE_LIBRARY )
#
# I was advised to modify it such that it will find an ncurses library if
# required, but not if one was explicitly given, that is, it allows the
# default to be overridden. PH
find_library(READLINE_LIBRARY NAMES readline)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Readline DEFAULT_MSG READLINE_INCLUDE_DIR READLINE_LIBRARY)
mark_as_advanced(READLINE_INCLUDE_DIR READLINE_LIBRARY)
endif()