For better or for worse. Add sheepluva's forcing of clean on engine subdirectory. This works around a bug in fpc 2.4-2.6 that appears to generate incorrect inlining of loops on 2nd build. -B avoids this, but without a clean, the -B never got called. Also restore options, which I had confused w/ config. my bad.
--- a/hedgewars/CMakeLists.txt Sun Sep 11 02:24:46 2011 +0200
+++ b/hedgewars/CMakeLists.txt Sat Sep 10 21:02:34 2011 -0400
@@ -183,6 +183,8 @@
add_custom_target(${engine_output_name} ALL DEPENDS "${EXECUTABLE_OUTPUT_PATH}/${engine_output_name}${CMAKE_EXECUTABLE_SUFFIX}")
+add_custom_target(CLEAN COMMAND ${CMAKE_BUILD_TOOL} "clean" WORKING_DIRECTORY "${hedgewars_SOURCE_DIR}/hedgewars")
+add_dependencies(${engine_output_name} CLEAN)
install(PROGRAMS "${EXECUTABLE_OUTPUT_PATH}/${engine_output_name}${CMAKE_EXECUTABLE_SUFFIX}" DESTINATION ${target_dir})
--- a/hedgewars/uFloat.pas Sun Sep 11 02:24:46 2011 +0200
+++ b/hedgewars/uFloat.pas Sat Sep 10 21:02:34 2011 -0400
@@ -16,6 +16,8 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*)
+{$INCLUDE "options.inc"}
+
unit uFloat;
(*
* This unit provides a custom data type, hwFloat.
@@ -79,7 +81,7 @@
function hwRound(const t: hwFloat): LongInt; inline; // Does NOT really round but returns the integer representation of the hwFloat without fractional digits. (-_0_9 -> -0, _1_5 -> _1)
function hwAbs(const t: hwFloat): hwFloat; inline; // Returns the value of t with positive sign.
function hwSqr(const t: hwFloat): hwFloat; inline; // Returns the square value of parameter t.
-function hwSqrt(const t: hwFloat): hwFloat; // Returns the the positive square root of parameter t.
+function hwSqrt(const t: hwFloat): hwFloat; inline; // Returns the the positive square root of parameter t.
function Distance(const dx, dy: hwFloat): hwFloat; // Returns the distance between two points in 2-dimensional space, of which the parameters are the horizontal and vertical distance.
function DistanceI(const dx, dy: LongInt): hwFloat; // Same as above for integer parameters.
function AngleSin(const Angle: Longword): hwFloat;