|
|
|
cmake_minimum_required(VERSION 3.9)
|
|
|
|
project(OutDir C)
|
|
|
|
|
|
|
|
get_property(_isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
|
|
|
|
if(_isMultiConfig)
|
|
|
|
foreach(config ${CMAKE_CONFIGURATION_TYPES})
|
|
|
|
string(TOUPPER "${config}" CONFIG)
|
|
|
|
list(APPEND configs "${CONFIG}")
|
|
|
|
endforeach()
|
|
|
|
unset(CMAKE_BUILD_TYPE CACHE)
|
|
|
|
elseif(NOT CMAKE_BUILD_TYPE)
|
|
|
|
set(CMAKE_BUILD_TYPE Debug)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
if(CMAKE_BUILD_TYPE)
|
|
|
|
string(TOUPPER "${CMAKE_BUILD_TYPE}" configs)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
set(top "${OutDir_BINARY_DIR}")
|
|
|
|
foreach(config ${configs})
|
|
|
|
foreach(type archive runtime library)
|
|
|
|
string(TOUPPER "${type}" TYPE)
|
|
|
|
set(CMAKE_${TYPE}_OUTPUT_DIRECTORY_${config} "${top}/${type}/$<CONFIG>")
|
|
|
|
file(REMOVE_RECURSE "${top}/${type}")
|
|
|
|
endforeach()
|
|
|
|
endforeach()
|
|
|
|
|
|
|
|
add_subdirectory(../COnly COnly)
|
|
|
|
|
|
|
|
add_custom_command(
|
|
|
|
OUTPUT OutDir.h
|
|
|
|
COMMAND ${CMAKE_COMMAND} -Dtop=${top} -Dcfg_dir=$<CONFIG> -P ${OutDir_SOURCE_DIR}/OutDir.cmake
|
|
|
|
DEPENDS COnly ${OutDir_SOURCE_DIR}/OutDir.cmake
|
|
|
|
)
|
|
|
|
include_directories(${top})
|
|
|
|
add_executable(OutDir OutDir.c OutDir.h)
|