Sie sind auf Seite 1von 3

set(PROJECT_NAME commandline)

################################################################################
# Source groups
################################################################################
set(Headers
"source/alien_def.h"
"source/C4DImportExport.h"
)
source_group("Headers" FILES ${Headers})

set(Sources
"source/C4DImportExport.cpp"
)
source_group("Sources" FILES ${Sources})

set(ALL_FILES
${Headers}
${Sources}
)

################################################################################
# Target
################################################################################
add_executable(${PROJECT_NAME} ${ALL_FILES})

use_props(${PROJECT_NAME} "${CMAKE_CONFIGURATION_TYPES}" "${DEFAULT_CXX_PROPS}")


set(ROOT_NAMESPACE commandline)

set_target_properties(${PROJECT_NAME} PROPERTIES
VS_GLOBAL_KEYWORD "Win32Proj"
)
################################################################################
# Target name
################################################################################
set_target_properties(${PROJECT_NAME} PROPERTIES
TARGET_NAME_DEBUGMD "${PROJECT_NAME}"
TARGET_NAME_DEBUGMT "${PROJECT_NAME}"
TARGET_NAME_RELEASEMD "${PROJECT_NAME}"
TARGET_NAME_RELEASEMT "${PROJECT_NAME}"
)
################################################################################
# Output directory
################################################################################
set_target_properties(${PROJECT_NAME} PROPERTIES
OUTPUT_DIRECTORY_DEBUGMD "${CMAKE_CURRENT_SOURCE_DIR}/"
OUTPUT_DIRECTORY_DEBUGMT "${CMAKE_CURRENT_SOURCE_DIR}/"
OUTPUT_DIRECTORY_RELEASEMD "${CMAKE_CURRENT_SOURCE_DIR}/"
OUTPUT_DIRECTORY_RELEASEMT "${CMAKE_CURRENT_SOURCE_DIR}/"
)
set_target_properties(${PROJECT_NAME} PROPERTIES
PDB_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/__obj"
)
set_target_properties(${PROJECT_NAME} PROPERTIES
INTERPROCEDURAL_OPTIMIZATION_RELEASEMD "TRUE"
INTERPROCEDURAL_OPTIMIZATION_RELEASEMT "TRUE"
)
################################################################################
# MSVC runtime library
################################################################################
get_property(MSVC_RUNTIME_LIBRARY_DEFAULT TARGET ${PROJECT_NAME} PROPERTY
MSVC_RUNTIME_LIBRARY)
string(CONCAT "MSVC_RUNTIME_LIBRARY_STR"
$<$<CONFIG:DebugMD>:
MultiThreadedDebugDLL
>
$<$<CONFIG:DebugMT>:
MultiThreadedDebug
>
$<$<CONFIG:ReleaseMD>:
MultiThreadedDLL
>
$<$<CONFIG:ReleaseMT>:
MultiThreaded
>
$<$<NOT:$<OR:$<CONFIG:DebugMD>,$<CONFIG:DebugMT>,$<CONFIG:ReleaseMD>,
$<CONFIG:ReleaseMT>>>:${MSVC_RUNTIME_LIBRARY_DEFAULT}>
)
set_target_properties(${PROJECT_NAME} PROPERTIES MSVC_RUNTIME_LIBRARY $
{MSVC_RUNTIME_LIBRARY_STR})

################################################################################
# Include directories
################################################################################
target_include_directories(${PROJECT_NAME} PUBLIC
"${CMAKE_CURRENT_SOURCE_DIR}/../../includes"
)

################################################################################
# Compile definitions
################################################################################
target_compile_definitions(${PROJECT_NAME} PRIVATE
"UNICODE;"
"_UNICODE"
)

################################################################################
# Compile and link options
################################################################################
if(MSVC)
target_compile_options(${PROJECT_NAME} PRIVATE
$<$<CONFIG:DebugMD>:
/Od;
/RTC1
>
$<$<CONFIG:DebugMT>:
/Od;
/RTC1
>
/W4;
/Zi;
/wd4100;
/wd4127;
/wd4389;
${DEFAULT_CXX_EXCEPTION_HANDLING};
/Y-
)
target_link_options(${PROJECT_NAME} PRIVATE
$<$<CONFIG:DebugMD>:
/INCREMENTAL
>
$<$<CONFIG:DebugMT>:
/INCREMENTAL
>
$<$<CONFIG:ReleaseMD>:
/OPT:REF;
/OPT:ICF;
/INCREMENTAL:NO
>
$<$<CONFIG:ReleaseMT>:
/OPT:REF;
/OPT:ICF;
/INCREMENTAL:NO
>
/DEBUG;
/MACHINE:X64;
/SUBSYSTEM:CONSOLE;
/DYNAMICBASE:NO
)
endif()

################################################################################
# Dependencies
################################################################################
set(ADDITIONAL_LIBRARY_DEPENDENCIES
"$<$<CONFIG:DebugMD>:"
"../../libraries/win/cinewarelib_2019/cinewarelib_debug;"
"../../libraries/win/jpeglib_2019/jpeglib_debug"
">"
"$<$<CONFIG:DebugMT>:"
"../../libraries/win/cinewarelib_2019_MT/cinewarelib_debug;"
"../../libraries/win/jpeglib_2019_MT/jpeglib_debug"
">"
"$<$<CONFIG:ReleaseMD>:"
"../../libraries/win/cinewarelib_2019/cinewarelib_release;"
"../../libraries/win/jpeglib_2019/jpeglib_release"
">"
"$<$<CONFIG:ReleaseMT>:"
"../../libraries/win/cinewarelib_2019_MT/cinewarelib_release;"
"../../libraries/win/jpeglib_2019_MT/jpeglib_release"
">"
"ws2_32;"
"winmm"
)
target_link_libraries(${PROJECT_NAME} PRIVATE "${ADDITIONAL_LIBRARY_DEPENDENCIES}")

Das könnte Ihnen auch gefallen