author | Periklis Ntanasis <pntanasis@gmail.com> |
Thu, 12 Sep 2013 23:08:45 +0300 | |
branch | spacecampaign |
changeset 9618 | c937b532f8ec |
parent 9348 | 4ec6eff176a5 |
child 9413 | 37fcb9a796e6 |
permissions | -rw-r--r-- |
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 | 5 |
get_filename_component(CMAKE_BASE_NAME ${CMAKE_Pascal_COMPILER} NAME_WE) |
6 |
set(CMAKE_SYSTEM_AND_Pascal_COMPILER_INFO_FILE |
|
7 |
${CMAKE_ROOT}/Modules/Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_BASE_NAME}.cmake) |
|
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 | 23 |
if(CMAKE_USER_MAKE_RULES_OVERRIDE) |
24 |
include(${CMAKE_USER_MAKE_RULES_OVERRIDE}) |
|
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 | 27 |
if(CMAKE_USER_MAKE_RULES_OVERRIDE_Pascal) |
28 |
include(${CMAKE_USER_MAKE_RULES_OVERRIDE_Pascal}) |
|
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 |
8831 | 34 |
|
35 |
# No flags supported during linking as a shell script takes care of it |
|
9339
14f5f3a1e2f7
some work on cmake_pascal files to better support flags we use, make engine compile as library again
koda
parents:
9227
diff
changeset
|
36 |
# however to avoid interferences we escape -Wl flags to the Pascal -k |
8859 | 37 |
if(NOT CMAKE_SHARED_LIBRARY_CREATE_Pascal_FLAGS) |
9339
14f5f3a1e2f7
some work on cmake_pascal files to better support flags we use, make engine compile as library again
koda
parents:
9227
diff
changeset
|
38 |
#-shared |
14f5f3a1e2f7
some work on cmake_pascal files to better support flags we use, make engine compile as library again
koda
parents:
9227
diff
changeset
|
39 |
string(REGEX REPLACE "-Wl," "-k" CMAKE_SHARED_LIBRARY_CREATE_Pascal_FLAGS ${CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS}) |
8859 | 40 |
endif(NOT CMAKE_SHARED_LIBRARY_CREATE_Pascal_FLAGS) |
8750
d9e57426e759
barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff
changeset
|
41 |
|
9339
14f5f3a1e2f7
some work on cmake_pascal files to better support flags we use, make engine compile as library again
koda
parents:
9227
diff
changeset
|
42 |
if(NOT CMAKE_SHARED_LIBRARY_Pascal_FLAGS AND CMAKE_SHARED_LIBRARY_C_FLAGS) |
14f5f3a1e2f7
some work on cmake_pascal files to better support flags we use, make engine compile as library again
koda
parents:
9227
diff
changeset
|
43 |
string(REGEX REPLACE "-Wl," "-k" CMAKE_SHARED_LIBRARY_Pascal_FLAGS ${CMAKE_SHARED_LIBRARY_C_FLAGS}) |
14f5f3a1e2f7
some work on cmake_pascal files to better support flags we use, make engine compile as library again
koda
parents:
9227
diff
changeset
|
44 |
endif() |
14f5f3a1e2f7
some work on cmake_pascal files to better support flags we use, make engine compile as library again
koda
parents:
9227
diff
changeset
|
45 |
|
14f5f3a1e2f7
some work on cmake_pascal files to better support flags we use, make engine compile as library again
koda
parents:
9227
diff
changeset
|
46 |
if(NOT CMAKE_SHARED_LIBRARY_LINK_Pascal_FLAGS AND CMAKE_SHARED_LIBRARY_LINK_C_FLAGS) |
14f5f3a1e2f7
some work on cmake_pascal files to better support flags we use, make engine compile as library again
koda
parents:
9227
diff
changeset
|
47 |
#-rdynamic |
14f5f3a1e2f7
some work on cmake_pascal files to better support flags we use, make engine compile as library again
koda
parents:
9227
diff
changeset
|
48 |
string(REGEX REPLACE "-Wl," "-k" CMAKE_SHARED_LIBRARY_LINK_Pascal_FLAGS ${CMAKE_SHARED_LIBRARY_LINK_C_FLAGS}) |
14f5f3a1e2f7
some work on cmake_pascal files to better support flags we use, make engine compile as library again
koda
parents:
9227
diff
changeset
|
49 |
endif() |
8750
d9e57426e759
barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff
changeset
|
50 |
|
9339
14f5f3a1e2f7
some work on cmake_pascal files to better support flags we use, make engine compile as library again
koda
parents:
9227
diff
changeset
|
51 |
if(NOT CMAKE_SHARED_LIBRARY_RUNTIME_Pascal_FLAG) |
14f5f3a1e2f7
some work on cmake_pascal files to better support flags we use, make engine compile as library again
koda
parents:
9227
diff
changeset
|
52 |
#-Wl,-rpath, |
9341 | 53 |
set(CMAKE_SHARED_LIBRARY_RUNTIME_Pascal_FLAG "-k-rpath") |
9339
14f5f3a1e2f7
some work on cmake_pascal files to better support flags we use, make engine compile as library again
koda
parents:
9227
diff
changeset
|
54 |
endif(NOT CMAKE_SHARED_LIBRARY_RUNTIME_Pascal_FLAG) |
8750
d9e57426e759
barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff
changeset
|
55 |
|
9339
14f5f3a1e2f7
some work on cmake_pascal files to better support flags we use, make engine compile as library again
koda
parents:
9227
diff
changeset
|
56 |
if(NOT CMAKE_SHARED_LIBRARY_RUNTIME_Pascal_FLAG_SEP) |
14f5f3a1e2f7
some work on cmake_pascal files to better support flags we use, make engine compile as library again
koda
parents:
9227
diff
changeset
|
57 |
set(CMAKE_SHARED_LIBRARY_RUNTIME_Pascal_FLAG_SEP ${CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP}) |
14f5f3a1e2f7
some work on cmake_pascal files to better support flags we use, make engine compile as library again
koda
parents:
9227
diff
changeset
|
58 |
endif(NOT CMAKE_SHARED_LIBRARY_RUNTIME_Pascal_FLAG_SEP) |
8750
d9e57426e759
barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff
changeset
|
59 |
|
8770
53481d654691
partial conversion of pascal_flags to CMAKE_Pascal_FLAGS
koda
parents:
8758
diff
changeset
|
60 |
if(NOT CMAKE_SHARED_LIBRARY_RPATH_LINK_Pascal_FLAG) |
9339
14f5f3a1e2f7
some work on cmake_pascal files to better support flags we use, make engine compile as library again
koda
parents:
9227
diff
changeset
|
61 |
#-Wl,-rpath-link, |
9341 | 62 |
set(CMAKE_SHARED_LIBRARY_RUNTIME_Pascal_FLAG "-k-rpath-link") |
8770
53481d654691
partial conversion of pascal_flags to CMAKE_Pascal_FLAGS
koda
parents:
8758
diff
changeset
|
63 |
endif(NOT CMAKE_SHARED_LIBRARY_RPATH_LINK_Pascal_FLAG) |
53481d654691
partial conversion of pascal_flags to CMAKE_Pascal_FLAGS
koda
parents:
8758
diff
changeset
|
64 |
|
53481d654691
partial conversion of pascal_flags to CMAKE_Pascal_FLAGS
koda
parents:
8758
diff
changeset
|
65 |
# 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
|
66 |
# 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
|
67 |
# copy the values from the LIBRARY variables |
53481d654691
partial conversion of pascal_flags to CMAKE_Pascal_FLAGS
koda
parents:
8758
diff
changeset
|
68 |
if(NOT CMAKE_MODULE_EXISTS) |
8815 | 69 |
set(CMAKE_SHARED_MODULE_Pascal_FLAGS ${CMAKE_SHARED_LIBRARY_Pascal_FLAGS}) |
70 |
set(CMAKE_SHARED_MODULE_CREATE_Pascal_FLAGS ${CMAKE_SHARED_LIBRARY_CREATE_Pascal_FLAGS}) |
|
71 |
endif(NOT CMAKE_MODULE_EXISTS) |
|
8770
53481d654691
partial conversion of pascal_flags to CMAKE_Pascal_FLAGS
koda
parents:
8758
diff
changeset
|
72 |
|
8750
d9e57426e759
barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff
changeset
|
73 |
# repeat for modules |
8859 | 74 |
if(NOT CMAKE_SHARED_MODULE_CREATE_Pascal_FLAGS) |
9339
14f5f3a1e2f7
some work on cmake_pascal files to better support flags we use, make engine compile as library again
koda
parents:
9227
diff
changeset
|
75 |
string(REGEX REPLACE "-Wl," "-k" CMAKE_SHARED_MODULE_CREATE_Pascal_FLAGS ${CMAKE_SHARED_MODULE_CREATE_C_FLAGS}) |
8859 | 76 |
endif(NOT CMAKE_SHARED_MODULE_CREATE_Pascal_FLAGS) |
8750
d9e57426e759
barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff
changeset
|
77 |
|
9339
14f5f3a1e2f7
some work on cmake_pascal files to better support flags we use, make engine compile as library again
koda
parents:
9227
diff
changeset
|
78 |
if(NOT CMAKE_SHARED_MODULE_Pascal_FLAGS AND CMAKE_SHARED_MODULE_C_FLAGS) |
14f5f3a1e2f7
some work on cmake_pascal files to better support flags we use, make engine compile as library again
koda
parents:
9227
diff
changeset
|
79 |
string(REGEX REPLACE "-Wl," "-k" CMAKE_SHARED_MODULE_Pascal_FLAGS ${CMAKE_SHARED_MODULE_C_FLAGS}) |
14f5f3a1e2f7
some work on cmake_pascal files to better support flags we use, make engine compile as library again
koda
parents:
9227
diff
changeset
|
80 |
endif() |
8750
d9e57426e759
barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff
changeset
|
81 |
|
8859 | 82 |
if(NOT CMAKE_SHARED_MODULE_RUNTIME_Pascal_FLAG) |
83 |
set(CMAKE_SHARED_MODULE_RUNTIME_Pascal_FLAG ${CMAKE_SHARED_MODULE_RUNTIME_C_FLAG}) |
|
84 |
endif(NOT CMAKE_SHARED_MODULE_RUNTIME_Pascal_FLAG) |
|
8750
d9e57426e759
barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff
changeset
|
85 |
|
8859 | 86 |
if(NOT CMAKE_SHARED_MODULE_RUNTIME_Pascal_FLAG_SEP) |
87 |
set(CMAKE_SHARED_MODULE_RUNTIME_Pascal_FLAG_SEP ${CMAKE_SHARED_MODULE_RUNTIME_C_FLAG_SEP}) |
|
88 |
endif(NOT CMAKE_SHARED_MODULE_RUNTIME_Pascal_FLAG_SEP) |
|
8750
d9e57426e759
barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff
changeset
|
89 |
|
8815 | 90 |
if(NOT CMAKE_INCLUDE_FLAG_Pascal) |
91 |
#amazing, fpc: -I<x> Add <x> to include path |
|
92 |
set(CMAKE_INCLUDE_FLAG_Pascal ${CMAKE_INCLUDE_FLAG_C}) |
|
93 |
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
|
94 |
|
8815 | 95 |
if(NOT CMAKE_INCLUDE_FLAG_SEP_Pascal) |
96 |
set(CMAKE_INCLUDE_FLAG_SEP_Pascal ${CMAKE_INCLUDE_FLAG_SEP_C}) |
|
97 |
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
|
98 |
|
d9e57426e759
barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff
changeset
|
99 |
# Copy C version of this flag which is normally determined in platform file. |
8815 | 100 |
if(NOT CMAKE_SHARED_LIBRARY_SONAME_Pascal_FLAG) |
9341 | 101 |
set(CMAKE_SHARED_LIBRARY_SONAME_Pascal_FLAG ${CMAKE_SHARED_LIBRARY_SONAME_C_FLAG}) |
8815 | 102 |
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
|
103 |
|
8815 | 104 |
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
|
105 |
|
9348
4ec6eff176a5
use FORCE so you can append pascal flag with normal CMAKE_Pascal_FLAGS
koda
parents:
9341
diff
changeset
|
106 |
set(CMAKE_Pascal_FLAGS "$ENV{FPFLAGS} ${CMAKE_Pascal_FLAGS_INIT} ${CMAKE_Pascal_FLAGS}" CACHE STRING "Flags for Pascal compiler." FORCE) |
8750
d9e57426e759
barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff
changeset
|
107 |
|
8859 | 108 |
include(CMakeCommonLanguageInclude) |
8750
d9e57426e759
barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff
changeset
|
109 |
|
d9e57426e759
barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff
changeset
|
110 |
# 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
|
111 |
|
8831 | 112 |
# CMAKE_Pascal_CREATE_SHARED_LIBRARY |
113 |
# CMAKE_Pascal_CREATE_SHARED_MODULE |
|
114 |
# CMAKE_Pascal_CREATE_STATIC_LIBRARY |
|
115 |
# CMAKE_Pascal_COMPILE_OBJECT |
|
116 |
# CMAKE_Pascal_LINK_EXECUTABLE |
|
8750
d9e57426e759
barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff
changeset
|
117 |
|
d9e57426e759
barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff
changeset
|
118 |
# 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
|
119 |
# <TARGET> |
d9e57426e759
barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff
changeset
|
120 |
# <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
|
121 |
# <OBJECTS> |
d9e57426e759
barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff
changeset
|
122 |
# <OBJECT> |
d9e57426e759
barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff
changeset
|
123 |
# <LINK_LIBRARIES> |
d9e57426e759
barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff
changeset
|
124 |
# <FLAGS> |
d9e57426e759
barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff
changeset
|
125 |
# <LINK_FLAGS> |
d9e57426e759
barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff
changeset
|
126 |
|
8831 | 127 |
# Pascal compiler information |
128 |
# <CMAKE_Pascal_COMPILER> |
|
129 |
# <CMAKE_SHARED_LIBRARY_CREATE_Pascal_FLAGS> |
|
130 |
# <CMAKE_SHARED_MODULE_CREATE_Pascal_FLAGS> |
|
131 |
# <CMAKE_Pascal_LINK_FLAGS> |
|
8750
d9e57426e759
barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff
changeset
|
132 |
|
d9e57426e759
barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff
changeset
|
133 |
# Static library tools |
8834 | 134 |
# NONE! |
8750
d9e57426e759
barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff
changeset
|
135 |
|
8815 | 136 |
if(NOT EXECUTABLE_OUTPUT_PATH) |
8756 | 137 |
set (EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}) |
8815 | 138 |
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
|
139 |
|
8823 | 140 |
# create a Pascal shared library |
141 |
if(NOT CMAKE_Pascal_CREATE_SHARED_LIBRARY) |
|
142 |
if(WIN32) |
|
143 |
set(CMAKE_Pascal_CREATE_SHARED_LIBRARY "${EXECUTABLE_OUTPUT_PATH}/ppas.bat") |
|
144 |
else(WIN32) |
|
145 |
set(CMAKE_Pascal_CREATE_SHARED_LIBRARY "${EXECUTABLE_OUTPUT_PATH}/ppas.sh") |
|
146 |
endif(WIN32) |
|
147 |
# 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> |
|
148 |
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
|
149 |
|
8831 | 150 |
# create an Pascal shared module just copy the shared library rule |
8859 | 151 |
if(NOT CMAKE_Pascal_CREATE_SHARED_MODULE) |
152 |
set(CMAKE_Pascal_CREATE_SHARED_MODULE ${CMAKE_Pascal_CREATE_SHARED_LIBRARY}) |
|
153 |
endif(NOT CMAKE_Pascal_CREATE_SHARED_MODULE) |
|
8750
d9e57426e759
barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff
changeset
|
154 |
|
8829 | 155 |
# create an Pascal static library (unsupported) |
8859 | 156 |
if(NOT CMAKE_Pascal_CREATE_STATIC_LIBRARY) |
157 |
set(CMAKE_Pascal_CREATE_STATIC_LIBRARY |
|
8829 | 158 |
"echo STATIC LIBRARIES ARE NOT SUPPORTED" "exit") |
8859 | 159 |
endif(NOT CMAKE_Pascal_CREATE_STATIC_LIBRARY) |
8750
d9e57426e759
barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff
changeset
|
160 |
|
d9e57426e759
barebone cmake config file to support pascal files, based off plplot's ada files
koda
parents:
diff
changeset
|
161 |
# compile a Pascal file into an object file |
8815 | 162 |
if(NOT CMAKE_Pascal_COMPILE_OBJECT) |
163 |
if(UNIX) |
|
164 |
#when you have multiple ld installation make sure you get the one bundled with the system C compiler |
|
165 |
include(Platform/${CMAKE_SYSTEM_NAME}-GNU-C.cmake OPTIONAL) |
|
9339
14f5f3a1e2f7
some work on cmake_pascal files to better support flags we use, make engine compile as library again
koda
parents:
9227
diff
changeset
|
166 |
if(CMAKE_COMPILER_IS_GNUCC) |
8815 | 167 |
get_filename_component(CMAKE_C_COMPILER_DIR ${CMAKE_C_COMPILER} PATH) |
168 |
set(CMAKE_Pascal_UNIX_FLAGS "-FD${CMAKE_C_COMPILER_DIR}") |
|
9339
14f5f3a1e2f7
some work on cmake_pascal files to better support flags we use, make engine compile as library again
koda
parents:
9227
diff
changeset
|
169 |
endif(CMAKE_COMPILER_IS_GNUCC) |
8815 | 170 |
if(APPLE) |
9339
14f5f3a1e2f7
some work on cmake_pascal files to better support flags we use, make engine compile as library again
koda
parents:
9227
diff
changeset
|
171 |
#TODO: take care of CMAKE_INSTALL_NAME_DIR for shared targets |
14f5f3a1e2f7
some work on cmake_pascal files to better support flags we use, make engine compile as library again
koda
parents:
9227
diff
changeset
|
172 |
else(APPLE) |
14f5f3a1e2f7
some work on cmake_pascal files to better support flags we use, make engine compile as library again
koda
parents:
9227
diff
changeset
|
173 |
if(CMAKE_INSTALL_RPATH) |
14f5f3a1e2f7
some work on cmake_pascal files to better support flags we use, make engine compile as library again
koda
parents:
9227
diff
changeset
|
174 |
#need to escape twice because we use a script to link |
14f5f3a1e2f7
some work on cmake_pascal files to better support flags we use, make engine compile as library again
koda
parents:
9227
diff
changeset
|
175 |
#\\\\ is just \\ which escapes '\' in the final script |
14f5f3a1e2f7
some work on cmake_pascal files to better support flags we use, make engine compile as library again
koda
parents:
9227
diff
changeset
|
176 |
#same for $$ which escapes '$' in cmake |
14f5f3a1e2f7
some work on cmake_pascal files to better support flags we use, make engine compile as library again
koda
parents:
9227
diff
changeset
|
177 |
string(REGEX REPLACE "\\$" "\\\\$$" CMAKE_INSTALL_RPATH_ESCAPED ${CMAKE_INSTALL_RPATH}) |
14f5f3a1e2f7
some work on cmake_pascal files to better support flags we use, make engine compile as library again
koda
parents:
9227
diff
changeset
|
178 |
#normally this flag is found in <LINK_LIBRARIES> but that's not active here |
14f5f3a1e2f7
some work on cmake_pascal files to better support flags we use, make engine compile as library again
koda
parents:
9227
diff
changeset
|
179 |
set(CMAKE_Pascal_UNIX_FLAGS "${CMAKE_SHARED_LIBRARY_RUNTIME_Pascal_FLAG} -k'${CMAKE_INSTALL_RPATH_ESCAPED}' ${CMAKE_Pascal_UNIX_FLAGS}") |
14f5f3a1e2f7
some work on cmake_pascal files to better support flags we use, make engine compile as library again
koda
parents:
9227
diff
changeset
|
180 |
endif() |
8815 | 181 |
endif(APPLE) |
182 |
endif(UNIX) |
|
183 |
||
9339
14f5f3a1e2f7
some work on cmake_pascal files to better support flags we use, make engine compile as library again
koda
parents:
9227
diff
changeset
|
184 |
#-Cn is mandatory as it's what creates the ppas.* script |
8815 | 185 |
set(CMAKE_Pascal_COMPILE_OBJECT |
8846
c156ac6ddc2b
set directories to be included externally, in the project file
koda
parents:
8834
diff
changeset
|
186 |
"<CMAKE_Pascal_COMPILER> -Cn -FE${EXECUTABLE_OUTPUT_PATH} -FU${CMAKE_CURRENT_BINARY_DIR}/<OBJECT_DIR> ${CMAKE_Pascal_UNIX_FLAGS} <FLAGS> <SOURCE>") |
8815 | 187 |
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
|
188 |
|
8778 | 189 |
# link Pascal objects in a single executable |
8815 | 190 |
if(NOT CMAKE_Pascal_LINK_EXECUTABLE) |
191 |
if(WIN32) |
|
192 |
set(CMAKE_Pascal_LINK_EXECUTABLE "${EXECUTABLE_OUTPUT_PATH}/ppas.bat") |
|
193 |
else(WIN32) |
|
194 |
set(CMAKE_Pascal_LINK_EXECUTABLE "${EXECUTABLE_OUTPUT_PATH}/ppas.sh") |
|
195 |
endif(WIN32) |
|
8823 | 196 |
# other expandable variables here are <CMAKE_Pascal_LINK_FLAGS> <LINK_FLAGS> <TARGET_BASE> <FLAGS> <LINK_LIBRARIES> |
8815 | 197 |
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
|
198 |
|
8815 | 199 |
if(CMAKE_Pascal_STANDARD_LIBRARIES_INIT) |
200 |
set(CMAKE_Pascal_STANDARD_LIBRARIES "${CMAKE_Pascal_STANDARD_LIBRARIES_INIT}" |
|
201 |
CACHE STRING "Libraries linked by default (usually handled internally).") |
|
8859 | 202 |
mark_as_advanced(CMAKE_Pascal_STANDARD_LIBRARIES) |
8815 | 203 |
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
|
204 |
|
8815 | 205 |
if(NOT CMAKE_NOT_USING_CONFIG_FLAGS) |
8859 | 206 |
set(CMAKE_Pascal_FLAGS_DEBUG "${CMAKE_Pascal_FLAGS_DEBUG_INIT}" CACHE STRING |
207 |
"Flags used by the compiler during debug builds.") |
|
208 |
set(CMAKE_Pascal_FLAGS_MINSIZEREL "${CMAKE_Pascal_FLAGS_MINSIZEREL_INIT}" CACHE STRING |
|
209 |
"Flags used by the compiler during release minsize builds.") |
|
210 |
set(CMAKE_Pascal_FLAGS_RELEASE "${CMAKE_Pascal_FLAGS_RELEASE_INIT}" CACHE STRING |
|
211 |
"Flags used by the compiler during release builds (/MD /Ob1 /Oi /Ot /Oy /Gs will produce slightly less optimized but smaller files).") |
|
212 |
set(CMAKE_Pascal_FLAGS_RELWITHDEBINFO "${CMAKE_Pascal_FLAGS_RELWITHDEBINFO_INIT}" CACHE STRING |
|
213 |
"Flags used by the compiler during Release with Debug Info builds.") |
|
8815 | 214 |
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
|
215 |
|
8815 | 216 |
mark_as_advanced(CMAKE_Pascal_FLAGS CMAKE_Pascal_FLAGS_DEBUG CMAKE_Pascal_FLAGS_MINSIZEREL |
217 |
CMAKE_Pascal_FLAGS_RELEASE CMAKE_Pascal_FLAGS_RELWITHDEBINFO) |
|
218 |
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
|
219 |