mirror of https://github.com/KLayout/klayout.git
Merge pull request #12 from klayoutmatthias/macos-build
More fixes for MacOS and happy new year :-)
This commit is contained in:
commit
1cd47dc6cb
|
|
@ -229,8 +229,11 @@ private:
|
||||||
* @brief ctor from a recursive shape iterator
|
* @brief ctor from a recursive shape iterator
|
||||||
*/
|
*/
|
||||||
EdgesIterator (const db::RecursiveShapeIterator &iter, const db::ICplxTrans &trans)
|
EdgesIterator (const db::RecursiveShapeIterator &iter, const db::ICplxTrans &trans)
|
||||||
: m_rec_iter (iter), m_iter_trans (trans)
|
: m_rec_iter (iter), m_iter_trans (trans), m_from (), m_to ()
|
||||||
{
|
{
|
||||||
|
// NOTE: the following initialization appears to be required on some compilers
|
||||||
|
// (specifically MacOS/clang) to ensure the proper initialization of the iterators
|
||||||
|
m_from = m_to;
|
||||||
set ();
|
set ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -570,13 +570,13 @@ TEST(2)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
c0.erase (i4);
|
|
||||||
EXPECT_EQ (c2s_unsorted(c0), "5[r0 *1 0,0]#2,3[r0 *1 0,0]#13");
|
|
||||||
EXPECT_EQ (c0.cell_instances (), size_t (2));
|
|
||||||
c0.erase (i5);
|
c0.erase (i5);
|
||||||
|
EXPECT_EQ (c2s_unsorted(c0), "5[r0 *1 0,0]#2,1[r0 *1 0,0]#1");
|
||||||
|
EXPECT_EQ (c0.cell_instances (), size_t (2));
|
||||||
|
c0.erase (i4);
|
||||||
EXPECT_EQ (c2s_unsorted(c0), "5[r0 *1 0,0]#2");
|
EXPECT_EQ (c2s_unsorted(c0), "5[r0 *1 0,0]#2");
|
||||||
EXPECT_EQ (c0.cell_instances (), size_t (1));
|
EXPECT_EQ (c0.cell_instances (), size_t (1));
|
||||||
// not yet: EXPECT_EQ (c0.empty (), false);
|
// Not yet: EXPECT_EQ (c0.empty (), false);
|
||||||
|
|
||||||
// note: double delete is not supported in non-editable mode
|
// note: double delete is not supported in non-editable mode
|
||||||
if (db::default_editable_mode ()) {
|
if (db::default_editable_mode ()) {
|
||||||
|
|
@ -608,7 +608,7 @@ TEST(2)
|
||||||
c0.erase (i3);
|
c0.erase (i3);
|
||||||
EXPECT_EQ (c2s_unsorted(c0), "");
|
EXPECT_EQ (c2s_unsorted(c0), "");
|
||||||
EXPECT_EQ (c0.cell_instances (), size_t (0));
|
EXPECT_EQ (c0.cell_instances (), size_t (0));
|
||||||
// not yet: EXPECT_EQ (c0.empty (), true);
|
// Not yet: EXPECT_EQ (c0.empty (), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(3)
|
TEST(3)
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,7 @@ namespace gsi
|
||||||
*
|
*
|
||||||
* This class is specialized to implement the actual call process later.
|
* This class is specialized to implement the actual call process later.
|
||||||
*/
|
*/
|
||||||
struct Callee
|
struct GSI_PUBLIC Callee
|
||||||
: public tl::Object
|
: public tl::Object
|
||||||
{
|
{
|
||||||
Callee () { }
|
Callee () { }
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@ namespace gsi
|
||||||
/**
|
/**
|
||||||
* @brief Provides a basic implementation for a "boxed" plain value using a Variant as the basic type
|
* @brief Provides a basic implementation for a "boxed" plain value using a Variant as the basic type
|
||||||
*/
|
*/
|
||||||
class Value
|
class GSI_PUBLIC Value
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,9 @@
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
# include <windows.h>
|
# include <windows.h>
|
||||||
|
#elif __APPLE__
|
||||||
|
# include <libproc.h>
|
||||||
|
# include <unistd.h>
|
||||||
#else
|
#else
|
||||||
# include <unistd.h>
|
# include <unistd.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -79,6 +82,15 @@ get_inst_path_internal ()
|
||||||
return tl::to_string (fi.absolutePath ());
|
return tl::to_string (fi.absolutePath ());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#elif __APPLE__
|
||||||
|
|
||||||
|
char buffer[PROC_PIDPATHINFO_MAXSIZE];
|
||||||
|
int ret = proc_pidpath (getpid (), buffer, sizeof (buffer));
|
||||||
|
if (ret > 0) {
|
||||||
|
// TODO: does this correctly translate paths? (MacOS uses UTF-8 encoding with D-like normalization)
|
||||||
|
return tl::to_string (QFileInfo (QString::fromUtf8 (buffer)).absolutePath ());
|
||||||
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
QFileInfo proc_exe (tl::to_qstring (tl::sprintf ("/proc/%d/exe", getpid ())));
|
QFileInfo proc_exe (tl::to_qstring (tl::sprintf ("/proc/%d/exe", getpid ())));
|
||||||
|
|
|
||||||
|
|
@ -137,7 +137,7 @@ private:
|
||||||
* @brief A "neutral" exception thrown to terminate some operation
|
* @brief A "neutral" exception thrown to terminate some operation
|
||||||
* This exception is not shown.
|
* This exception is not shown.
|
||||||
*/
|
*/
|
||||||
struct CancelException
|
struct TL_PUBLIC CancelException
|
||||||
: public Exception
|
: public Exception
|
||||||
{
|
{
|
||||||
CancelException ()
|
CancelException ()
|
||||||
|
|
@ -148,7 +148,7 @@ struct CancelException
|
||||||
/**
|
/**
|
||||||
* @brief A special "internal" exception class used by tl_assert
|
* @brief A special "internal" exception class used by tl_assert
|
||||||
*/
|
*/
|
||||||
struct InternalException
|
struct TL_PUBLIC InternalException
|
||||||
: public Exception
|
: public Exception
|
||||||
{
|
{
|
||||||
InternalException (const char *file, int line, const char *cond)
|
InternalException (const char *file, int line, const char *cond)
|
||||||
|
|
|
||||||
|
|
@ -365,6 +365,10 @@ main_cont (int argc, char **argv)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (! tl::TestRegistrar::instance()) {
|
||||||
|
throw tl::Exception ("No test libraries found - make sure, the *.ut files are next to the ut_runner executable.");
|
||||||
|
}
|
||||||
|
|
||||||
// No side effects
|
// No side effects
|
||||||
lay::set_klayout_path (std::vector<std::string> ());
|
lay::set_klayout_path (std::vector<std::string> ());
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,11 @@ include($$PWD/../with_all_libs.pri)
|
||||||
|
|
||||||
TEMPLATE = app
|
TEMPLATE = app
|
||||||
|
|
||||||
|
# Don't build the ut_runner app as ordinary command line tool on MacOS
|
||||||
|
mac {
|
||||||
|
CONFIG -= app_bundle
|
||||||
|
}
|
||||||
|
|
||||||
TARGET = ut_runner
|
TARGET = ut_runner
|
||||||
|
|
||||||
SOURCES = \
|
SOURCES = \
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue