cmake_modules/CMakeDeterminePascalCompiler.cmake
author Marco Bresciani
Fri, 12 Jul 2013 11:57:31 +0200
changeset 9355 48549227aa2b
parent 8859 bead90828a94
child 9413 37fcb9a796e6
permissions -rw-r--r--
Many modifications (these files seems written by a non Italian): 1. some (not all, yet) of the typos! 2. Italian grammar is different from English: there are no "Titles Like This" but "Titles like this" if there are no proper nouns. 3. Let's use actual Italian words not "Engrish" or jargon. For example, "chatta" to say "to chat" is not correct even if widely used! 4. I'd use the Italian "Morte improvvisa" instead of English "Sudden Death"; what to do you think?
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
8750
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
     1
# Determine the compiler to use for Pascal programs
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
     2
# NOTE, a generator may set CMAKE_Pascal_COMPILER before
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
     3
# loading this file to force a compiler.
8752
48cf2ccb83c6 with lot of hackery, use add_executable on pascal files, SUCCSS
koda
parents: 8750
diff changeset
     4
# use environment variable Pascal first if defined by user, next use
8750
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
     5
# the cmake variable CMAKE_GENERATOR_PASCAL which can be defined by a generator
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
     6
# as a default compiler
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
     7
8859
bead90828a94 cmake netiquette
koda
parents: 8852
diff changeset
     8
if(NOT CMAKE_Pascal_COMPILER)
bead90828a94 cmake netiquette
koda
parents: 8852
diff changeset
     9
    # prefer the environment variable FPC
bead90828a94 cmake netiquette
koda
parents: 8852
diff changeset
    10
    if($ENV{FPC} MATCHES ".+")
bead90828a94 cmake netiquette
koda
parents: 8852
diff changeset
    11
        get_filename_component(CMAKE_Pascal_COMPILER_INIT $ENV{FPC} PROGRAM PROGRAM_ARGS CMAKE_Pascal_FLAGS_ENV_INIT)
bead90828a94 cmake netiquette
koda
parents: 8852
diff changeset
    12
        if(CMAKE_Pascal_FLAGS_ENV_INIT)
bead90828a94 cmake netiquette
koda
parents: 8852
diff changeset
    13
            set(CMAKE_Pascal_COMPILER_ARG1 "${CMAKE_Pascal_FLAGS_ENV_INIT}" CACHE STRING "First argument to Pascal compiler")
bead90828a94 cmake netiquette
koda
parents: 8852
diff changeset
    14
        endif(CMAKE_Pascal_FLAGS_ENV_INIT)
bead90828a94 cmake netiquette
koda
parents: 8852
diff changeset
    15
        if(EXISTS ${CMAKE_Pascal_COMPILER_INIT})
bead90828a94 cmake netiquette
koda
parents: 8852
diff changeset
    16
        else(EXISTS ${CMAKE_Pascal_COMPILER_INIT})
bead90828a94 cmake netiquette
koda
parents: 8852
diff changeset
    17
            message(FATAL_ERROR "Could not find compiler set in environment variable FPC:\n$ENV{FPC}.")
bead90828a94 cmake netiquette
koda
parents: 8852
diff changeset
    18
        endif(EXISTS ${CMAKE_Pascal_COMPILER_INIT})
bead90828a94 cmake netiquette
koda
parents: 8852
diff changeset
    19
    endif($ENV{FPC} MATCHES ".+")
8750
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
    20
8859
bead90828a94 cmake netiquette
koda
parents: 8852
diff changeset
    21
    # next try prefer the compiler specified by the generator
bead90828a94 cmake netiquette
koda
parents: 8852
diff changeset
    22
    if(CMAKE_GENERATOR_PASCAL)
bead90828a94 cmake netiquette
koda
parents: 8852
diff changeset
    23
        if(NOT CMAKE_Pascal_COMPILER_INIT)
bead90828a94 cmake netiquette
koda
parents: 8852
diff changeset
    24
            set(CMAKE_Pascal_COMPILER_INIT ${CMAKE_GENERATOR_PASCAL})
bead90828a94 cmake netiquette
koda
parents: 8852
diff changeset
    25
        endif(NOT CMAKE_Pascal_COMPILER_INIT)
bead90828a94 cmake netiquette
koda
parents: 8852
diff changeset
    26
    endif(CMAKE_GENERATOR_PASCAL)
8750
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
    27
8859
bead90828a94 cmake netiquette
koda
parents: 8852
diff changeset
    28
    # finally list compilers to try
bead90828a94 cmake netiquette
koda
parents: 8852
diff changeset
    29
    if(CMAKE_Pascal_COMPILER_INIT)
bead90828a94 cmake netiquette
koda
parents: 8852
diff changeset
    30
        set(CMAKE_Pascal_COMPILER_LIST ${CMAKE_Pascal_COMPILER_INIT})
bead90828a94 cmake netiquette
koda
parents: 8852
diff changeset
    31
    else(CMAKE_Pascal_COMPILER_INIT)
bead90828a94 cmake netiquette
koda
parents: 8852
diff changeset
    32
        set(CMAKE_Pascal_COMPILER_LIST fpc)
