-
-
Save devpikachu/990c86607abcca49119d544d5827185d to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
##################### ROOT PROJECT ##################### | |
cmake_minimum_required(VERSION 3.17) | |
project(OmniliumKnox VERSION 0.1) | |
configure_file(Config.h.in core/include/Config.h) | |
set(CMAKE_CXX_STANDARD 17) | |
set(CMAKE_CXX_STANDARD_REQUIRED True) | |
ADD_DEFINITIONS(-DUNICODE) | |
ADD_DEFINITIONS(-D_UNICODE) | |
add_subdirectory(core) | |
add_subdirectory(knoxcli) | |
add_subdirectory(knox) | |
##################### Core ##################### | |
set(LIB_NAME Core) | |
add_compile_definitions(CORE_EXPORTS=1) | |
set(PRIVATE_H_FOLDER "${CMAKE_CURRENT_SOURCE_DIR}/private") | |
set(CPP_FILES | |
"Core.cpp" | |
"Logging.cpp" | |
"Utils.cpp" | |
"dllmain.cpp" | |
"RAIITemplates.cpp" | |
"MappedFile.cpp" | |
) | |
set(PUBLIC_H_FILES | |
"Core.h" | |
"Logging.h" | |
"Utils.h" | |
"RAIITemplates.h" | |
"MappedFile.h" | |
) | |
set(PRIVATE_H_FILES | |
"${PRIVATE_H_FOLDER}/pch.h" | |
) | |
add_library(${LIB_NAME} SHARED | |
${CPP_FILES} | |
${PUBLIC_H_FILES} | |
${PRIVATE_H_FILES} | |
) | |
target_include_directories(${LIB_NAME} PUBLIC | |
"${PROJECT_BINARY_DIR}" | |
"${CMAKE_CURRENT_SOURCE_DIR}" | |
) | |
target_include_directories(${LIB_NAME} PRIVATE | |
"${PRIVATE_H_FOLDER}" | |
) | |
target_precompile_headers(${LIB_NAME} PRIVATE | |
"${PRIVATE_H_FOLDER}/pch.h" | |
) | |
install(TARGETS ${LIB_NAME} | |
RUNTIME DESTINATION bin | |
) | |
##################### KnoxCLI ##################### | |
set(EXE_NAME KnoxCLI) | |
set(PRIVATE_H_FOLDER "${CMAKE_CURRENT_SOURCE_DIR}/private") | |
set(CPP_FILES | |
"KnoxCLI.cpp" | |
) | |
set(PRIVATE_H_FILES | |
"${PRIVATE_H_FOLDER}/pch.h" | |
"${PRIVATE_H_FOLDER}/Resources.h" | |
) | |
add_executable(${EXE_NAME} | |
${CPP_FILES} | |
${PRIVATE_H_FILES} | |
"app.rc") | |
target_include_directories(${EXE_NAME} PRIVATE | |
"${CMAKE_CURRENT_SOURCE_DIR}" | |
"${PRIVATE_H_FOLDER}" | |
) | |
target_precompile_headers(${EXE_NAME} PRIVATE | |
"private/pch.h" | |
) | |
target_link_libraries(${EXE_NAME} PUBLIC | |
Core | |
) | |
install(TARGETS ${EXE_NAME} | |
DESTINATION bin | |
) | |
##################### Knox ##################### | |
include(cmake/App.cmake) | |
set(EXE_NAME Knox) | |
set(PRIVATE_H_FOLDER "${CMAKE_CURRENT_SOURCE_DIR}/private") | |
set(CPP_FILES | |
"main.cpp" | |
"Knox.cpp" | |
) | |
set(PUBLIC_H_FILES | |
"Knox.h" | |
) | |
set(PRIVATE_H_FILES | |
"${PRIVATE_H_FOLDER}/pch.h" | |
"${PRIVATE_H_FOLDER}/Resources.h" | |
) | |
set(ASSETS | |
"app.rc" | |
"app.ico" | |
"assets/app.html" | |
) | |
set(SOURCE_FILES | |
${CPP_FILES} | |
${PUBLIC_H_FILES} | |
${PRIVATE_H_FILES} | |
${ASSETS} | |
) | |
set(ENABLE_INSPECTOR True) | |
add_app(${EXE_NAME} "${SOURCE_FILES}") | |
target_include_directories(${EXE_NAME} PRIVATE | |
"${CMAKE_CURRENT_SOURCE_DIR}" | |
"${PRIVATE_H_FOLDER}" | |
) | |
target_precompile_headers(Knox PRIVATE | |
"${PRIVATE_H_FOLDER}/pch.h" | |
) | |
target_link_libraries(${EXE_NAME} Core) | |
install(TARGETS ${EXE_NAME} | |
DESTINATION bin | |
) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment