In CMake, you can always declare your own compiler language. Thus, in your case, you can, for example, do:
cmake_minimum_required(VERSION 2.8) project(MakeBarFromFoo NONE) set( CMAKE_FOO_COMPILE_OBJECT "make_bar_from_foo <SOURCE> <OBJECT>" ) file(GLOB SRCS "*.foo") add_library(my_rule OBJECT ${SRCS}) set_source_files_properties(${SRCS} PROPERTIES LANGUAGE FOO)
Then you can just work with it, as with other objects in the object library . But you will only get such as the .bar extension if you enable_language(FOO) (and this requires more work, see below).
Examples that come with CMake itself are ASM or RC compilers.
enable_language(FOO) version enable_language(FOO) version
This requires four more files that you could enter, for example. your CMake project:
CMake \ CMakeDetermineFOOCompiler.cmake
CMake \ CMakeFOOCompiler.cmake.in
set(CMAKE_FOO_COMPILER "@CMAKE_FOO_COMPILER@") set(CMAKE_FOO_COMPILER_LOADED 1) set(CMAKE_FOO_SOURCE_FILE_EXTENSIONS @CMAKE_FOO_SOURCE_FILE_EXTENSIONS@) set(CMAKE_FOO_OUTPUT_EXTENSION @CMAKE_FOO_OUTPUT_EXTENSION@) set(CMAKE_FOO_COMPILER_ENV_VAR "@CMAKE_FOO_COMPILER_ENV_VAR@")
CMake \ CMakeFOOInformation.cmake
CMake \ CMakeTestFOOCompiler.cmake
Then your CMakeLists.txt file looks like this:
CMakeLists.txt
cmake_minimum_required(VERSION 2.8) project(MakeBarFromFoo NONE) list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/CMake") enable_language(FOO) file(GLOB SRCS "*.foo") add_library(my_rule OBJECT ${SRCS})
Florian Jul 10 '16 at 22:18 2016-07-10 22:18
source share