cmake_modules/CMakePascalInformation.cmake
author koda
Thu, 21 Mar 2013 14:38:58 +0100
branchcmake_pascal
changeset 8823 65b430b6cd68
parent 8821 e85ff6e298b5
child 8829 6940e86a7df6
permissions -rw-r--r--
add support for creating shared pascal libraries
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
# This file sets the basic flags for the Pascal language in CMake.
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
     2
# It also loads the available platform file for the system-compiler
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
     3
# if it exists.
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
     4
8815
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
     5
get_filename_component(CMAKE_BASE_NAME ${CMAKE_Pascal_COMPILER} NAME_WE)
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
     6
set(CMAKE_SYSTEM_AND_Pascal_COMPILER_INFO_FILE
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
     7
    ${CMAKE_ROOT}/Modules/Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_BASE_NAME}.cmake)
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
     8
include(Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_BASE_NAME} OPTIONAL)
8750
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
     9
8821
e85ff6e298b5 adjust verbosity, move debug/release variables in the right section
koda
parents: 8815
diff changeset
    10
# This section should actually be in Platform/${CMAKE_SYSTME_NAME}-fpc.cmake
e85ff6e298b5 adjust verbosity, move debug/release variables in the right section
koda
parents: 8815
diff changeset
    11
set(CMAKE_Pascal_FLAGS_INIT "-l- -v0ewn")
e85ff6e298b5 adjust verbosity, move debug/release variables in the right section
koda
parents: 8815
diff changeset
    12
set(CMAKE_Pascal_FLAGS_DEBUG_INIT "-g -gl -gp -gh")
e85ff6e298b5 adjust verbosity, move debug/release variables in the right section
koda
parents: 8815
diff changeset
    13
set(CMAKE_Pascal_FLAGS_MINSIZEREL_INIT "-Os -dNDEBUG")
e85ff6e298b5 adjust verbosity, move debug/release variables in the right section
koda
parents: 8815
diff changeset
    14
set(CMAKE_Pascal_FLAGS_RELEASE_INIT "-O3 -dNDEBUG")
e85ff6e298b5 adjust verbosity, move debug/release variables in the right section
koda
parents: 8815
diff changeset
    15
set(CMAKE_Pascal_FLAGS_RELWITHDEBINFO_INIT "-O2 -g -gl -gp")
e85ff6e298b5 adjust verbosity, move debug/release variables in the right section
koda
parents: 8815
diff changeset
    16
8750
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
    17
# This should be included before the _INIT variables are
8821
e85ff6e298b5 adjust verbosity, move debug/release variables in the right section
koda
parents: 8815
diff changeset
    18
# used to initialize the cache. Since the rule variables
8750
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
    19
# have if blocks on them, users can still define them here.
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
    20
# But, it should still be after the platform file so changes can
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
    21
# be made to those values.
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
    22
8815
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
    23
if(CMAKE_USER_MAKE_RULES_OVERRIDE)
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
    24
   include(${CMAKE_USER_MAKE_RULES_OVERRIDE})
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
    25
endif(CMAKE_USER_MAKE_RULES_OVERRIDE)
8750
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
    26
8815
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
    27
if(CMAKE_USER_MAKE_RULES_OVERRIDE_Pascal)
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
    28
   include(${CMAKE_USER_MAKE_RULES_OVERRIDE_Pascal})
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
    29
endif(CMAKE_USER_MAKE_RULES_OVERRIDE_Pascal)
8750
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
    30
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
    31
# Create a set of shared library variable specific to Pascal
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
    32
# For 90% of the systems, these are the same flags as the C versions
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
    33
# so if these are not set just copy the flags from the c version
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
    34
#IF(NOT CMAKE_SHARED_LIBRARY_CREATE_Ada_FLAGS)
8770
53481d654691 partial conversion of pascal_flags to CMAKE_Pascal_FLAGS
koda
parents: 8758
diff changeset
    35
#-dynamiclib -Wl,-headerpad_max_install_names for C
8750
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
    36
#  SET(CMAKE_SHARED_LIBRARY_CREATE_Ada_FLAGS ${CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS})
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
    37
#ENDIF(NOT CMAKE_SHARED_LIBRARY_CREATE_Ada_FLAGS)
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
    38
8815
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
    39
if(NOT CMAKE_SHARED_LIBRARY_Pascal_FLAGS)
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
    40
    #another similarity, fpc: -fPIC  Same as -Cg
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
    41
    #(maybe required only for x86_64)
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
    42
    set(CMAKE_SHARED_LIBRARY_Pascal_FLAGS ${CMAKE_SHARED_LIBRARY_C_FLAGS})
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
    43
