You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.5 KiB
53 lines
1.5 KiB
cmake_minimum_required(VERSION 3.5)
|
|
project(${RunCMake_TEST} NONE)
|
|
|
|
message(STATUS "source: '${CMAKE_SOURCE_DIR}'")
|
|
message(STATUS "binary: '${CMAKE_BINARY_DIR}'")
|
|
get_filename_component(real_source "${CMAKE_SOURCE_DIR}" REALPATH)
|
|
get_filename_component(real_binary "${CMAKE_BINARY_DIR}" REALPATH)
|
|
message(STATUS "real source: '${real_source}'")
|
|
message(STATUS "real binary: '${real_binary}'")
|
|
|
|
if(RunCMake_TEST MATCHES "-exe")
|
|
enable_language(C)
|
|
file(WRITE "${CMAKE_SOURCE_DIR}/source.c" [[
|
|
#include <stdio.h>
|
|
#include "source.h"
|
|
#include "binary.h"
|
|
extern void print_binary_c(void);
|
|
extern void print_binary_c(void);
|
|
void print_source_c(void) {
|
|
printf("source.c: '%s'\n", __FILE__);
|
|
}
|
|
int main(void) {
|
|
print_source_c();
|
|
print_source_h();
|
|
print_binary_c();
|
|
print_binary_h();
|
|
return 0;
|
|
}
|
|
]])
|
|
file(WRITE "${CMAKE_BINARY_DIR}/binary.c" [[
|
|
#include <stdio.h>
|
|
void print_binary_c(void) {
|
|
printf("binary.c: '%s'\n", __FILE__);
|
|
}
|
|
]])
|
|
file(WRITE "${CMAKE_SOURCE_DIR}/include/source.h" [[
|
|
void print_source_h(void) {
|
|
printf("source.h: '%s'\n", __FILE__);
|
|
}
|
|
]])
|
|
file(WRITE "${CMAKE_BINARY_DIR}/include/binary.h" [[
|
|
void print_binary_h(void) {
|
|
printf("binary.h: '%s'\n", __FILE__);
|
|
}
|
|
]])
|
|
add_executable(exe source.c ${CMAKE_BINARY_DIR}/binary.c)
|
|
target_include_directories(exe PRIVATE
|
|
${CMAKE_SOURCE_DIR}/include
|
|
${CMAKE_BINARY_DIR}/include
|
|
)
|
|
add_custom_target(print ALL COMMAND exe)
|
|
endif()
|