msvc: Use source folder structure for project file.
This patch changes the huge list of projects in visual studio into a nice tree matching the source folder structure. see D2823 for details. Differential Revision: http://developer.blender.org/D2823
This commit is contained in:
parent
a5052770b8
commit
36c1122b96
|
@ -544,6 +544,9 @@ if(WIN32)
|
|||
|
||||
set(WINDOWS_CODESIGN_PFX_PASSWORD CACHE STRING "password for pfx file used for codesigning.")
|
||||
mark_as_advanced(WINDOWS_CODESIGN_PFX_PASSWORD)
|
||||
|
||||
option(WINDOWS_USE_VISUAL_STUDIO_FOLDERS "Organize the visual studio project according to source folders." ON)
|
||||
mark_as_advanced(WINDOWS_USE_VISUAL_STUDIO_FOLDERS)
|
||||
endif()
|
||||
|
||||
# avoid using again
|
||||
|
|
|
@ -242,6 +242,13 @@ function(blender_add_lib__impl
|
|||
# listed is helpful for IDE's (QtCreator/MSVC)
|
||||
blender_source_group("${sources}")
|
||||
|
||||
#if enabled, set the FOLDER property for visual studio projects
|
||||
if(WINDOWS_USE_VISUAL_STUDIO_FOLDERS)
|
||||
get_filename_component(FolderDir ${CMAKE_CURRENT_SOURCE_DIR} DIRECTORY)
|
||||
string(REPLACE ${CMAKE_SOURCE_DIR} "" FolderDir ${FolderDir})
|
||||
set_target_properties(${name} PROPERTIES FOLDER ${FolderDir})
|
||||
endif()
|
||||
|
||||
list_assert_duplicates("${sources}")
|
||||
list_assert_duplicates("${includes}")
|
||||
# Not for system includes because they can resolve to the same path
|
||||
|
|
|
@ -31,6 +31,12 @@ endif()
|
|||
|
||||
# Libraries configuration for Windows when compiling with MSVC.
|
||||
|
||||
set_property(GLOBAL PROPERTY USE_FOLDERS ${WINDOWS_USE_VISUAL_STUDIO_FOLDERS})
|
||||
|
||||
if(NOT WITH_PYTHON_MODULE)
|
||||
set_property(DIRECTORY PROPERTY VS_STARTUP_PROJECT blender)
|
||||
endif()
|
||||
|
||||
macro(warn_hardcoded_paths package_name
|
||||
)
|
||||
if(WITH_WINDOWS_FIND_MODULES)
|
||||
|
|
|
@ -9,6 +9,7 @@ endif()
|
|||
# External Libraries
|
||||
|
||||
include(cmake/external_libs.cmake)
|
||||
include(cmake/macros.cmake)
|
||||
|
||||
# Build Flags
|
||||
# todo: this code could be refactored a bit to avoid duplication
|
||||
|
|
|
@ -34,4 +34,4 @@ set(SRC_HEADERS
|
|||
include_directories(${INC})
|
||||
include_directories(SYSTEM ${INC_SYS})
|
||||
|
||||
add_library(cycles_bvh ${SRC} ${SRC_HEADERS})
|
||||
cycles_add_library(cycles_bvh ${SRC} ${SRC_HEADERS})
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
function(cycles_set_solution_folder target)
|
||||
if(WINDOWS_USE_VISUAL_STUDIO_FOLDERS)
|
||||
get_filename_component(folderdir ${CMAKE_CURRENT_SOURCE_DIR} DIRECTORY)
|
||||
string(REPLACE ${CMAKE_SOURCE_DIR} "" folderdir ${folderdir})
|
||||
set_target_properties(${target} PROPERTIES FOLDER ${folderdir})
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
macro(cycles_add_library target)
|
||||
add_library(${target} ${ARGN})
|
||||
cycles_set_solution_folder(${target})
|
||||
endmacro()
|
|
@ -77,4 +77,4 @@ endif()
|
|||
include_directories(${INC})
|
||||
include_directories(SYSTEM ${INC_SYS})
|
||||
|
||||
add_library(cycles_device ${SRC} ${SRC_OPENCL} ${SRC_HEADERS})
|
||||
cycles_add_library(cycles_device ${SRC} ${SRC_OPENCL} ${SRC_HEADERS})
|
||||
|
|
|
@ -19,5 +19,5 @@ set(SRC_HEADERS
|
|||
include_directories(${INC})
|
||||
include_directories(SYSTEM ${INC_SYS})
|
||||
|
||||
add_library(cycles_graph ${SRC} ${SRC_HEADERS})
|
||||
cycles_add_library(cycles_graph ${SRC} ${SRC_HEADERS})
|
||||
|
||||
|
|
|
@ -435,6 +435,7 @@ if(WITH_CYCLES_CUDA_BINARIES)
|
|||
endforeach()
|
||||
|
||||
add_custom_target(cycles_kernel_cuda ALL DEPENDS ${cuda_cubins})
|
||||
cycles_set_solution_folder(cycles_kernel_cuda)
|
||||
endif()
|
||||
|
||||
# OSL module
|
||||
|
@ -477,7 +478,7 @@ if(CXX_HAS_AVX2)
|
|||
set_source_files_properties(kernels/cpu/filter_avx2.cpp PROPERTIES COMPILE_FLAGS "${CYCLES_AVX2_KERNEL_FLAGS}")
|
||||
endif()
|
||||
|
||||
add_library(cycles_kernel
|
||||
cycles_add_library(cycles_kernel
|
||||
${SRC_CPU_KERNELS}
|
||||
${SRC_CUDA_KERNELS}
|
||||
${SRC_OPENCL_KERNELS}
|
||||
|
|
|
@ -30,5 +30,5 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${RTTI_DISABLE_FLAGS}")
|
|||
include_directories(${INC})
|
||||
include_directories(SYSTEM ${INC_SYS})
|
||||
|
||||
add_library(cycles_kernel_osl ${SRC} ${HEADER_SRC})
|
||||
cycles_add_library(cycles_kernel_osl ${SRC} ${HEADER_SRC})
|
||||
|
||||
|
|
|
@ -104,6 +104,7 @@ set(SRC_OSO
|
|||
# TODO, add a module to compile OSL
|
||||
foreach(_file ${SRC_OSL})
|
||||
set(_OSL_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${_file})
|
||||
set_source_files_properties(${_file} PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
string(REPLACE ".osl" ".oso" _OSO_FILE ${_OSL_FILE})
|
||||
string(REPLACE ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} _OSO_FILE ${_OSO_FILE})
|
||||
add_custom_command(
|
||||
|
@ -118,7 +119,8 @@ foreach(_file ${SRC_OSL})
|
|||
unset(_OSO_FILE)
|
||||
endforeach()
|
||||
|
||||
add_custom_target(cycles_osl_shaders ALL DEPENDS ${SRC_OSO} ${SRC_OSL_HEADERS} ${OSL_COMPILER})
|
||||
add_custom_target(cycles_osl_shaders ALL DEPENDS ${SRC_OSO} ${SRC_OSL_HEADERS} ${OSL_COMPILER} SOURCES ${SRC_OSL})
|
||||
cycles_set_solution_folder(cycles_osl_shaders)
|
||||
|
||||
# CMAKE_CURRENT_SOURCE_DIR is already included in OSO paths
|
||||
delayed_install("" "${SRC_OSO}" ${CYCLES_INSTALL_PATH}/shader)
|
||||
|
|
|
@ -71,4 +71,4 @@ include_directories(SYSTEM ${INC_SYS})
|
|||
|
||||
add_definitions(${GL_DEFINITIONS})
|
||||
|
||||
add_library(cycles_render ${SRC} ${SRC_HEADERS})
|
||||
cycles_add_library(cycles_render ${SRC} ${SRC_HEADERS})
|
||||
|
|
|
@ -24,4 +24,4 @@ set(SRC_HEADERS
|
|||
include_directories(${INC})
|
||||
include_directories(SYSTEM ${INC_SYS})
|
||||
|
||||
add_library(cycles_subd ${SRC} ${SRC_HEADERS})
|
||||
cycles_add_library(cycles_subd ${SRC} ${SRC_HEADERS})
|
||||
|
|
|
@ -127,4 +127,4 @@ include_directories(SYSTEM ${INC_SYS})
|
|||
|
||||
add_definitions(${GL_DEFINITIONS})
|
||||
|
||||
add_library(cycles_util ${SRC} ${SRC_HEADERS})
|
||||
cycles_add_library(cycles_util ${SRC} ${SRC_HEADERS})
|
||||
|
|
Loading…
Reference in New Issue