bead90828a94 cmake netiquette
koda
parents: 8852
diff changeset
    33
    endif(CMAKE_Pascal_COMPILER_INIT)
8750
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
    34
8859
bead90828a94 cmake netiquette
koda
parents: 8852
diff changeset
    35
    # Find the compiler.
bead90828a94 cmake netiquette
koda
parents: 8852
diff changeset
    36
    find_program(CMAKE_Pascal_COMPILER NAMES ${CMAKE_Pascal_COMPILER_LIST} DOC "Pascal compiler")
bead90828a94 cmake netiquette
koda
parents: 8852
diff changeset
    37
    if(CMAKE_Pascal_COMPILER_INIT AND NOT CMAKE_Pascal_COMPILER)
bead90828a94 cmake netiquette
koda
parents: 8852
diff changeset
    38
        set(CMAKE_Pascal_COMPILER "${CMAKE_Pascal_COMPILER_INIT}" CACHE FILEPATH "Pascal compiler" FORCE)
bead90828a94 cmake netiquette
koda
parents: 8852
diff changeset
    39
    endif(CMAKE_Pascal_COMPILER_INIT AND NOT CMAKE_Pascal_COMPILER)
bead90828a94 cmake netiquette
koda
parents: 8852
diff changeset
    40
endif(NOT CMAKE_Pascal_COMPILER)
bead90828a94 cmake netiquette
koda
parents: 8852
diff changeset
    41
mark_as_advanced(CMAKE_Pascal_COMPILER)
8750
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
    42
8852
0576439ef859 add and use the integrated version check
koda
parents: 8834
diff changeset
    43
if(NOT CMAKE_Pascal_COMPILER_VERSION)
8859
bead90828a94 cmake netiquette
koda
parents: 8852
diff changeset
    44
    execute_process(COMMAND ${CMAKE_Pascal_COMPILER} -iV
bead90828a94 cmake netiquette
koda
parents: 8852
diff changeset
    45
                    OUTPUT_VARIABLE CMAKE_Pascal_COMPILER_VERSION
bead90828a94 cmake netiquette
koda
parents: 8852
diff changeset
    46
                    OUTPUT_STRIP_TRAILING_WHITESPACE
bead90828a94 cmake netiquette
koda
parents: 8852
diff changeset
    47
                    ) # we assume no error for something so simple
8852
0576439ef859 add and use the integrated version check
koda
parents: 8834
diff changeset
    48
endif(NOT CMAKE_Pascal_COMPILER_VERSION)
0576439ef859 add and use the integrated version check
koda
parents: 8834
diff changeset
    49
mark_as_advanced(CMAKE_Pascal_COMPILER_VERSION)
0576439ef859 add and use the integrated version check
koda
parents: 8834
diff changeset
    50
8859
bead90828a94 cmake netiquette
koda
parents: 8852
diff changeset
    51
get_filename_component(COMPILER_LOCATION "${CMAKE_Pascal_COMPILER}" PATH)
8750
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
    52
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
    53
# configure variables set in this file for fast reload later on
8764
f16bcb3dba9e the default CMake(Lang)Compiler.cmake location changed since 2.8.10
koda
parents: 8754
diff changeset
    54
if(${CMAKE_VERSION} VERSION_LESS 2.8.10)
8859
bead90828a94 cmake netiquette
koda
parents: 8852
diff changeset
    55
    configure_file(${CMAKE_MODULE_PATH}/CMakePascalCompiler.cmake.in
bead90828a94 cmake netiquette
koda
parents: 8852
diff changeset
    56
                   "${CMAKE_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/CMakePascalCompiler.cmake"
bead90828a94 cmake netiquette
koda
parents: 8852
diff changeset
    57
                   IMMEDIATE )
8764
f16bcb3dba9e the default CMake(Lang)Compiler.cmake location changed since 2.8.10
koda
parents: 8754
diff changeset
    58
else(${CMAKE_VERSION} VERSION_LESS 2.8.10)
8859
bead90828a94 cmake netiquette
koda
parents: 8852
diff changeset
    59
    configure_file(${CMAKE_MODULE_PATH}/CMakePascalCompiler.cmake.in
bead90828a94 cmake netiquette
koda
parents: 8852
diff changeset
    60
                  "${CMAKE_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/${CMAKE_VERSION}/CMakePascalCompiler.cmake"
bead90828a94 cmake netiquette
koda
parents: 8852
diff changeset
    61
                   IMMEDIATE )
8764
f16bcb3dba9e the default CMake(Lang)Compiler.cmake location changed since 2.8.10
koda
parents: 8754
diff changeset
    62
endif(${CMAKE_VERSION} VERSION_LESS 2.8.10)
f16bcb3dba9e the default CMake(Lang)Compiler.cmake location changed since 2.8.10
koda
parents: 8754
diff changeset
    63
8859
bead90828a94 cmake netiquette
koda
parents: 8852
diff changeset
    64
set(CMAKE_Pascal_COMPILER_ENV_VAR "FPC")
bead90828a94 cmake netiquette
koda
parents: 8852
diff changeset
    65