endif(NOT CMAKE_SHARED_LIBRARY_Pascal_FLAGS)
8750
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
    44
8815
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
    45
if(NOT CMAKE_SHARED_LIBRARY_LINK_Pascal_FLAGS)
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
    46
    set(CMAKE_SHARED_LIBRARY_LINK_Pascal_FLAGS ${CMAKE_SHARED_LIBRARY_LINK_C_FLAGS})
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
    47
endif(NOT CMAKE_SHARED_LIBRARY_LINK_Pascal_FLAGS)
8750
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
    48
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
    49
#IF(NOT CMAKE_SHARED_LIBRARY_RUNTIME_Ada_FLAG)
8752
48cf2ccb83c6 with lot of hackery, use add_executable on pascal files, SUCCSS
koda
parents: 8750
diff changeset
    50
#  SET(CMAKE_SHARED_LIBRARY_RUNTIME_Ada_FLAG ${CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG})
8750
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
    51
#ENDIF(NOT CMAKE_SHARED_LIBRARY_RUNTIME_Ada_FLAG)
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
#IF(NOT CMAKE_SHARED_LIBRARY_RUNTIME_Ada_FLAG_SEP)
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
    54
#  SET(CMAKE_SHARED_LIBRARY_RUNTIME_Ada_FLAG_SEP ${CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP})
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
    55
#ENDIF(NOT CMAKE_SHARED_LIBRARY_RUNTIME_Ada_FLAG_SEP)
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
    56
8770
53481d654691 partial conversion of pascal_flags to CMAKE_Pascal_FLAGS
koda
parents: 8758
diff changeset
    57
if(NOT CMAKE_SHARED_LIBRARY_RPATH_LINK_Pascal_FLAG)
8815
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
    58
    set(CMAKE_SHARED_LIBRARY_RPATH_LINK_Pascal_FLAG ${CMAKE_SHARED_LIBRARY_RPATH_LINK_C_FLAG})
8770
53481d654691 partial conversion of pascal_flags to CMAKE_Pascal_FLAGS
koda
parents: 8758
diff changeset
    59
endif(NOT CMAKE_SHARED_LIBRARY_RPATH_LINK_Pascal_FLAG)
53481d654691 partial conversion of pascal_flags to CMAKE_Pascal_FLAGS
koda
parents: 8758
diff changeset
    60
53481d654691 partial conversion of pascal_flags to CMAKE_Pascal_FLAGS
koda
parents: 8758
diff changeset
    61
# for most systems a module is the same as a shared library
53481d654691 partial conversion of pascal_flags to CMAKE_Pascal_FLAGS
koda
parents: 8758
diff changeset
    62
# so unless the variable CMAKE_MODULE_EXISTS is set just
53481d654691 partial conversion of pascal_flags to CMAKE_Pascal_FLAGS
koda
parents: 8758
diff changeset
    63
# copy the values from the LIBRARY variables
53481d654691 partial conversion of pascal_flags to CMAKE_Pascal_FLAGS
koda
parents: 8758
diff changeset
    64
if(NOT CMAKE_MODULE_EXISTS)
8815
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
    65
    set(CMAKE_SHARED_MODULE_Pascal_FLAGS ${CMAKE_SHARED_LIBRARY_Pascal_FLAGS})
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
    66
    set(CMAKE_SHARED_MODULE_CREATE_Pascal_FLAGS ${CMAKE_SHARED_LIBRARY_CREATE_Pascal_FLAGS})
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
    67
endif(NOT CMAKE_MODULE_EXISTS)
8770
53481d654691 partial conversion of pascal_flags to CMAKE_Pascal_FLAGS
koda
parents: 8758
diff changeset
    68
8750
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
    69
# repeat for modules
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
    70
#IF(NOT CMAKE_SHARED_MODULE_CREATE_Ada_FLAGS)
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
    71
#  SET(CMAKE_SHARED_MODULE_CREATE_Ada_FLAGS ${CMAKE_SHARED_MODULE_CREATE_C_FLAGS})
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
    72
#ENDIF(NOT CMAKE_SHARED_MODULE_CREATE_Ada_FLAGS)
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
    73
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
    74
#IF(NOT CMAKE_SHARED_MODULE_Ada_FLAGS)
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
    75
#  SET(CMAKE_SHARED_MODULE_Ada_FLAGS ${CMAKE_SHARED_MODULE_C_FLAGS})
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
    76
#ENDIF(NOT CMAKE_SHARED_MODULE_Ada_FLAGS)
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
    77
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
    78
