commit cmake file

This commit is contained in:
xueyan hu
2022-01-24 10:13:01 +08:00
parent b2842e622c
commit 921779f9e7
2 changed files with 98 additions and 0 deletions

6
.gitignore vendored Normal file
View File

@@ -0,0 +1,6 @@
/build/
/.vs/
/thirdparty/
/x64/
/.svn

92
CMakeLists.txt Normal file
View File

@@ -0,0 +1,92 @@
cmake_minimum_required(VERSION 2.8)
set(PROJECT_NAME CACHE STRING "project" )
option(ENABLE_QT "ENABLE QT" ON)
project(OmegaV)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
file(GLOB_RECURSE project_headers src/*.h)
file(GLOB_RECURSE project_cpps src/*.cpp)
file(GLOB_RECURSE project_cxx src/*.cxx)
file(GLOB_RECURSE project_cc src/*.cc)
include_directories(
${CMAKE_BINARY_DIR}
${CMAKE_SOURCE_DIR}/src/include
${CMAKE_SOURCE_DIR}/src/include/base
${CMAKE_SOURCE_DIR}/src/include/callback
${CMAKE_SOURCE_DIR}/src/include/dialog
${CMAKE_SOURCE_DIR}/src/include/export
${CMAKE_SOURCE_DIR}/src/include/global
${CMAKE_SOURCE_DIR}/src/include/measure
${CMAKE_SOURCE_DIR}/src/include/view
${CMAKE_SOURCE_DIR}/src/include/view/subview
${CMAKE_SOURCE_DIR}/src/include/cine
${CMAKE_SOURCE_DIR}/src/include/util
)
add_subdirectory(thirdparty)
set(VTK_DIR "E:/3-Library/VTK-8.2.0/VTK/lib/cmake/vtk-8.2")
set(Qt5_DIR "D:/Qt/Qt5.12.0/5.12.0/msvc2017_64/lib/cmake/Qt5")
set(ITK_DIR "E:/3-Library/InsightToolkit-4.12.0/ITK/lib/cmake/ITK-4.12")
set(DCMTK_DIR "E:/3-Library/Dcmtk-3.6.4/DCMTK/cmake")
set(ITK_RUNTIME_DIRS "E:/3-Library/InsightToolkit-4.12.0/ITK/bin")
set(DCMTK_RUNTIME_DIRS "E:/3-Library/Dcmtk-3.6.4/DCMTK/bin")
set(DCM_NETWORK_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/thirdparty/dcm_network)
set(DCM_NETWORK_RUNTIME_DIRS ${CMAKE_BINARY_DIR}/thirdparty/dcm_network)
set(ENABLE_QT ON)
source_group(TREE ${CMAKE_SOURCE_DIR} FILES ${project_headers})
source_group(TREE ${CMAKE_SOURCE_DIR} FILES ${project_cpps})
source_group(TREE ${CMAKE_SOURCE_DIR} FILES ${project_cxx})
source_group(TREE ${CMAKE_SOURCE_DIR} FILES ${project_cc})
if(ENABLE_QT)
message(${ENABLE_QT})
find_package(Qt5 COMPONENTS Core Widgets Gui OpenGL REQUIRED)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
file(GLOB project_uis ./src/form/*.ui)
qt5_wrap_ui(ui_FILES ${project_uis})
file(GLOB project_res ./src/*.qrc)
source_group(TREE ${CMAKE_SOURCE_DIR} FILES ${project_uis})
source_group(TREE ${CMAKE_SOURCE_DIR} FILES ${project_res})
add_executable(${PROJECT_NAME} ${project_headers} ${project_cpps} ${project_cxx} ${project_res} ${project_cc} ${ui_FILES})
target_link_libraries(${PROJECT_NAME} Qt5::Core Qt5::Widgets Qt5::Gui Qt5::OpenGL)
else(ENABLE_QT)
add_executable(${PROJECT_NAME} ${project_headers} ${project_cpps} ${project_cxx} ${project_cc})
endif(ENABLE_QT)
find_package(VTK REQUIRED)
include(${VTK_USE_FILE})
target_link_libraries(${PROJECT_NAME} ${VTK_LIBRARIES})
find_package(ITK REQUIRED)
include(${ITK_USE_FILE})
target_link_libraries(${PROJECT_NAME} ${ITK_LIBRARIES})
find_package(DCMTK REQUIRED)
include_directories(${DCMTK_INCLUDE_DIRS})
if(DCMTK_LIBRARIES)
target_link_libraries(${PROJECT_NAME} ${DCMTK_LIBRARIES})
endif()
if(MSVC)
set_target_properties(${PROJECT_NAME} PROPERTIES VS_DEBUGGER_ENVIRONMENT "path=${VTK_RUNTIME_DIRS};${Qt5_DIR}/../../../bin/;${ITK_RUNTIME_DIRS};${DCMTK_RUNTIME_DIRS};${DCM_NETWORK_RUNTIME_DIRS}/$<CONFIG>")
endif(MSVC)
include_directories(${DCM_NETWORK_INCLUDE_DIRS})
target_link_libraries(${PROJECT_NAME} dcm_network)
add_dependencies(${PROJECT_NAME} dcm_network)
set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS_DEBUG "/SUBSYSTEM:CONSOLE")
set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS_RELEASE "/SUBSYSTEM:WINDOWS")
#set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS_RELEASE "/level='requireAdministrator' /uiAccess='false'")