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 шт):
Я нашел то что искал - мне помог простой скрипт на питоне: 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)