#IF(NOT CMAKE_SHARED_MODULE_RUNTIME_Ada_FLAG)
8752
48cf2ccb83c6 with lot of hackery, use add_executable on pascal files, SUCCSS
koda
parents: 8750
diff changeset
    79
#  SET(CMAKE_SHARED_MODULE_RUNTIME_Ada_FLAG ${CMAKE_SHARED_MODULE_RUNTIME_C_FLAG})
8750
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
    80
#ENDIF(NOT CMAKE_SHARED_MODULE_RUNTIME_Ada_FLAG)
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
    81
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
    82
#IF(NOT CMAKE_SHARED_MODULE_RUNTIME_Ada_FLAG_SEP)
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
    83
#  SET(CMAKE_SHARED_MODULE_RUNTIME_Ada_FLAG_SEP ${CMAKE_SHARED_MODULE_RUNTIME_C_FLAG_SEP})
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
    84
#ENDIF(NOT CMAKE_SHARED_MODULE_RUNTIME_Ada_FLAG_SEP)
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
    85
8815
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
    86
if(NOT CMAKE_INCLUDE_FLAG_Pascal)
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
    87
    #amazing, fpc: -I<x>  Add <x> to include path
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
    88
    set(CMAKE_INCLUDE_FLAG_Pascal ${CMAKE_INCLUDE_FLAG_C})
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
    89
endif(NOT CMAKE_INCLUDE_FLAG_Pascal)
8750
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
    90
8815
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
    91
if(NOT CMAKE_INCLUDE_FLAG_SEP_Pascal)
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
    92
    set(CMAKE_INCLUDE_FLAG_SEP_Pascal ${CMAKE_INCLUDE_FLAG_SEP_C})
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
    93
endif(NOT CMAKE_INCLUDE_FLAG_SEP_Pascal)
8750
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
    94
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
    95
# Copy C version of this flag which is normally determined in platform file.
8815
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
    96
if(NOT CMAKE_SHARED_LIBRARY_SONAME_Pascal_FLAG)
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
    97
  set(CMAKE_SHARED_LIBRARY_SONAME_Pascal_FLAG ${CMAKE_SHARED_LIBRARY_SONAME_C_FLAG})
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
    98
endif(NOT CMAKE_SHARED_LIBRARY_SONAME_Pascal_FLAG)
8750
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
    99
8815
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
   100
set(CMAKE_VERBOSE_MAKEFILE FALSE CACHE BOOL "If this value is on, makefiles will be generated without the .SILENT directive, and all commands will be echoed to the console during the make.  This is useful for debugging only. With Visual Studio IDE projects all commands are done without /nologo.")
8750
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
   101
8815
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
   102
set(CMAKE_Pascal_FLAGS "$ENV{FPFLAGS} ${CMAKE_Pascal_FLAGS_INIT}" CACHE STRING "Flags for Pascal compiler.")
8750
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
   103
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
   104
INCLUDE(CMakeCommonLanguageInclude)
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
   105
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
   106
# now define the following rule variables
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
   107
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
   108
# CMAKE_Ada_CREATE_SHARED_LIBRARY
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
   109
# CMAKE_Ada_CREATE_SHARED_MODULE
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
   110
# CMAKE_Ada_CREATE_STATIC_LIBRARY
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
   111
# CMAKE_Ada_COMPILE_OBJECT
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
   112
# CMAKE_Ada_LINK_EXECUTABLE
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
   113
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
   114
# variables supplied by the generator at use time
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
   115
# <TARGET>
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
   116
# <TARGET_BASE> the target without the suffix
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
   117
# <OBJECTS>
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
   118
# <OBJECT>
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
   119
# <LINK_LIBRARIES>
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
   120
# <FLAGS>
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
   121
# <LINK_FLAGS>
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
   122
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
   123
# Ada compiler information
8752
48cf2ccb83c6 with lot of hackery, use add_executable on pascal files, SUCCSS
koda
parents: 8750
diff changeset
   124
# <CMAKE_Ada_COMPILER>
8750
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
   125
# <CMAKE_SHARED_LIBRARY_CREATE_Ada_FLAGS>
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
   126
# <CMAKE_SHARED_MODULE_CREATE_Ada_FLAGS>
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
   127
# <CMAKE_Ada_LINK_FLAGS>
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
   128
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
   129
# Static library tools
8752
48cf2ccb83c6 with lot of hackery, use add_executable on pascal files, SUCCSS
koda
parents: 8750
diff changeset
   130
# <CMAKE_AR>
8750
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
   131
# <CMAKE_RANLIB>
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
   132
8815
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
   133
