Skip to content
Snippets Groups Projects
Commit d5208828 authored by Wenzel Jakob's avatar Wenzel Jakob
Browse files

CMake fixes contributed by Oliver Klehm

parent 0cb3e6d4
No related branches found
No related tags found
No related merge requests found
......@@ -27,6 +27,36 @@ if (CMAKE_GENERATOR MATCHES "Visual Studio")
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
endif()
# Remove Debug from CMAKE_CONFIGURATION_TYPES as the dependencies do not contain the necessary debug libraries
if(MSVC AND CMAKE_CONFIGURATION_TYPES)
set(CMAKE_CONFIGURATION_TYPES Release MinSizeRel RelWithDebInfo)
set(CMAKE_CONFIGURATION_TYPES "${CMAKE_CONFIGURATION_TYPES}" CACHE STRING
"Remove Debug from available configuration types"
FORCE)
endif()
# make config 'RelWithDebInfo' debuggable by disabling optimizations
if(MSVC)
# /MD link against release libs, /Od disable optimizations, /Ob0
if(CMAKE_C_FLAGS_RELWITHDEBINFO MATCHES "/O2")
string(REGEX REPLACE "/O2" "/Od" CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO}")
endif()
if(CMAKE_CXX_FLAGS_RELWITHDEBINFO MATCHES "/O2")
string(REGEX REPLACE "/O2" "/Od" CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
endif()
if(CMAKE_C_FLAGS_RELWITHDEBINFO MATCHES "/Ob1")
string(REGEX REPLACE "/Ob1" "/Ob0" CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO}")
endif()
if(CMAKE_CXX_FLAGS_RELWITHDEBINFO MATCHES "/Ob1")
string(REGEX REPLACE "/Ob1" "/Ob0" CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
endif()
set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} /RTC1")
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /RTC1")
list(REMOVE_DUPLICATES CMAKE_C_FLAGS_RELWITHDEBINFO)
list(REMOVE_DUPLICATES CMAKE_CXX_FLAGS_RELWITHDEBINFO)
endif()
# Set CMAKE_BUILD_TYPE to Release by default
if (MTS_CMAKE_INIT AND DEFINED CMAKE_BUILD_TYPE AND NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE "Release" CACHE STRING
......
......@@ -15,6 +15,10 @@ else()
set(MTS_DEPS_SUFFIX "_macos")
endif()
set(MTS_DEPS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/dependencies${MTS_DEPS_SUFFIX}")
if(NOT IS_DIRECTORY "${MTS_DEPS_DIR}")
set(MTS_DEPS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/dependencies")
endif()
if((MSVC OR APPLE) AND NOT MTS_NO_DEPENDENCIES AND
IS_DIRECTORY "${MTS_DEPS_DIR}")
set(MTS_DEPENDENCIES ON)
......
......@@ -40,7 +40,8 @@ function (mts_check_configurations)
endfunction()
# Check the standard configurations
mts_check_configurations (Debug Release MinSizeRel RelWithDebInfo)
# NO Debug! Does not work under windows as dependencies do not include debug libraries
mts_check_configurations (Release MinSizeRel RelWithDebInfo)
# Option to enable interprocedural optimizations
......@@ -199,7 +200,7 @@ endif ()
#
# Each time this macro adds a target, it adds a new element to the
# variable "MTS_CORELIBS", which will contain all the generated core libs
#
macro (add_mts_corelib _corelib_name)
CMAKE_PARSE_ARGUMENTS(_corelib "" "" "LINK_LIBRARIES" ${ARGN})
set (_corelib_srcs ${_corelib_UNPARSED_ARGUMENTS})
......@@ -276,7 +277,7 @@ endif()
# The plugin type (i.e. camera, bsdf, luminaire) may be specified
# after the TYPE keyword. Currently doing this modifies the IDE project name
# in order to have a nicer organization.
#
macro (add_mts_plugin _plugin_name)
CMAKE_PARSE_ARGUMENTS(_plugin "MTS_HW;MTS_BIDIR;NO_MTS_PCH"
"TYPE" "LINK_LIBRARIES" ${ARGN})
......@@ -394,7 +395,7 @@ endif()
# executable. This only works on Windows builds. The optional RES_DESCRIPTION
# parameters sets a specific executable description to be used in the Windows
# builds; other platforms simply ignore this value as with RES_ICON.
#
macro (add_mts_exe _exe_name)
CMAKE_PARSE_ARGUMENTS(_exe "WIN32;NO_INSTALL;MTS_HW;MTS_BIDIR;NO_MTS_PCH"
"PCH;RES_ICON;RES_DESCRIPTION" "LINK_LIBRARIES" ${ARGN})
......
......@@ -30,6 +30,7 @@ set(HDRS
${INCLUDE_DIR}/lock.h
${INCLUDE_DIR}/logger.h
${INCLUDE_DIR}/lrucache.h
${INCLUDE_DIR}/math.h
${INCLUDE_DIR}/matrix.h
${INCLUDE_DIR}/matrix.inl
${INCLUDE_DIR}/mempool.h
......@@ -95,6 +96,7 @@ set(SRCS
half.cpp
lock.cpp
logger.cpp
math.cpp
mmap.cpp
mstream.cpp
object.cpp
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment