From 63471af8b46cdb44aa45e3181f7ea2215753e090 Mon Sep 17 00:00:00 2001 From: _xeroxz <_xeroxz@back.engineer> Date: Mon, 10 Jan 2022 22:53:54 -0800 Subject: [PATCH] updated cmkr files and deps... LLVM builds faster now, unicorn-engine builds faster too.. --- CMakeLists.txt | 89 +++++++++++++++++++++++++++++++++++++++++++++ cmake.toml | 37 +++++++++++++++++++ deps/CMakeLists.txt | 28 ++++++++++++++ deps/cmake.toml | 2 + deps/vmemu | 2 +- src/main.cpp | 4 +- 6 files changed, 160 insertions(+), 2 deletions(-) create mode 100644 CMakeLists.txt create mode 100644 deps/CMakeLists.txt create mode 100644 deps/cmake.toml diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..47dac77 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,89 @@ +# This file is automatically generated from cmake.toml - DO NOT EDIT +# See https://github.com/build-cpp/cmkr for more information + +cmake_minimum_required(VERSION 3.15) + +# Regenerate CMakeLists.txt automatically in the root project +set(CMKR_ROOT_PROJECT OFF) +if(CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR) + set(CMKR_ROOT_PROJECT ON) + + # Bootstrap cmkr + include(cmkr.cmake OPTIONAL RESULT_VARIABLE CMKR_INCLUDE_RESULT) + if(CMKR_INCLUDE_RESULT) + cmkr() + endif() + + # Enable folder support + set_property(GLOBAL PROPERTY USE_FOLDERS ON) +endif() + +# Create a configure-time dependency on cmake.toml to improve IDE support +if(CMKR_ROOT_PROJECT) + configure_file(cmake.toml cmake.toml COPYONLY) +endif() + + set(LLVM_TARGETS_TO_BUILD X86) + set(LLVM_INCLUDE_TESTS OFF) + set(LLVM_INCLUDE_EXAMPLES OFF) + +project(vmdevirt) + +# deps +set(CMKR_CMAKE_FOLDER ${CMAKE_FOLDER}) +if(CMAKE_FOLDER) + set(CMAKE_FOLDER "${CMAKE_FOLDER}/deps") +else() + set(CMAKE_FOLDER deps) +endif() +add_subdirectory(deps) +set(CMAKE_FOLDER ${CMKR_CMAKE_FOLDER}) + +# Target vmdevirt +set(CMKR_TARGET vmdevirt) +set(vmdevirt_SOURCES "") + +list(APPEND vmdevirt_SOURCES + "src/main.cpp" +) + +list(APPEND vmdevirt_SOURCES + cmake.toml +) + +set(CMKR_SOURCES ${vmdevirt_SOURCES}) +add_executable(vmdevirt) + +if(vmdevirt_SOURCES) + target_sources(vmdevirt PRIVATE ${vmdevirt_SOURCES}) +endif() + +get_directory_property(CMKR_VS_STARTUP_PROJECT DIRECTORY ${PROJECT_SOURCE_DIR} DEFINITION VS_STARTUP_PROJECT) +if(NOT CMKR_VS_STARTUP_PROJECT) + set_property(DIRECTORY ${PROJECT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT vmdevirt) +endif() + +source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${vmdevirt_SOURCES}) + +target_include_directories(vmdevirt PRIVATE + include +) + +target_link_libraries(vmdevirt PRIVATE + LLVMCore + LLVMCodeGen + LLVMSupport + LLVMLinker + LLVMX86CodeGen + LLVMX86AsmParser + LLVMX86Desc + LLVMX86Disassembler + LLVMX86Info + LLVMAsmParser + LLVMPasses + vmemu +) + +unset(CMKR_TARGET) +unset(CMKR_SOURCES) + diff --git a/cmake.toml b/cmake.toml index e69de29..66cf6d3 100644 --- a/cmake.toml +++ b/cmake.toml @@ -0,0 +1,37 @@ +[project] +name = "vmdevirt" + +cmake-before = """ + set(LLVM_TARGETS_TO_BUILD X86) + set(LLVM_INCLUDE_TESTS OFF) + set(LLVM_INCLUDE_EXAMPLES OFF) +""" + +[subdir.deps] + +[target.vmdevirt] +type = "executable" + +sources = [ + "src/**.cpp", + "include/**.hpp" +] + +include-directories = [ + "include" +] + +link-libraries = [ + "LLVMCore", + "LLVMCodeGen", + "LLVMSupport", + "LLVMLinker", + "LLVMX86CodeGen", + "LLVMX86AsmParser", + "LLVMX86Desc", + "LLVMX86Disassembler", + "LLVMX86Info", + "LLVMAsmParser", + "LLVMPasses", + "vmemu" +] \ No newline at end of file diff --git a/deps/CMakeLists.txt b/deps/CMakeLists.txt new file mode 100644 index 0000000..8972227 --- /dev/null +++ b/deps/CMakeLists.txt @@ -0,0 +1,28 @@ +# This file is automatically generated from cmake.toml - DO NOT EDIT +# See https://github.com/build-cpp/cmkr for more information + +# Create a configure-time dependency on cmake.toml to improve IDE support +if(CMKR_ROOT_PROJECT) + configure_file(cmake.toml cmake.toml COPYONLY) +endif() + +# llvm-project/llvm +set(CMKR_CMAKE_FOLDER ${CMAKE_FOLDER}) +if(CMAKE_FOLDER) + set(CMAKE_FOLDER "${CMAKE_FOLDER}/llvm-project/llvm") +else() + set(CMAKE_FOLDER "llvm-project/llvm") +endif() +add_subdirectory("llvm-project/llvm") +set(CMAKE_FOLDER ${CMKR_CMAKE_FOLDER}) + +# vmemu +set(CMKR_CMAKE_FOLDER ${CMAKE_FOLDER}) +if(CMAKE_FOLDER) + set(CMAKE_FOLDER "${CMAKE_FOLDER}/vmemu") +else() + set(CMAKE_FOLDER vmemu) +endif() +add_subdirectory(vmemu) +set(CMAKE_FOLDER ${CMKR_CMAKE_FOLDER}) + diff --git a/deps/cmake.toml b/deps/cmake.toml new file mode 100644 index 0000000..1d3d148 --- /dev/null +++ b/deps/cmake.toml @@ -0,0 +1,2 @@ +[subdir."llvm-project/llvm"] +[subdir.vmemu] \ No newline at end of file diff --git a/deps/vmemu b/deps/vmemu index 6755dd4..97434e4 160000 --- a/deps/vmemu +++ b/deps/vmemu @@ -1 +1 @@ -Subproject commit 6755dd4c1536254de5042670879db9f93a9507ce +Subproject commit 97434e4388e952d62d7ad76d3a33da144d9b3e3d diff --git a/src/main.cpp b/src/main.cpp index edd0a82..bda7820 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1 +1,3 @@ -// private entity \ No newline at end of file +#include + +int main() { printf("> hello world!\n"); } \ No newline at end of file