if(NOT EXECUTABLE_OUTPUT_PATH)
8756
671f6ef4f7f1 move paths setup inside cmake_lang files
koda
parents: 8754
diff changeset
   134
    set (EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR})
8815
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
   135
endif(NOT EXECUTABLE_OUTPUT_PATH)
8750
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
   136
8823
65b430b6cd68 add support for creating shared pascal libraries
koda
parents: 8821
diff changeset
   137
# create a Pascal shared library
65b430b6cd68 add support for creating shared pascal libraries
koda
parents: 8821
diff changeset
   138
if(NOT CMAKE_Pascal_CREATE_SHARED_LIBRARY)
65b430b6cd68 add support for creating shared pascal libraries
koda
parents: 8821
diff changeset
   139
    if(WIN32)
65b430b6cd68 add support for creating shared pascal libraries
koda
parents: 8821
diff changeset
   140
        set(CMAKE_Pascal_CREATE_SHARED_LIBRARY "${EXECUTABLE_OUTPUT_PATH}/ppas.bat")
65b430b6cd68 add support for creating shared pascal libraries
koda
parents: 8821
diff changeset
   141
    else(WIN32)
65b430b6cd68 add support for creating shared pascal libraries
koda
parents: 8821
diff changeset
   142
        set(CMAKE_Pascal_CREATE_SHARED_LIBRARY "${EXECUTABLE_OUTPUT_PATH}/ppas.sh")
65b430b6cd68 add support for creating shared pascal libraries
koda
parents: 8821
diff changeset
   143
    endif(WIN32)
65b430b6cd68 add support for creating shared pascal libraries
koda
parents: 8821
diff changeset
   144
# other expandable variables here are <CMAKE_Pascal_COMPILER> <CMAKE_SHARED_LIBRARY_Pascal_FLAGS> <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_Pascal_FLAGS> <CMAKE_SHARED_LIBRARY_SONAME_Pascal_FLAG> <TARGET_SONAME> <TARGET> <OBJECTS> <LINK_LIBRARIES>
65b430b6cd68 add support for creating shared pascal libraries
koda
parents: 8821
diff changeset
   145
endif(NOT CMAKE_Pascal_CREATE_SHARED_LIBRARY)
8750
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
   146
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
   147
# create an Ada shared module just copy the shared library rule
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
   148
IF(NOT CMAKE_Ada_CREATE_SHARED_MODULE)
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
   149
  SET(CMAKE_Ada_CREATE_SHARED_MODULE ${CMAKE_Ada_CREATE_SHARED_LIBRARY})
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
   150
ENDIF(NOT CMAKE_Ada_CREATE_SHARED_MODULE)
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
   151
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
   152
# create an Ada static library
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
   153
IF(NOT CMAKE_Ada_CREATE_STATIC_LIBRARY)
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
   154
  SET(CMAKE_Ada_CREATE_STATIC_LIBRARY
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
   155
      "<CMAKE_AR> cr <TARGET> <LINK_FLAGS> <OBJECTS> "
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
   156
      "<CMAKE_RANLIB> <TARGET> ")
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
   157
ENDIF(NOT CMAKE_Ada_CREATE_STATIC_LIBRARY)
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
   158
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
   159
# compile a Pascal file into an object file
8815
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
   160
if(NOT CMAKE_Pascal_COMPILE_OBJECT)
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
   161
    if(UNIX)
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
   162
        #when you have multiple ld installation make sure you get the one bundled with the system C compiler
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
   163
        include(Platform/${CMAKE_SYSTEM_NAME}-GNU-C.cmake OPTIONAL)
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
   164
        if(CMAKE_C_COMPILER)
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
   165
            get_filename_component(CMAKE_C_COMPILER_DIR ${CMAKE_C_COMPILER} PATH)
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
   166
            set(CMAKE_Pascal_UNIX_FLAGS "-FD${CMAKE_C_COMPILER_DIR}")
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
   167
        endif(CMAKE_C_COMPILER)
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
   168
        if(APPLE)
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
   169
            #add user framework directory
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
   170
            set(CMAKE_Pascal_UNIX_FLAGS "-Ff~/Library/Frameworks ${CMAKE_Pascal_UNIX_FLAGS}")
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
   171
            #when sysroot is set, make sure that fpc picks it
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
   172
            if(CMAKE_OSX_SYSROOT)
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
   173
                set(CMAKE_Pascal_UNIX_FLAGS "-XD${CMAKE_OSX_SYSROOT} ${CMAKE_Pascal_UNIX_FLAGS}")
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
   174
            endif(CMAKE_OSX_SYSROOT)
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
   175
        endif(APPLE)
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
   176
    endif(UNIX)
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
   177
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
   178
    set(CMAKE_Pascal_COMPILE_OBJECT
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
   179
        "<CMAKE_Pascal_COMPILER> -Cn -FE${EXECUTABLE_OUTPUT_PATH} -FU${CMAKE_CURRENT_BINARY_DIR}/<OBJECT_DIR> -Fi${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_Pascal_UNIX_FLAGS} <FLAGS> <SOURCE>")
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
   180
