CMakeLists.txt | Помогите скомпилировать исходный код c++

Имеются исходные коды, как я понял, на C++ https://github.com/fossephate/JoyCon-Driver

Я хочу собрать "exe-шник" с небольшими изменениями в коде, но в C++ разбираюсь на уровне "1++ = 2". То есть никак.

Проект, похоже был собран автором в visual studio. Я клонировал его в CLion от JetBrains, но вот незадача - требуется какой-то файлик CMakeLists.txt. Файлик-то я создал:

cmake_minimum_required(VERSION 3.5)
project(test)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

set(LIBRARY_FILES "libs")
file(GLOB_RECURSE SRC_UI
        "${LIBRARY_FILES}/*.cpp"
        "${LIBRARY_FILES}/*.h"
        )
file(GLOB_RECURSE SRC_IMPORT
        "${LIBRARY_FILES}/*.cpp"
        "${LIBRARY_FILES}/*.h"
        )

add_library(hidapi ${SRC_UI} ${SRC_IMPORT})

set(SOURCE_FILES "src/main.cpp")

add_executable(test ${SOURCE_FILES})

Файлик-то я создал, но после сборки программа не видит библиотеки, вероятно в VisualStudio "зависимости" (подключаемые библиотеки) указывались как-то по другому. Если кто разбирается, помогите пожалуйста, как заполнить этот файлик, чтобы программа запустилась?


Ответы (1 шт):

Автор решения: Goldus

Я нашел то что искал - мне помог простой скрипт на питоне: https://github.com/gns333/Vcxproj2CMake

Преобразует файлы студии (.vcxproj) в файлик CMakeLists.txt.

Честно, до сих пор не понимаю как это работает и мою общую проблему с нехваткой библиотек это не решило, но библиотеки из папки /lib компилятор подтянул, поэтому считаю, что этот ответ имеет право на жизнь.

P.S. Автор не добавил очевидных способов запуска скрипта, как вариант, в конец файлика можно бросить что-то вроде:

if __name__ == "__main__":
    import argparse
    parser = argparse.ArgumentParser(description='Select vcxproj file!')
    parser.add_argument('source_file', help="Link to source file")
    args = parser.parse_args()
    source_file = args.source_file
    filename = source_file.split("/")[-1]
    project_dir = source_file.replace(filename, "")
    generate(vcxprojfile=source_file, vcxprojDir=project_dir)
→ Ссылка