| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 | import osinstalled = [    {        "name":"fmt"    },    {        "name":"zlmediakit"    },    {        "name":"Boost",        "child":[            {                "name":"json"            }        ]    },]cmake_lines = []cmake_finds = []cmake_links = []cmake_lines.append(f'cmake_minimum_required(VERSION 4.0)\n')cmake_lines.append(f'project(jtjai_media)\n')cmake_lines.append(f'set(CMAKE_CXX_STANDARD 11)\n')for lib in installed:    childs = lib.get("child", [])    if  len(childs) > 0:        child_names = [child["name"] for child in childs]        cmake_finds.append(            f'find_package({lib["name"]} COMPONENTS {" ".join(child_names)} REQUIRED)\n'        )        link_components = " ".join(f'{lib["name"]}::{name}' for name in child_names)        cmake_links.append(f'target_link_libraries(jtjai_media PRIVATE {link_components})\n')    else:        cmake_finds.append(f'find_package({lib["name"]} CONFIG REQUIRED)\n')        cmake_links.append(f'target_link_libraries(jtjai_media PRIVATE {lib["name"]}::{lib["name"]})\n')for line in cmake_finds:    cmake_lines.append(line)cmake_lines.append('add_executable(jtjai_media main.cpp)\n')for line in cmake_links:    cmake_lines.append(line)with open('CMakeLists.txt','a') as f:    f.__del__()with open('CMakeLists.txt','w') as f:    f.writelines(cmake_lines)
 |