endif(NOT CMAKE_Pascal_COMPILE_OBJECT)
8750
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
   181
8778
04363016580f internal handling of some osx-only pascal flags
koda
parents: 8770
diff changeset
   182
# link Pascal objects in a single executable
8815
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
   183
if(NOT CMAKE_Pascal_LINK_EXECUTABLE)
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
   184
    if(WIN32)
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
   185
        set(CMAKE_Pascal_LINK_EXECUTABLE "${EXECUTABLE_OUTPUT_PATH}/ppas.bat")
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
   186
    else(WIN32)
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
   187
        set(CMAKE_Pascal_LINK_EXECUTABLE "${EXECUTABLE_OUTPUT_PATH}/ppas.sh")
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
   188
    endif(WIN32)
8823
65b430b6cd68 add support for creating shared pascal libraries
koda
parents: 8821
diff changeset
   189
# other expandable variables here are <CMAKE_Pascal_LINK_FLAGS> <LINK_FLAGS> <TARGET_BASE> <FLAGS> <LINK_LIBRARIES>
8815
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
   190
endif(NOT CMAKE_Pascal_LINK_EXECUTABLE)
8750
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
   191
8815
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
   192
if(CMAKE_Pascal_STANDARD_LIBRARIES_INIT)
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
   193
    set(CMAKE_Pascal_STANDARD_LIBRARIES "${CMAKE_Pascal_STANDARD_LIBRARIES_INIT}"
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
   194
    CACHE STRING "Libraries linked by default (usually handled internally).")
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
   195
    MARK_AS_ADVANCED(CMAKE_Pascal_STANDARD_LIBRARIES)
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
   196
endif(CMAKE_Pascal_STANDARD_LIBRARIES_INIT)
8750
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
   197
8815
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
   198
if(NOT CMAKE_NOT_USING_CONFIG_FLAGS)
8821
e85ff6e298b5 adjust verbosity, move debug/release variables in the right section
koda
parents: 8815
diff changeset
   199
  SET (CMAKE_Pascal_FLAGS_DEBUG "${CMAKE_Pascal_FLAGS_DEBUG_INIT}" CACHE STRING
8750
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
   200
     "Flags used by the compiler during debug builds.")
8821
e85ff6e298b5 adjust verbosity, move debug/release variables in the right section
koda
parents: 8815
diff changeset
   201
  SET (CMAKE_Pascal_FLAGS_MINSIZEREL "${CMAKE_Pascal_FLAGS_MINSIZEREL_INIT}" CACHE STRING
8750
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
   202
     "Flags used by the compiler during release minsize builds.")
8821
e85ff6e298b5 adjust verbosity, move debug/release variables in the right section
koda
parents: 8815
diff changeset
   203
  SET (CMAKE_Pascal_FLAGS_RELEASE "${CMAKE_Pascal_FLAGS_RELEASE_INIT}" CACHE STRING
8750
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
   204
     "Flags used by the compiler during release builds (/MD /Ob1 /Oi /Ot /Oy /Gs will produce slightly less optimized but smaller files).")
8821
e85ff6e298b5 adjust verbosity, move debug/release variables in the right section
koda
parents: 8815
diff changeset
   205
  SET (CMAKE_Pascal_FLAGS_RELWITHDEBINFO "${CMAKE_Pascal_FLAGS_RELWITHDEBINFO_INIT}" CACHE STRING
8750
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
   206
     "Flags used by the compiler during Release with Debug Info builds.")
8815
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
   207
endif(NOT CMAKE_NOT_USING_CONFIG_FLAGS)
8750
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
   208
8815
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
   209
mark_as_advanced(CMAKE_Pascal_FLAGS CMAKE_Pascal_FLAGS_DEBUG CMAKE_Pascal_FLAGS_MINSIZEREL
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
   210
                 CMAKE_Pascal_FLAGS_RELEASE CMAKE_Pascal_FLAGS_RELWITHDEBINFO)
c28fcd8ec138 minor and partial casing commit
koda
parents: 8809
diff changeset
   211
set(CMAKE_Pascal_INFORMATION_LOADED 1)
8750
d9e57426e759 barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff changeset
   212