net/qbittorrent uses python with MODPY_BUILDDEP=No MODPY_TESTDEP=No.
I've switched it to cmake and the way its Makefile.inc is now means that
lang/python comes before devel/cmake in MODULES.

I expected this to work without further tweaks since python is just RDEP
but turns out the module still sets do-build and do-install, so cmake
loses unless I manually define it first (and explain with a comment).


Is there a reason those targets are still defined?
If not, the following obvious diff makes any MODULES order work, given
MODPY_*DEP=No.

Feedback? Objection? OK?

Index: python.port.mk
===================================================================
RCS file: /cvs/ports/lang/python/python.port.mk,v
retrieving revision 1.178
diff -u -p -r1.178 python.port.mk
--- python.port.mk      6 Dec 2022 16:18:16 -0000       1.178
+++ python.port.mk      4 Jan 2023 21:16:38 -0000
@@ -356,13 +356,15 @@ MODPY_TEST_TARGET +=      ${TEST_TARGET}
 
 # dirty way to do it with no modifications in bsd.port.mk
 .if empty(CONFIGURE_STYLE)
-.  if !target(do-build)
+.  if !target(do-build) && \
+      ${MODPY_BUILDDEP:L} == "yes"
 do-build:
        @${MODPY_BUILD_TARGET}
 .  endif
 
 # extra documentation or scripts should be installed via post-install
-.  if !target(do-install)
+.  if !target(do-install) && \
+      ${MODPY_BUILDDEP:L} == "yes"
 do-install:
        @${MODPY_INSTALL_TARGET}
 .  endif
@@ -372,6 +374,7 @@ do-install:
 # (possibly with MODPY_PYTEST_ARGS pointed at test dirs/files if the automatic
 # search picks up files in lib/).
 .  if !target(do-test) && \
+      ${MODPY_TESTDEP:L} == "yes" && \
       (${MODPY_SETUPUTILS:L} == "yes" || ${MODPY_PYTEST:L} == "yes")
 do-test:
        @${MODPY_TEST_TARGET}

Reply via email to