import textwrap


def generate_case_cmake(executable_name: str) -> str:
    """
    Generate the CMakeLists.txt corresponding to the given test case.

    :param executable_name:
        name of the executable that parses and serializes an input file.
    :return: generated cmake code
    """
    # Link all potentially needed libraries even if unused by the executable.
    #
    # This way we do not have to complicate the code unnecessarily and
    # check programmatically whether these libraries are really needed
    # by the executable.
    return textwrap.dedent(
        '''\
        add_executable({executable_name}
            parse_serialize.cpp
            types.h
            parse.h
            parse.cpp
            jsoncpp.h
            jsoncpp.cpp)
        target_link_libraries({executable_name}
            CONAN_PKG::jsoncpp
            CONAN_PKG::boost
            tz)
        '''.format(executable_name=executable_name))