bison_target(ginsh_parser ginsh_parser.ypp ${CMAKE_CURRENT_BINARY_DIR}/ginsh_parser.cpp) flex_target(ginsh_lexer ginsh_lexer.lpp ${CMAKE_CURRENT_BINARY_DIR}/ginsh_lexer.cpp) add_flex_bison_dependency(ginsh_lexer ginsh_parser) set(ginsh_SOURCES ginsh_parser.cpp ginsh_lexer.cpp ) set(ginsh_HEADERS ginsh_parser.hpp ginsh.h ginsh_fcn_help.h ginsh_op_help.h ) set(ginsh_DISTRIB ${ginsh_SOURCES} ${ginsh_HEADERS} ginsh_parser.ypp ginsh_lexer.lpp ginsh.1.in ginsh_fcn_help.py ginsh_op_help.py ) set(ginsh_include_directories ${CMAKE_CURRENT_BINARY_DIR}/.. ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}) if (READLINE_FOUND) set(ginsh_include_directories ${ginsh_include_directories} ${READLINE_INCLUDE_DIRS}) endif() add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ginsh_fcn_help.h COMMAND ${PYTHON} ${CMAKE_CURRENT_SOURCE_DIR}/ginsh_fcn_help.py -o ginsh_fcn_help.h ${CMAKE_CURRENT_SOURCE_DIR}/ginsh.1.in DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/ginsh.1.in ${CMAKE_CURRENT_SOURCE_DIR}/ginsh_fcn_help.py WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ginsh_op_help.h COMMAND ${PYTHON} ${CMAKE_CURRENT_SOURCE_DIR}/ginsh_op_help.py -o ginsh_op_help.h ${CMAKE_CURRENT_SOURCE_DIR}/ginsh.1.in DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/ginsh.1.in ${CMAKE_CURRENT_SOURCE_DIR}/ginsh_op_help.py WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ginsh_parser.hpp DEPENDS ${BISON_ginsh_parser_OUTPUTS} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) set(ginsh_extra_libs) if (READLINE_FOUND) set(ginsh_extra_libs ${READLINE_LIBRARIES}) endif() add_executable(ginsh ${ginsh_SOURCES} ${ginsh_HEADERS}) target_link_libraries(ginsh ginac::ginac ${ginsh_extra_libs}) target_include_directories(ginsh PRIVATE ${ginsh_include_directories}) target_compile_definitions(ginsh PRIVATE HAVE_CONFIG_H) install(TARGETS ginsh RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")