Mario Valle <mvalle@...> writes:
>
> There is a small error in the CMakeList.txt file found on the NLopt site
> (http://ab-initio.mit.edu/wiki/index.php/NLopt_on_Windows)
>
> Line 167:
>
> IF (WIN32)
> SET_TARGET_PROPERTIES(nlopt PROPERTIES SUFFIX
> -${_INFO_SOVERSION}.dll)
> ENDIF ()
>
> Should be changed to:
>
> IF (WIN32 AND BUILD_SHARED_LIBS)
> SET_TARGET_PROPERTIES(nlopt PROPERTIES SUFFIX
> -${_INFO_SOVERSION}.dll)
> ENDIF ()
>
> Otherwise the static lib comes out as nlopt-0.dll instead of nlopt.lib
>
> BTW, the CMake files should be moved from the "NLopt on Windows" page:
> they work also on Linux. This way I have the same build system on all
> the platforms I'm interested in.
>
> Thanks!
> mario
>
I would like to complete this fix by adding some CMakeList directives to
create a static library under Windows with a MT (Mutithread) configuration
against the default (Multithread DLL) configuration:
if(MSVC)
foreach(flag_var CMAKE_C_FLAGS_DEBUG CMAKE_CXX_FLAGS_DEBUG
CMAKE_C_FLAGS_RELEASE CMAKE_CXX_FLAGS_RELEASE CMAKE_C_FLAGS_MINSIZEREL
CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO
CMAKE_CXX_FLAGS_RELWITHDEBINFO)
string(REGEX REPLACE "/MD" "/MT" ${flag_var}
"${${flag_var}}")
string(REGEX REPLACE "/MDd" "/MTd" ${flag_var}
"${${flag_var}}")
endforeach(flag_var)
SET (CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG}" CACHE STRING "MSVC
C Debug MT flags " FORCE)
SET (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}" CACHE STRING
"MSVC CXX Debug MT flags " FORCE)
SET (CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}" CACHE STRING
"MSVC C Release MT flags " FORCE)
SET (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}" CACHE
STRING "MSVC CXX Release MT flags " FORCE)
SET (CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_MINSIZEREL}" CACHE
STRING "MSVC C Debug MT flags " FORCE)
SET (CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL}"
CACHE STRING "MSVC C Release MT flags " FORCE)
SET (CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO}"
CACHE STRING "MSVC CXX Debug MT flags " FORCE)
SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO
"${CMAKE_CXX_FLAGS_RELWITHDEBINFO}" CACHE STRING "MSVC CXX Release MT flags
" FORCE)
endif()
Steph
_______________________________________________
NLopt-discuss mailing list
[email protected]
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/nlopt-discuss