From b6d9a2368a86e38f97e28d595bd0cd5256ff4899 Mon Sep 17 00:00:00 2001 From: don bright Date: Sat, 24 Dec 2011 16:09:43 +0100 Subject: fix build when system boost is mt and local boost is not mt diff --git a/boost.pri b/boost.pri index c2f5d8e..284125e 100644 --- a/boost.pri +++ b/boost.pri @@ -6,35 +6,56 @@ boost { !isEmpty(BOOST_DIR) { QMAKE_INCDIR += $$BOOST_DIR message("boost location: $$BOOST_DIR") - win32:QMAKE_LIBDIR += -L$$BOOST_DIR/lib + win32: QMAKE_LIBDIR += -L$$BOOST_DIR/lib } - win32:!CONFIG(mingw-cross-env) { - LIBS += -llibboost_thread-vc90-mt-s-1_46_1 -llibboost_program_options-vc90-mt-s-1_46_1 - } - CONFIG(mingw-cross-env) { DEFINES += BOOST_STATIC DEFINES += BOOST_THREAD_USE_LIB DEFINES += Boost_USE_STATIC_LIBS - LIBS += -lboost_thread_win32-mt -lboost_program_options-mt + BOOST_LINK_FLAGS = -lboost_thread_win32-mt -lboost_program_options-mt } - unix { - BMT_TEST1 = /usr/lib64/libboost*thread-mt* - BMT_TEST2 = /usr/lib/libboost*thread-mt* - BMT_TEST3 = $$BOOST_DIR/lib/libboost*thread-mt* + isEmpty($$BOOST_LINK_FLAGS):win32 { + BOOST_LINK_FLAGS = -llibboost_thread-vc90-mt-s-1_46_1 -llibboost_program_options-vc90-mt-s-1_46_1 + } - exists($$BMT_TEST1)|exists($$BMT_TEST2)|exists($$BMT_TEST3) { - LIBS += -lboost_thread-mt -lboost_program_options-mt - BOOST_IS_MT = true - } + # check for OPENSCAD_LIBDIR + multithread + isEmpty($$BOOST_LINK_FLAGS) { + OPENSCAD_LIBDIR = $$(OPENSCAD_LIBRARIES) + !isEmpty($$OPENSCAD_LIBDIR) { + exists($$OPENSCAD_LIBDIR/lib/libboost*thread-mt*) { + BOOST_LINK_FLAGS = -lboost_thread-mt -lboost_program_options-mt + } + } } - unix|macx { - isEmpty(BOOST_IS_MT) { - LIBS += -lboost_thread -lboost_program_options + # check for BOOSTDIR + multithread + isEmpty($$BOOST_LINK_FLAGS) { + BOOST_DIR = $$(BOOSTDIR) + !isEmpty($$BOOST_DIR) { + exists($$BOOST_DIR/lib/libboost*thread-mt*) { + BOOST_LINK_FLAGS = -lboost_thread-mt -lboost_program_options-mt + } } } + isEmpty($$BOOST_LINK_FLAGS) { + unix { + BMT_TEST1 = /usr/lib64/libboost*thread-mt* + BMT_TEST2 = /usr/lib/libboost*thread-mt* + exists($$BMT_TEST1)|exists($$BMT_TEST2) { + BOOST_LINK_FLAGS = -lboost_thread-mt -lboost_program_options-mt + } + } + } + + isEmpty($$BOOST_LINK_FLAGS) { + unix|macx { + BOOST_LINK_FLAGS = -lboost_thread -lboost_program_options + } + } + + LIBS += $$BOOST_LINK_FLAGS + } diff --git a/eigen2.pri b/eigen2.pri index 44649f8..e188eaf 100644 --- a/eigen2.pri +++ b/eigen2.pri @@ -1,20 +1,34 @@ eigen2 { + + CONFIG(mingw-cross-env) { + EIGEN2_INCLUDEPATH = mingw-cross-env/include/eigen2 + } + # Optionally specify location of Eigen2 using the - # EIGEN2DIR env. variable - EIGEN2_DIR = $$(EIGEN2DIR) - !isEmpty(EIGEN2_DIR) { - EIGEN2_INCLUDEPATH = $$EIGEN2_DIR + # OPENSCAD_LIBRARIES env. variable + isEmpty(EIGEN2_INCLUDEPATH) { + OPENSCAD_LIBRARIES_EIGEN2 = $$(OPENSCAD_LIBRARIES) + !isEmpty(OPENSCAD_LIBRARIES_EIGEN2) { + EIGEN2_INCLUDEPATH = $$OPENSCAD_LIBRARIES_EIGEN2/include/eigen2 + } } - else { - CONFIG(mingw-cross-env) { - EIGEN2_INCLUDEPATH = mingw-cross-env/include/eigen2 - } else { - freebsd-g++: EIGEN2_INCLUDEPATH *= /usr/local/include/eigen2 - macx: EIGEN2_INCLUDEPATH *= /opt/local/include/eigen2 - !macx:!freebsd-g++:!win32:EIGEN2_INCLUDEPATH *= /usr/include/eigen2 + + # Optionally specify location of Eigen2 using the + # EIGEN2DIR env. variable + isEmpty(EIGEN2_INCLUDEPATH) { + EIGEN2_DIR = $$(EIGEN2DIR) + !isEmpty(EIGEN2_DIR):isEmpty(EIGEN2_INCLUDE_PATH) { + message("EIGEN2: OPENSCAD_LIBRARIES NOT") + EIGEN2_INCLUDEPATH = $$EIGEN2_DIR } } + isEmpty(EIGEN2_INCLUDEPATH) { + freebsd-g++: EIGEN2_INCLUDEPATH *= /usr/local/include/eigen2 + macx: EIGEN2_INCLUDEPATH *= /opt/local/include/eigen2 + linux*: EIGEN2_INCLUDEPATH *= /usr/include/eigen2 + } + # eigen2 being under 'include/eigen2' needs special prepending QMAKE_INCDIR_QT = $$EIGEN2_INCLUDEPATH $$QMAKE_INCDIR_QT -- cgit v0.10.1 From a70715c309853ff9a47187d134649f27e4cb0867 Mon Sep 17 00:00:00 2001 From: don bright Date: Sat, 24 Dec 2011 07:22:18 -0800 Subject: fix eigen build on machine with system eigen + OPENSCAD_LIBRARIES without eigen diff --git a/boost.pri b/boost.pri index 284125e..2e8e3cb 100644 --- a/boost.pri +++ b/boost.pri @@ -16,12 +16,12 @@ boost { BOOST_LINK_FLAGS = -lboost_thread_win32-mt -lboost_program_options-mt } - isEmpty($$BOOST_LINK_FLAGS):win32 { + isEmpty(BOOST_LINK_FLAGS):win32 { BOOST_LINK_FLAGS = -llibboost_thread-vc90-mt-s-1_46_1 -llibboost_program_options-vc90-mt-s-1_46_1 } # check for OPENSCAD_LIBDIR + multithread - isEmpty($$BOOST_LINK_FLAGS) { + isEmpty(BOOST_LINK_FLAGS) { OPENSCAD_LIBDIR = $$(OPENSCAD_LIBRARIES) !isEmpty($$OPENSCAD_LIBDIR) { exists($$OPENSCAD_LIBDIR/lib/libboost*thread-mt*) { @@ -31,7 +31,7 @@ boost { } # check for BOOSTDIR + multithread - isEmpty($$BOOST_LINK_FLAGS) { + isEmpty(BOOST_LINK_FLAGS) { BOOST_DIR = $$(BOOSTDIR) !isEmpty($$BOOST_DIR) { exists($$BOOST_DIR/lib/libboost*thread-mt*) { @@ -40,7 +40,7 @@ boost { } } - isEmpty($$BOOST_LINK_FLAGS) { + isEmpty(BOOST_LINK_FLAGS) { unix { BMT_TEST1 = /usr/lib64/libboost*thread-mt* BMT_TEST2 = /usr/lib/libboost*thread-mt* @@ -50,7 +50,7 @@ boost { } } - isEmpty($$BOOST_LINK_FLAGS) { + isEmpty(BOOST_LINK_FLAGS) { unix|macx { BOOST_LINK_FLAGS = -lboost_thread -lboost_program_options } diff --git a/eigen2.pri b/eigen2.pri index e188eaf..6be642e 100644 --- a/eigen2.pri +++ b/eigen2.pri @@ -7,9 +7,11 @@ eigen2 { # Optionally specify location of Eigen2 using the # OPENSCAD_LIBRARIES env. variable isEmpty(EIGEN2_INCLUDEPATH) { - OPENSCAD_LIBRARIES_EIGEN2 = $$(OPENSCAD_LIBRARIES) - !isEmpty(OPENSCAD_LIBRARIES_EIGEN2) { - EIGEN2_INCLUDEPATH = $$OPENSCAD_LIBRARIES_EIGEN2/include/eigen2 + OPENSCAD_LIBRARIES_DIR = $$(OPENSCAD_LIBRARIES) + !isEmpty(OPENSCAD_LIBRARIES_DIR) { + exists($$OPENSCAD_LIBRARIES_DIR/include/eigen2) { + EIGEN2_INCLUDEPATH = $$OPENSCAD_LIBRARIES_DIR/include/eigen2 + } } } -- cgit v0.10.1 From 9a1834bb86b2cea2b8d26a506ca576918511ee5a Mon Sep 17 00:00:00 2001 From: don bright Date: Sat, 24 Dec 2011 16:39:34 +0100 Subject: boost fix for OPENSCAD_LIBRARIES and BOOSTDIR env vars usage diff --git a/boost.pri b/boost.pri index 2e8e3cb..19e4a64 100644 --- a/boost.pri +++ b/boost.pri @@ -23,9 +23,11 @@ boost { # check for OPENSCAD_LIBDIR + multithread isEmpty(BOOST_LINK_FLAGS) { OPENSCAD_LIBDIR = $$(OPENSCAD_LIBRARIES) - !isEmpty($$OPENSCAD_LIBDIR) { + !isEmpty(OPENSCAD_LIBDIR) { exists($$OPENSCAD_LIBDIR/lib/libboost*thread-mt*) { BOOST_LINK_FLAGS = -lboost_thread-mt -lboost_program_options-mt + } else { + BOOST_LINK_FLAGS = -lboost_thread -lboost_program_options } } } @@ -33,9 +35,11 @@ boost { # check for BOOSTDIR + multithread isEmpty(BOOST_LINK_FLAGS) { BOOST_DIR = $$(BOOSTDIR) - !isEmpty($$BOOST_DIR) { + !isEmpty(BOOST_DIR) { exists($$BOOST_DIR/lib/libboost*thread-mt*) { BOOST_LINK_FLAGS = -lboost_thread-mt -lboost_program_options-mt + } else { + BOOST_LINK_FLAGS = -lboost_thread -lboost_program_options } } } -- cgit v0.10.1 From 3c69b711288ad6f7c0290e8f907da5a988180e9d Mon Sep 17 00:00:00 2001 From: don bright Date: Sat, 24 Dec 2011 07:43:46 -0800 Subject: fix boost qmake on 64-bit fedora where OPENSCAD_LIBRARIES has been set diff --git a/boost.pri b/boost.pri index 19e4a64..02e4247 100644 --- a/boost.pri +++ b/boost.pri @@ -27,7 +27,9 @@ boost { exists($$OPENSCAD_LIBDIR/lib/libboost*thread-mt*) { BOOST_LINK_FLAGS = -lboost_thread-mt -lboost_program_options-mt } else { - BOOST_LINK_FLAGS = -lboost_thread -lboost_program_options + exists($$OPENSCAD_LIBDIR/lib/libboost*thread*) { + BOOST_LINK_FLAGS = -lboost_thread -lboost_program_options + } } } } @@ -39,7 +41,9 @@ boost { exists($$BOOST_DIR/lib/libboost*thread-mt*) { BOOST_LINK_FLAGS = -lboost_thread-mt -lboost_program_options-mt } else { - BOOST_LINK_FLAGS = -lboost_thread -lboost_program_options + exists($$BOOST_DIR/lib/libboost*thread*) { + BOOST_LINK_FLAGS = -lboost_thread -lboost_program_options + } } } } -- cgit v0.10.1 From ac11243e993a8f0d38919abd6e7f9d47ceb9bc9e Mon Sep 17 00:00:00 2001 From: Don Bright Date: Sat, 24 Dec 2011 10:06:54 -0600 Subject: cleanup eigen2 build, improve debug message diff --git a/eigen2.pri b/eigen2.pri index 6be642e..70985a1 100644 --- a/eigen2.pri +++ b/eigen2.pri @@ -13,22 +13,23 @@ eigen2 { EIGEN2_INCLUDEPATH = $$OPENSCAD_LIBRARIES_DIR/include/eigen2 } } + message("EIGEN2 location: $$EIGEN2_INCLUDEPATH") } # Optionally specify location of Eigen2 using the # EIGEN2DIR env. variable isEmpty(EIGEN2_INCLUDEPATH) { EIGEN2_DIR = $$(EIGEN2DIR) - !isEmpty(EIGEN2_DIR):isEmpty(EIGEN2_INCLUDE_PATH) { - message("EIGEN2: OPENSCAD_LIBRARIES NOT") + !isEmpty(EIGEN2_DIR) { EIGEN2_INCLUDEPATH = $$EIGEN2_DIR } + message("EIGEN2 location: $$EIGEN2_INCLUDEPATH") } isEmpty(EIGEN2_INCLUDEPATH) { - freebsd-g++: EIGEN2_INCLUDEPATH *= /usr/local/include/eigen2 - macx: EIGEN2_INCLUDEPATH *= /opt/local/include/eigen2 - linux*: EIGEN2_INCLUDEPATH *= /usr/include/eigen2 + freebsd-g++: EIGEN2_INCLUDEPATH = /usr/local/include/eigen2 + macx: EIGEN2_INCLUDEPATH = /opt/local/include/eigen2 + linux*: EIGEN2_INCLUDEPATH = /usr/include/eigen2 } # eigen2 being under 'include/eigen2' needs special prepending -- cgit v0.10.1 From 750957fcacbc4bd039d3a9219ba2d65aa9e572f1 Mon Sep 17 00:00:00 2001 From: Don Bright Date: Sat, 24 Dec 2011 10:08:23 -0600 Subject: further improve eigen2 build message diff --git a/eigen2.pri b/eigen2.pri index 70985a1..bc629d3 100644 --- a/eigen2.pri +++ b/eigen2.pri @@ -11,9 +11,9 @@ eigen2 { !isEmpty(OPENSCAD_LIBRARIES_DIR) { exists($$OPENSCAD_LIBRARIES_DIR/include/eigen2) { EIGEN2_INCLUDEPATH = $$OPENSCAD_LIBRARIES_DIR/include/eigen2 + message("EIGEN2 location: $$EIGEN2_INCLUDEPATH") } } - message("EIGEN2 location: $$EIGEN2_INCLUDEPATH") } # Optionally specify location of Eigen2 using the @@ -22,8 +22,8 @@ eigen2 { EIGEN2_DIR = $$(EIGEN2DIR) !isEmpty(EIGEN2_DIR) { EIGEN2_INCLUDEPATH = $$EIGEN2_DIR + message("EIGEN2 location: $$EIGEN2_INCLUDEPATH") } - message("EIGEN2 location: $$EIGEN2_INCLUDEPATH") } isEmpty(EIGEN2_INCLUDEPATH) { -- cgit v0.10.1 From 1dfc184b7380600a1c13f85b6b6c0a9f92dcdbcd Mon Sep 17 00:00:00 2001 From: Don Bright Date: Sat, 24 Dec 2011 10:09:55 -0600 Subject: make OPENSCAD_LIBRARIES not show a message for EIGEN2 include diff --git a/eigen2.pri b/eigen2.pri index bc629d3..6062c76 100644 --- a/eigen2.pri +++ b/eigen2.pri @@ -11,7 +11,6 @@ eigen2 { !isEmpty(OPENSCAD_LIBRARIES_DIR) { exists($$OPENSCAD_LIBRARIES_DIR/include/eigen2) { EIGEN2_INCLUDEPATH = $$OPENSCAD_LIBRARIES_DIR/include/eigen2 - message("EIGEN2 location: $$EIGEN2_INCLUDEPATH") } } } -- cgit v0.10.1 From c5511b05ecfc821d2c46912a9dd472df4dec956a Mon Sep 17 00:00:00 2001 From: don bright Date: Sun, 25 Dec 2011 03:10:22 +0100 Subject: find eigen2 when OPENSCAD_LIBRARIES is set in regression test build diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index a8ab9b9..ed5bdc0 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -131,6 +131,10 @@ if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Darwin") endif() endif() +if (NOT $ENV{OPENSCAD_LIBRARIES} STREQUAL "") + set(EIGEN2_INCLUDE_DIR "$ENV{OPENSCAD_LIBRARIES}/include/eigen2") +endif() + if (NOT EIGEN2_INCLUDE_DIR) find_path(EIGEN2_INCLUDE_DIR Eigen/Core -- cgit v0.10.1 From 0bbfa9efb0e03aad9f6242953aefd51a7d74b25e Mon Sep 17 00:00:00 2001 From: Marius Kintel Date: Sun, 25 Dec 2011 17:58:24 +0100 Subject: Modified eigen2 test to work for system-eigen2 and OPENSCAD_LIBRARIES without eigen2 diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index ed5bdc0..e3ebb02 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -131,21 +131,20 @@ if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Darwin") endif() endif() -if (NOT $ENV{OPENSCAD_LIBRARIES} STREQUAL "") - set(EIGEN2_INCLUDE_DIR "$ENV{OPENSCAD_LIBRARIES}/include/eigen2") -endif() - if (NOT EIGEN2_INCLUDE_DIR) + if (NOT $ENV{OPENSCAD_LIBRARIES} STREQUAL "") + set(EIGEN2_FIND_HINTS "$ENV{OPENSCAD_LIBRARIES}/include/eigen2") + endif() + set(EIGEN2_FIND_HINTS ${EIGEN2_HINTS} $ENV{EIGEN2DIR}) + if (${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD") + set(EIGEN2_FIND_PATHS /usr/local/include/eigen2) + else() + set(EIGEN2_FIND_PATHS /opt/local/include/eigen2 /usr/include/eigen2) + endif() find_path(EIGEN2_INCLUDE_DIR Eigen/Core - HINTS $ENV{EIGEN2DIR} - PATHS /opt/local/include/eigen2 /usr/include/eigen2) - if (${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD") - find_path(EIGEN2_INCLUDE_DIR - Eigen/Core - HINTS $ENV{EIGEN2DIR} - PATHS /usr/local/include/eigen2 ) - endif() + HINTS ${EIGEN2_FIND_HINTS} + PATHS ${EIGEN2_FIND_PATHS}) if (NOT EIGEN2_INCLUDE_DIR) message(FATAL_ERROR "Eigen2 not found") else() -- cgit v0.10.1 From 1e57a14785c0d54b19e20972ca333ca003fe9761 Mon Sep 17 00:00:00 2001 From: don bright Date: Mon, 26 Dec 2011 17:03:04 +0100 Subject: fix eigen2 finding bug diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index e3ebb02..b6366d5 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -135,7 +135,7 @@ if (NOT EIGEN2_INCLUDE_DIR) if (NOT $ENV{OPENSCAD_LIBRARIES} STREQUAL "") set(EIGEN2_FIND_HINTS "$ENV{OPENSCAD_LIBRARIES}/include/eigen2") endif() - set(EIGEN2_FIND_HINTS ${EIGEN2_HINTS} $ENV{EIGEN2DIR}) + set(EIGEN2_FIND_HINTS ${EIGEN2_FIND_HINTS} $ENV{EIGEN2DIR}) if (${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD") set(EIGEN2_FIND_PATHS /usr/local/include/eigen2) else() -- cgit v0.10.1 From f6ba8cd53a34e4be676ab9217b87ff1de92ed9f1 Mon Sep 17 00:00:00 2001 From: don bright Date: Mon, 26 Dec 2011 17:35:42 +0100 Subject: fix build w mult. versions of boost when OPENSCAD_LIBRARIES used diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index b6366d5..5b323d7 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -66,18 +66,18 @@ endif() # Boost if (NOT $ENV{OPENSCAD_LIBRARIES} STREQUAL "") - set(BOOST_ROOT "$ENV{OPENSCAD_LIBRARIES}") + set(BOOST_DIR "$ENV{OPENSCAD_LIBRARIES}") endif() if (NOT $ENV{BOOSTDIR} STREQUAL "") set(BOOST_DIR "$ENV{BOOSTDIR}") + set(Boost_DEBUG TRUE) endif() if (NOT ${BOOST_DIR} STREQUAL "") set(BOOST_ROOT ${BOOST_DIR}) message(STATUS "BOOST_ROOT: " ${BOOST_ROOT}) set(Boost_NO_SYSTEM_PATHS "TRUE") - set(Boost_DEBUG TRUE) endif() -- cgit v0.10.1 From 1aadb679de94108763445e6369447d02260e0130 Mon Sep 17 00:00:00 2001 From: don bright Date: Mon, 26 Dec 2011 09:53:22 -0800 Subject: fix bug on system with OPENSCAD_LIBRARIES + mult versions of boost diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 5b323d7..6eb9610 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -65,30 +65,31 @@ endif() # # Boost -if (NOT $ENV{OPENSCAD_LIBRARIES} STREQUAL "") - set(BOOST_DIR "$ENV{OPENSCAD_LIBRARIES}") -endif() +# Update this if FindBoost.cmake gets out of sync with the current boost release +# set(Boost_ADDITIONAL_VERSIONS "1.47.0" "1.46.0") -if (NOT $ENV{BOOSTDIR} STREQUAL "") - set(BOOST_DIR "$ENV{BOOSTDIR}") - set(Boost_DEBUG TRUE) +if (WIN32) + set(Boost_USE_STATIC_LIBS TRUE) + set(BOOST_STATIC TRUE) + set(BOOST_THREAD_USE_LIB TRUE) endif() -if (NOT ${BOOST_DIR} STREQUAL "") - set(BOOST_ROOT ${BOOST_DIR}) +if (NOT $ENV{OPENSCAD_LIBRARIES} STREQUAL "") + set(BOOST_ROOT "$ENV{OPENSCAD_LIBRARIES}") + if (EXISTS ${BOOST_ROOT}/include/boost) + # workaround bugs in FindBoost.cmake with multiple versions of boost + set(Boost_NO_SYSTEM_PATHS "TRUE") + endif() message(STATUS "BOOST_ROOT: " ${BOOST_ROOT}) - set(Boost_NO_SYSTEM_PATHS "TRUE") endif() - -if (WIN32) - set(Boost_USE_STATIC_LIBS TRUE) - set(BOOST_STATIC TRUE) - set(BOOST_THREAD_USE_LIB TRUE) +if (NOT $ENV{BOOSTDIR} STREQUAL "") + set(BOOST_ROOT "$ENV{BOOSTDIR}") + set(Boost_NO_SYSTEM_PATHS "TRUE") + set(Boost_DEBUG TRUE) + message(STATUS "BOOST_ROOT: " ${BOOST_ROOT}) endif() -# Update this if FindBoost.cmake gets out of sync with the current boost release -# set(Boost_ADDITIONAL_VERSIONS "1.47.0" "1.46.0") find_package( Boost 1.35.0 COMPONENTS thread program_options REQUIRED) if(Boost_FOUND) message(STATUS "Boost includes found: " ${Boost_INCLUDE_DIRS}) -- cgit v0.10.1 From 3c3cf02f4a648ecd317d5246f9a694f2af850b45 Mon Sep 17 00:00:00 2001 From: don bright Date: Mon, 26 Dec 2011 10:01:03 -0800 Subject: if CGAL's -DMAKE_INSTALL_PREFIX=$X, then enable finding of CGAL in $X diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 6eb9610..74670c5 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -215,8 +215,13 @@ set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/parser_yacc.c PROPERTIES if (NOT $ENV{CGALDIR} STREQUAL "") set(CGAL_DIR "$ENV{CGALDIR}") elseif (NOT $ENV{OPENSCAD_LIBRARIES} STREQUAL "") - set(CGAL_DIR "$ENV{OPENSCAD_LIBRARIES}/lib/CGAL") - set(CMAKE_MODULE_PATH "${CGAL_DIR}") + if (EXISTS "$ENV{OPENSCAD_LIBRARIES}/lib/CGAL") + set(CGAL_DIR "$ENV{OPENSCAD_LIBRARIES}/lib/CGAL") + set(CMAKE_MODULE_PATH "${CGAL_DIR}") + elseif (EXISTS "$ENV{OPENSCAD_LIBRARIES}/include/CGAL") + set(CGAL_DIR "$ENV{OPENSCAD_LIBRARIES}") + set(CMAKE_MODULE_PATH "${CGAL_DIR}") + endif() endif() message(STATUS "CGAL_DIR: " ${CGAL_DIR}) find_package(CGAL REQUIRED) -- cgit v0.10.1 From 4a16db46574e3774df5f34d9a282d21fc291b243 Mon Sep 17 00:00:00 2001 From: don bright Date: Mon, 26 Dec 2011 19:34:58 +0100 Subject: clarify and simplify the language used in the testing.txt document. diff --git a/doc/testing.txt b/doc/testing.txt index 4623a96..a50c95f 100644 --- a/doc/testing.txt +++ b/doc/testing.txt @@ -50,26 +50,33 @@ Adding a new regression test: Troubleshooting: ------------------------------ -0. Headless unix servers (no X11) +0. Headless unix servers -$ Xvfb :5 -screen 0 800x600x24 & +If you are attempting to run the tests on a unix-like system but only +have shell-console access, you may be able to run the tests by using a +virtual framebuffer program like Xvnc or Xvfb. For example: + +$ Xvfb :5 -screen 0 800x600x24 & $ DISPLAY=:5 ctest -1. Trouble finding libraries +Some versions of Xvfb may fail, however. + +1. Trouble finding libraries on unix To help CMAKE find eigen2, OpenCSG, CGAL, Boost, and GLEW, you can use environment variables, just like for the main qmake & openscad.pro. Examples: - OPENCSGDIR=~/OpenCSG-1.3.2 EIGEN2DIR=~/eigen2 cmake . + OPENSCAD_LIBRARIES=~ cmake . + CGALDIR=~/CGAL-3.9 BOOSTDIR=~/boost-1.47.0 cmake . - Valid variables are as follows (see CMakeLists.txt for more info): + Valid variables are as follows: BOOSTDIR, CGALDIR, EIGEN2DIR, GLEWDIR, OPENCSGDIR, OPENSCAD_LIBRARIES -2. Logs +2. Location of logs Logs of test runs are found in tests/build/Testing/Temporary -Pretty-printed index.html is in a subdir of tests/build/Testing/Temporary +A pretty-printed index.html is in a subdir of tests/build/Testing/Temporary Expected results are found in tests/regression/* Actual results are found in tests/build/testname-output/* @@ -77,28 +84,23 @@ Actual results are found in tests/build/testname-output/* Cross-compiling of tests has not been automated nor tested -4. Image-based tests takes a long time, they fail, and it says 'return -11' +4. Image-based tests takes a long time, they fail, and the log says 'return -11' -Imagemagick may have crashed. You can try using the alternate IM comparator -based on Normalized Cross Correlation. Pass -DCOMPARATOR=ncc to cmake +Imagemagick may have crashed while comparing the expected images to the +test-run generated (actual) images. You can try using the alternate +ImageMagick comparison method by by erasing CMakeCache, and re-running +cmake with -DCOMPARATOR=ncc. This will enable the Normalized Cross +Comparison method. -5. Testing images fails with 'morphology' not found for ImageMagick +5. Testing images fails with 'morphology not found" for ImageMagick in the log Your version of imagemagick is old. Upgrade, or pass -DCOMPARATOR=old to cmake. The comparison will be of lowered reliability. -6. Unexplained or bizarre errors. - -This can happen on dynamic-library systems (linux) where you try to use -your own version of a library while the system still has another version -under the system paths. You can diagnose this by looking at your cmake -log as well as your sysinfo.txt file, as well as running 'ldd' against -your binaries, to make sure that the proper versions of libraries are -getting compiled and linked with the test binaries. - -7. Other issues +6. Other issues -The OpenSCAD User Manual has a section on buildling. Check there for updates: +The OpenSCAD User Manual has a section on buildling. Please check there +for updates: http://en.wikibooks.org/wiki/OpenSCAD_User_Manual -- cgit v0.10.1 From 058299923379fa72145daf754342801f3a192903 Mon Sep 17 00:00:00 2001 From: don Date: Mon, 26 Dec 2011 12:51:30 -0600 Subject: print boost_root when it's under OPENSCAD_LIBRARIES, otherwise skip print diff --git a/openscad.pro b/openscad.pro index 50a419d..53f8a36 100644 --- a/openscad.pro +++ b/openscad.pro @@ -88,7 +88,7 @@ linux*:exists(/usr/lib64/libGLU*)|linux*:exists(/usr/lib/libGLU*) { # See Dec 2011 OpenSCAD mailing list, re: CGAL/GCC bugs. *g++* { - QMAKE_CXXFLAGS *= -fno-strict-aliasing + QMAKE_CXXFLAGS *= -fstrict-aliasing -Wstrict-aliasing } CONFIG(mingw-cross-env) { diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 74670c5..0e8e055 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -77,10 +77,11 @@ endif() if (NOT $ENV{OPENSCAD_LIBRARIES} STREQUAL "") set(BOOST_ROOT "$ENV{OPENSCAD_LIBRARIES}") if (EXISTS ${BOOST_ROOT}/include/boost) - # workaround bugs in FindBoost.cmake with multiple versions of boost + # if boost is under OPENSCAD_LIBRARIES, then + # don't look in the system paths (workaround FindBoost.cmake bug) set(Boost_NO_SYSTEM_PATHS "TRUE") + message(STATUS "BOOST_ROOT: " ${BOOST_ROOT}) endif() - message(STATUS "BOOST_ROOT: " ${BOOST_ROOT}) endif() if (NOT $ENV{BOOSTDIR} STREQUAL "") -- cgit v0.10.1 From 36056e27f34a6049c18e49d5f24bfbd7cc6eabf4 Mon Sep 17 00:00:00 2001 From: don Date: Mon, 26 Dec 2011 12:55:25 -0600 Subject: remove some flags used during debugging diff --git a/openscad.pro b/openscad.pro index 53f8a36..50a419d 100644 --- a/openscad.pro +++ b/openscad.pro @@ -88,7 +88,7 @@ linux*:exists(/usr/lib64/libGLU*)|linux*:exists(/usr/lib/libGLU*) { # See Dec 2011 OpenSCAD mailing list, re: CGAL/GCC bugs. *g++* { - QMAKE_CXXFLAGS *= -fstrict-aliasing -Wstrict-aliasing + QMAKE_CXXFLAGS *= -fno-strict-aliasing } CONFIG(mingw-cross-env) { -- cgit v0.10.1