[Cmake-commits] [cmake-commits] king committed CMakeLists.txt NONE 1.1 OutDir.c NONE 1.1 OutDir.cmake NONE 1.1
cmake-commits at cmake.org
cmake-commits at cmake.org
Wed Oct 28 13:35:55 EDT 2009
Update of /cvsroot/CMake/CMake/Tests/OutDir
In directory public:/mounts/ram/cvs-serv16580/Tests/OutDir
Added Files:
CMakeLists.txt OutDir.c OutDir.cmake
Log Message:
Test per-config OUTPUT_DIRECTORY properties
We test (ARCHIVE|LIBRARY|RUNTIME)_OUTPUT_DIRECTORY_<CONFIG> properties
by building COnly as a subdirectory and setting the properties to put
its files in specific locations. We build an executable that verifies
the targets actually appear where expected.
--- NEW FILE: CMakeLists.txt ---
cmake_minimum_required(VERSION 2.8)
project(OutDir C)
if(CMAKE_CONFIGURATION_TYPES)
foreach(config ${CMAKE_CONFIGURATION_TYPES})
string(TOUPPER "${config}" CONFIG)
list(APPEND configs "${CONFIG}")
endforeach()
set(CMAKE_BUILD_TYPE)
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}")
file(REMOVE_RECURSE "${top}/${type}")
endforeach()
endforeach()
add_subdirectory(../COnly COnly)
add_custom_command(
OUTPUT OutDir.h
COMMAND ${CMAKE_COMMAND} -Dtop=${top} -P ${OutDir_SOURCE_DIR}/OutDir.cmake
DEPENDS COnly ${OutDir_SOURCE_DIR}/OutDir.cmake
)
include_directories(${top})
add_executable(OutDir OutDir.c OutDir.h)
--- NEW FILE: OutDir.c ---
#include <OutDir.h>
#include <stdio.h>
int main(void)
{
const char* files[] = {TESTC1_LIB, TESTC2_LIB, CONLY_EXE, 0};
int result = 0;
const char** fname = files;
for(;*fname;++fname)
{
FILE* f = fopen(*fname, "rb");
if(f)
{
printf("found: [%s]\n", *fname);
fclose(f);
}
else
{
printf("error: [%s]\n", *fname);
result = 1;
}
}
return result;
}
--- NEW FILE: OutDir.cmake ---
set(CMAKE_FIND_LIBRARY_PREFIXES "lib" "")
set(CMAKE_FIND_LIBRARY_SUFFIXES ".lib" ".a" ".so" ".dylib")
find_library(TESTC1_LIB
NAMES testc1 testc1_test_debug_postfix
PATHS ${top}/archive
NO_DEFAULT_PATH)
find_library(TESTC2_LIB
NAMES testc2 testc2_test_debug_postfix
PATHS ${top}/archive ${top}/library
NO_DEFAULT_PATH)
find_program(CONLY_EXE
NAMES COnly
PATHS ${top}/runtime
NO_DEFAULT_PATH)
file(WRITE ${top}/OutDir.h "/* Generated by ${CMAKE_CURRENT_LIST_FILE} */
#ifndef OutDir_h
#define OutDir_h
#define TESTC1_LIB \"${TESTC1_LIB}\"
#define TESTC2_LIB \"${TESTC2_LIB}\"
#define CONLY_EXE \"${CONLY_EXE}\"
#endif
")
More information about the Cmake-commits
mailing list